第二章对于知识只是点到, 会在以后章节会详细展开.
笔记的侧重会偏向记录自己知识模糊的地方. 比如 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);
- }
- 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 函数传递的是引用, 但是 boolean,char,byte,short,int,long,float,double 来说是一个例外.
# 未完
来源: http://www.bubuko.com/infodetail-3038925.html