1.3 技术解惑
Java语言开发技术博大精深。正是因为如此,Java一直深受广大程序员的喜爱。作为一名初学者,肯定会在学习过程中遇到很多疑问和困惑。在本节的内容中,作者将自己的心得体会告诉大家,帮助读者解惑。
1.3.1 对初学者的建议
(1)学得要深入,基础要扎实。
基础的作用不必多说,在大学课堂上讲过很多次,在此重点说明“深入”。职场不是学校,企业要求你能高效地完成项目,但是现实中的项目种类繁多,我们需要从基础上掌握Java技术的精髓。走马观花式的学习已经被社会淘汰,入门水平不会被IT公司接受,他们需要的是高手。
(2)恒心,演练,举一反三。
学习编程的过程是枯燥的,我们需要将学习Java当成自己的乐趣,只有做到持之以恒才能有机会学好。另外,编程最注重实践,最忌讳闭门造车。每一个语法,每一个知识点,都要反复用实例来演练,这样才能加深对知识的理解。要做到举一反三,只有这样才能对知识有深入的理解。
1.3.2 理解Java的垃圾回收机制
对于很多具有C语言基础的读者来说,在Java的众多突出特性之中,垃圾回收机制是首先要习惯的一个,因为在他们之前的习惯中,动态分配的对象所占的内存会在程序结束运行之前一直被占用,在明确释放之前不能分配给其他对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便被垃圾回收机制视为垃圾,后者是JVM中的一个系统级线程,它会自动释放这样的内存块,垃圾被回收意味着程序不再需要的对象是“无用信息”,这些信息将被丢弃。当一个对象不再被引用时,JVM就会回收它占用的内存,以便该内存能被后来的新对象使用。事实上,除了释放没用的对象之外,垃圾回收机制也会清除内存中的碎片。这些碎片是由于创建对象以及垃圾回收机制释放对象占用的内存空间造成的,碎片是分配给对象的内存块之间的空闲内存洞。执行碎片整理会将占用的堆内存移到堆的一端,JVM则将整理出的内存分配给新的对象。
垃圾回收机制能自动释放内存空间,这样做可以减轻编程人员的负担,赋予Java虚拟机一些优点。它能提高编程效率。在没有垃圾回收机制的时候,可能要花许多时间来解决让人费解的存储器问题。在用Java语言编程时,靠垃圾回收机制可大大缩短时间。另外,它能保护程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。
垃圾回收的一个潜在缺点是,它的开销会影响程序性能。Java虚拟机必须追踪所运行程序中有用的对象,而且最终释放没用的对象。这个过程需要占用处理器。另外,垃圾回收机制在算法上的不完备性,也会使得早先采用的某些垃圾回收不能保证100%回收所有的废弃内存。当然,随着垃圾回收算法的不断改进以及软硬件运行效率的不断提升,这些问题都终将得到解决。
1.3.3 充分利用Java API文档
Java API文档是Java官方为广大程序员提供的一份福利,里面详细介绍了类、方法和变量的解释说明。如果开发人员对正在使用的类不熟悉,想查看类里面定义的变量或方法,就可以打开Java API文档进行阅读和查看。Oracle官网上的在线Java API文档如图1-1所示。
图1-1 在线Java API文档