1. java中的类型
(1)除基本类型之外的变量类型都称之为引用类型。
(2)java中的变量
① 局部变量:使用前必须被初始化或赋值
② 成员变量:不赋值有默认值(数值0或0.0、字符char为\u0000,布尔类型为false,所有引用类型都是NULL)
(3)boolean类型不能与其他任何类型转换
(4)java中基本类型全都是有符号类型
2. java和C++引用的区别
(1) c++中:引用就是某个变量的别名
(2)Java 中:引用类似于 c++中地址指针的包装,会有一个内部转化为指针的过程
3. 引用类型大小
java的引用相当于c++的指针,C++的指针是占四个字节,java引用应该也是固定的大小。sun hotspot jvm和ibm jvm中都把引用实现为一个指针,因此在64位平台上占8个字节,在32位平台上占4个字节。
注:引用本身保留在栈中,引用所指向的对象保存在堆中
4. 参数传递
java全部采用值传递。传的是基本类型时,传的是值的拷贝;传参的是引用类型,形参和实参指向同一个堆空间对象。
5. 数组内存分析
5.1 一维数组的初始化
(1)静态初始化:int[ ] b = {1,2,3}
(2) 动态初始化:int[ ] b = new int[4] ; 或 int[ ] b = null; b = new int[4]
5.2 二维数组的初始化
二维数组允许每行元素个数不同
(1)静态初始化:int [][] b ={ { 1,2,3 },{1,2,3,4,5,6} ,…… };
(2)动态初始化:
① 一次性分配完 int[][] a =new int[2][3];
②一层一层分配:int [][]a = new int[4][]; //列数未指定,可以随便定义
a[0]=new int[2]; a[1]=new int[3]; 注: 二维数组的行数: 数组名.length 某一行元素个数: 数组名[行的索引].length Int [][]a = new int[][4] //非法
6. 对象的比较
(1)==只能用来比较两个变量的字节组合是否相等。 比较基本数据类型时比较的是值,比较两个对象时比较的是两个对象的地址值(引用值)。
(2)equals()来判断两个对象内容是否相等
代码分析:
常量会被放在常量池内, 第一种情况相当于开辟了空间,然后把常量池中的字符复制进空间内。
第二种情况相当于直接都指向了常量池。所以 str3、str4 所存放和指向的内容均相同。
7. 对象数组的使用
静态初始化: Person p[ ]={ new Person(), new Person()……} 动态初始化: Person p[ ] = new Person [ 3 ]; p[0] = new Person[ ] ……标签:初始化,java,int,数据类型,Person,引用,new,内存 From: https://www.cnblogs.com/dkhlaojogo/p/17131640.html