自学Java13

75 阅读2分钟

引言

  • 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。

java基础 - 9

补充:关于字符串的不可变

  • 前面说到Java中的字符串是引用型变量,其还有个重要特点,就是字符串不可变
  • 观察下图中执行结果,难道字符串s变了吗?

  • 借用网上看到的解释流程图,其实变的不是字符串,而是变量s的“指向”

  • 理解了上面所谓的"指向",也就可以理解下图结果来了

  • 另外注意指向的目标可以是空值null,表示不存在,即该变量不指向任何对象,其与" "并不一样,这个表示的是空字符串,个人理解就是空格,空字符串是一个有效的字符串对象,它不等于null。

数组 1

  • 在Java中因为变量要一个个定义生成,那么有没有简单一些的方法呢,比如用数组
public class Main {
    public static void main(String[] args) {
        // 数字1 - 5:
        int n1 = 1;
        int n2 = 2;
        int n3 = 3;
        int n4 = 4;
        int n5 = 5;
    }
}
  • 但其实没有必要定义5个int变量,直接使用数组来表示“一组”int类型,虽然看着下面例子好像也没简单多少。。。
public class Main {
    public static void main(String[] args) {
        // 数字1 - 5:
        int[] ns = new int[5];
        ns[0] = 1;
        ns[1] = 2;
        ns[2] = 3;
        ns[3] = 4;
        ns[4] = 5;
    }
}

  • 此处的new在前面已经介绍过了,作用就类似于python中实例化一个对象,int是一组 数据类型,5表示数组长度,感觉和python的列表相似,列表也是使用[]来生成
  • Java的数组有几个特点:
    • 数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false;
    • 数组一旦创建后,大小就不可改变。(python的列表可以改变大小)