最近看了下卷二的I/O这一章,对里面的一些流类和方法不是很熟悉,对后面的总结性的例子看着也有些费劲,是不是自己的基本功还不是很到位,请JAVA高手给提点建议,我感觉JAVA核心技术里面对类方法的例子讲解不是很明确,总感觉是看论文一样,该怎样才能掌握里面的方法呢,自己针对书中的代码片段写程序有点费力,请给下指点,如何看此书????

解决方案 »

  1.   

    这还感觉像看论文啊?你要是看 Thinking in Java 的话那更看不懂了(反正我是看不懂)。为什么看不懂,我认为有这些原因:1,看技术书籍不能像是看小说一样,一目十行的,得做到用心去体会,我不知道你看这本书的速度如何?
    2,可能只是看,而没有练,如果练的时候不会写,那说明还没有嚼烂,嚼透
    3,阅读代码的方法可能有问题,应先从 main 方法开始一层一层地往下看,在书上作上标记暂时就想到这些原因了,以后想到了再来回复。
      

  2.   

    没看过,不过得从基础看起,怎么一下子就看到I/O了,I/O应该是书后部分的知识。
      

  3.   

    Java SE 的 IO 库是个庞大的继承链,要弄明白 IO 得先弄明白字节流、字符流的区别。IO 库中大量地运用了装饰器模式,有必要的话可以通过其他途径了解一下这个设计模式,了解后对于 IO 可能会有新的认识。
      

  4.   


    Thinking in Java 
    貌似不难看懂啊,我看了两次,每次都有很多收获,特别是第二次看
      

  5.   


    JAVA核心技术前不久刚看过,没什么感觉,可能是没看懂的原因
      

  6.   

    thinking in java正在看,看完一章后面的习题很不错的.做完有很大收获
      

  7.   

    主要是练吧,一开始拼命的看thinking in Java ,看了一半了,速度放下来,多敲敲实例,自己慢慢思索,琢磨下,还是有很多收获的
      

  8.   

    java讲究的是应用
    你又不是开发JVM
    要懂那么多原理做什么?
      

  9.   

    估计楼主是对装饰模式的不理解,因为java I/O的代码一般都会嵌套(不知道这么表达准确不,但应该都知道我想表达的意思)几层new xXXXXStream()如此这般的,看起来有点吃力.给你一点建议,看什么书都好,感觉难以继续下去的时候,不妨先放一下,去看看另外一些书/网上的帖子博客的是怎么陈述此方面的知识,有时候不同的角度看,或许另你豁然开朗.上面说得很虚了,(本人)建议可以看看thinking in java 3th edition第12章I/O惯于Stream和Reader部分的论述.
    那里总结了哪些类是作为源/目的流用的,哪些是用作修饰的(提供某方面的功能,都继承自FilterInputStream/FilterOutputStream).还有就是要记得InputStreamReader和OutpurtStreamReader这两个很有用的类(Stream和Reader的转换).举个例子:
    BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("c:\text.txt"))));这里要表达的意思是:
    1. 创建一个带缓冲功能的基于字符的流(BufferedReader),BufferedReader是起到一个修饰的作用,提供缓冲功能.
    2. 这个缓冲的字符流实际操作的是一个由字节流转换过来的字符流,所以代码接下来就是new了一个InputStreamReader,用以将Stream转换成Reader.
    3. 这个被转换的字节流又是个什么东西呢? 你可以看到它是一个带缓冲功能的输入流,就是BufferedInputStream,这个是一个修饰流,用以提供缓冲功能的(继承自FilterInputStream).
    4. 最后,你看到了new FileInputStream(),其实这个才是你真实要操作的流,因为FileInputStream是一个关于的流(不是起修饰作用,没有继承自FilterInputStream),也就是说它不是用来提供某种功能的,而是表明流是从哪里来的(或者是到哪里去的,如果是FileOutputStream的话).至此,我们看到了,带修饰作用的流起到提供某种功能的作用,在嵌套中的最里面一层一定不是这种带修饰作用的流,而是源/目的流(如FileInputStream或ByteArrayOutputStream等).
    打一个不太贴切的比方:
    public static void main
    这里public,static和void都是用来修饰main这个方法的,这三个修饰符的地位相当于BufferedReader和BufferedInputStream,而main就相当于FileInputStream.
    或者这样看,你会更容易比较:
    new public(new static(new void(new main())))
      

  10.   

    你这种情况建议要多写写代码。编程这种东西实践一下对理解的帮助很大的。core java 2里面的例子都是很不错的,也可以专为了看懂例子,然后去前后找文字解释。
      

  11.   

    先把卷一的内容熟悉了,再看卷二。
    我认为,关键还是要多实战才行。
    没有编程的过程,是无法体会各个类和对象的具体用法和主意的要点的。
    对于IO操作,配合着多线程和聊天室程序来实践比较好。
    因为,同是聊天室程序,可以使用不同的数据类型、不同的IO类进行处理。
    或者,整个多线程拷贝大文件什么的。
      

  12.   

    我最近也在看,快把第一卷看完了,不过跳过了GUI那章,也是云里雾里的。
      

  13.   

    如果lz是初学者,不建议楼主看核心卷,我感觉那玩意就是给c程序员准备的,我认为核心卷是提高java能力的书,
      

  14.   

    我想没事时在手机上看 
    但网上下载的 thinking in java 是pdf格式的
    怎眼才能实现转化?????