题记:
花了一周把Peter Haggar的《practical Java》看了遍,有所感悟,年纪大了,
写下笔记,方便日后查看.也希望有缘之人可以看看,做个渺小的指路人。
不足之处还望指正。
全书分为六个部分,包括一般技术、对象与相等性、异常处理、性能、多线程、对象。
一般技术:举例了几个java常见错误用法的说明和解释,诸如array和vector的选择,多态与instanceof等等
对象和相等性则:针对equals的详细说明,是迄今本人见过对equals理解最深的一本书了,其中不乏java的一些规范
异常处理:主要介绍了java异常机制的使用细节,其中有一点就是return后的逻辑一律不执行在try finally模式里头是无效的
性能:介绍了java常用的一些优化细节,诸如使用栈变量来代替堆变量,减少同步化,使用arraycopy方法来代替自己的循环复制数组等等
多线程:简要的说明了java线程使用中一些常见的知识点,如果对java多线程有兴趣的,可以看看《Java并发编程实战》
对象:介绍了接口与继承的关系与使用,对深入学习java框架源码有一定的帮助,感兴趣的可以多思考下其中的奥义
正题:
正题中将挑选自己觉得比较有用的一些知识点进行说明,但并不代表其他知识点就不重要(因人而异,尽信书 不如无书)
最后我会将代码工程打包好,感兴趣的可以去下载下来看看。
1.一般技术
实践1:参数以by value 方式而非by reference 方式传递
1 /** 2 * java有值(基础类型变量value)传递和引用(reference)传递 3 * 两者的区别是引用将会随着调用方法体的逻辑而发生改变 4 * 一个非常基础的java知识点 5 * 献给千千万万徘徊在java门口的求学者 6 * @author lwx 7 * TODO 8 * 参考: 9 * 2014-5-13 上午9:28:38 10 */ 11 public class Lesson1 { 12 13 public static void valueTest(int value){ 14 15 value=value+5; 16 System.out.println("valueTest-->"+value); 17 } 18 19 20 public static void referenceTest(StringBuffer obj){ 21 22 obj.append("123"); 23 24 System.out.println("referenceTest-->"+obj.toString()); 25 } 26 27 public static void main(String[] args) { 28 int value=2; 29 30 valueTest(value); 31 System.out.println(value);//2 32 StringBuffer obj =new StringBuffer("0"); 33 referenceTest(obj); 34 System.out.println(obj.toString());//0123 35 36 } 37 }