java学习过程小问题

时间:2021-12-10 15:13:36

一:基本的需要注意点(基础语句);

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 }
问题来了,当执行完第②后,曾经创建的第一个对象就没有任何变量
引用它了,称为“失去引用”的对象。

 

注意:第一个对象系统会自动回收销毁这个对象,此过程称为垃圾加收