Java学习笔记(1)

<1>java字符串的不可变性
public class Main {
    public static void main(String[] args) {
        String s = "hello";
        System.out.println(s); // 显示 hello
        s = "world";
        System.out.println(s); // 显示 world
    }
}

虽然打印输出的s发生了变化,但其实只是s的指向发生了变化,并不是s的值发生了变化

执行String s=“hello”
Java学习笔记(1)_第1张图片
执行s = “world”;
Java学习笔记(1)_第2张图片

原来的字符串"hello"还在,只是我们无法通过变量s访问它而已。因此,字符串的不可变是指字符串内容不可变。

<2>数组大小不可变
public class Main {
    public static void main(String[] args) {
        // 5位同学的成绩:
        int[] ns;
        ns = new int[] { 68, 79, 91, 85, 62 };
        System.out.println(ns.length); // 5
        ns = new int[] { 1, 2, 3 };
        System.out.println(ns.length); // 3
    }
}

实际上:
ns = new int[] { 68, 79, 91, 85, 62 };执行以下操作
Java学习笔记(1)_第3张图片

ns = new int[] { 1, 2, 3 };执行时,ns又指向一个新的数组,只是原来的数组无法通过ns引用
Java学习笔记(1)_第4张图片

<3>java输入输出

ava提供的输出包括:System.out.println() / print() / printf(),其中printf()可以格式化输出;
Java提供Scanner对象来方便输入,读取对应的类型可以使用:scanner.nextLine() / nextInt() / nextDouble() / …

<4>数组的遍历
(1)for循环遍历数组
public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };
        for (int i=0; i<ns.length; i++) {
            int n = ns[i];
            System.out.println(n);
        }
    }
}

(2)for each直接遍历数组元素,无法拿到数组的索引

public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };
        for (int n : ns) {
            System.out.println(n);
        }
    }
}
<5>打印数组内容
直接打印数组是打印数组的地址
int[] ns = { 1, 1, 2, 3, 5, 8 };
System.out.println(ns); // 类似 [I@7852e922

使用javaa toString方法

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 1, 2, 3, 5, 8 };
        System.out.println(Arrays.toString(ns));
    }
}

你可能感兴趣的:(java)