引言
- 在记录自己自学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的列表可以改变大小)