Thinking in java的第二章,一切都是对象。对象这个概念在导论中已经提到了,在这一章都,作者给了更加深刻的解释:
- 只有实例化后才可以成为对象(基本类型特例),单个String s只是一个引用。
- 引用在计算机中被往往放在堆栈中,而对象放在堆中(基本类型在堆栈中)。
- java中基本类型都有固定的大小,并且不存在无符号类型。
- 数组是对象。(不论是基本类型还是普通类数组),存储结构参照(2)
- 只有在类成员中的基本数据类型初始化才会有默认值,如果局部变量就不具有。
- java中对象参数的传递为引用传递(基本数据类型除外,可以参照(2)中的存储方式理解)。
- 对于static作用的方法和变量并不依赖于对象是否创建而存在。static中如果要使用非局部变量就必须是静态变量。(这一点和static方法是否线程安全有点关系,假如static方法没有用到共享空间就是线程安全,那么结合static特性,如果static传入的参数不是线程间共有的,就是线程安全)。
感觉在看的过程有很多之前没想到的东西,比如之前在看static,就只会想到static,现在回去考虑线程安全的问题,还是学了不少东西啊。