java学习过程小问题
一:基本的需要注意点(基础语句);
package my; public class hello { public static void main(String[] args) { // TODO Auto-generated method stub // 1. String name = "chen"; System.out.println(name); // 2. boolean a = 1 > 2; System.out.println(a); boolean b = false; boolean c = true; // 3. final int d = 1; // b=2; 错误的 相当于c++中的const // 4 类型装换 double e = 11.3; int f = (int) e; System.out.println(f); // 隐式转换和显示转换 // 5.语句 // 在函数内以分号结束的一行,称为语句statement,注意是在函数中 // 6.数组的应用 // 创建一个数组对象,容纳20个int int[] arr = new int[20]; arr[0] = 1; arr[1] = 2; // 输出长度为20 System.out.println(arr.length); char ch = 'a'; System.out.println(ch); char[] chh = new char[10]; chh[0] = 'a'; System.out.println(chh); } }
二:在java中初识对象与引用
1. 疑问:
① int[] a = { 11, 11, 11, 11 };
② int[] b = a;
③ b[3] = 45;
④ for(int i=0; i<a.length; i++)
{
⑤ System.out.print( a[i] + " ");
}
其中,
第①行,创建了一个数组对象a,
第②行,又定义了另一个b 对象,
第③行,修改了b[3]。这里修改的是b,那么a 的值不变是吗?
第⑤行,实际输出的是11 11 11 45,说明对b 的修改会同时影响a
的内容。为什么呢?
因为:
在Java 语言里,对象(Object)是一个基础概念。
int[] a = new int[4];
在此式中,等号右侧创建了一个数组对象,等号左侧的变量a 称为该
对象的引用( Reference)。
一般来说,可以以称作“变量a 指向了一个对象”,或者简称为“a
是一个对象, 其中a 是对象的名字”
多个变量可以指向同一个对象,例如,
int[] a = new int[4];
int[] b = a;
b[3] = 45;
由于a,b 指向的是一个对象,所以修改b[3],就等同于修改a[3]。
这就好比,“小明”指的是人,“陈明”指的也是人。一个
人可以有多个名字。
2.空指针null
在Java 语言里,有一种特殊的对象,称为“空对象”。例如,
int[] a = null;
其中,a 指向一个空对象,其实就是说a 不指向任何对象。
理解以下几行代码:
① int[] a = new int[4];
② int[] b = a;
③ a = null;
其中,
第①行,创建了一个对象,命名为a
第②行,b 和a 指向同一个对象第
第③行,a 指向null。此时,a 不指向任何对象,而b 指向刚才创建
的对象。
注意:a不能再当成数组用,要不然就是空指针错误
3.失去引用对象
观察以下代码:
① int[] a = { 8, 8, 8 };
② a = new int[4];
③ a[0] = a[1] = a[2] = a[3] = 17;
第①行,创建了一个数组对象,内容为{ 8,8,8}
第②行,创建另一个数组对象, 内容{ 0,0,0,0 }
问题来了,当执行完第②后,曾经创建的第一个对象就没有任何变量
引用它了,称为“失去引用”的对象。
注意:第一个对象系统会自动回收销毁这个对象,此过程称为垃圾加收