第二章对于知识只是点到,会在以后章节会详细展开。
笔记的侧重会偏向记录自己知识模糊的地方。比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而
“使用对象.成员名称来使用成员变量”,较简单而且易懂,但是比较模糊就记录了。
1. 使用引用操作对象
2. 堆 存放所有的java对象
堆栈 存储对象的引用
特例: 基本数据类型存储在堆栈中
3. java 每种基本类型占用固定的存储空间大小,不像大多数语言那样与机器硬件架构相关,
也是java程序更具有移植性的原因之一
4. 所有的数据值类型都是有符号类型
字节 byte ,位 bit,1byte = 8bit
char 2字节
int 4字节
C语言中 会有int占2或4个字节的说法 c语言规范中应该有规定各种数据类型的最小范围
5. BigInteger 支持任意精度的整数
BigDecimal 支持任意精度的定点数
6. 创建一个数组对象时,实际是创建了一个引用数组,每一个会自动初始化为null
存储基本数据类型的数组,java也会保证数据被初始化
C,C++中数组是内存块,访问下标外的内容,或者访问未被初始化的数组内容会产生意料之外的结果。
7. C、C++、java中,作用域由花括号的位置决定。
int a = 0; { int b = 0; System.out.println(b); 5 } 6 System.out.println(b); //Error
在作用域中定义的变量只可用于作用域结束之前。
以下代码在C、C++是合法的,但是在Java、C#不能这样
C、C++会将较大作用域里面的变量隐藏起来。
{ int x = 0; { int x = 1; } }
8. 可以使用对象.成员名称来使用成员变量。
工作中一般是private修饰成员变量,使用getter/setter操作/获取成员变量。
用对象.成员名称有种C语言的风格,感觉很陌生
9. 基本成员默认值
如果类的某个成员是基本数据类型,即使没有初始化,Java也会确保它会获取一个默认值。
但是 不适用于局部变量,(不是类里面的字段,而是方法里面的定义)
int x;
x不会被初始化,如果x在使用前依旧忘记初始化,Java在编译时会返回一个错误。
10 函数是按值传递的。
但是 对于对象来说,我们使用引用操作对象的,虽然传递给函数的是值,但是这个值可能是一个引用,
调用函数是有可能改变的实参的。
# 未完
2.6 构建第一个Java程序