引言
- 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。
java基础 - 2
常量
- 定义变量的时候,如果加上final修饰符,这个变量就变成了常量:
final double test = 3.14; // test是一个常量
double r = 5.0;
double area = test * r * r;
test = 300; // compile error!
- 在java中常量在定义时进行初始化后就不可再次赋值,再次赋值会导致编译错误,而在python中貌似大多数场景下没有专门的常量的说法,赋值是数字,那就是常量,赋值是变量那就是变量,所以也就不会出现赋值常量报错的情况
- 根据习惯,常量名通常全部大,这个习惯在python中倒是没有这个说法
var关键字
- 有些时候,类型的名字太长,写起来比较麻烦。例如:
StringBuilder sb = new StringBuilder();
- 这个时候可以使用var关键字实现简写:
var sb = new StringBuilder();
-
所以使用var定义变量,仅仅是少写了变量类型而已。
-
关于上面例子中的StringBuilder类型
- StringBuilder是一个可变量的字符串,我们可以把它看成是一个容器, 这里的可变指的是StringBuilder对象中的内容是可变的,因为对字符串进行拼接操作,每次拼接,都会构建新的String对象,既耗时,又浪费空间,而这种操作还不可避免,而这个可变量的字符串就可以方便解决这一问题
-
StringBuilder和String的区别
- 1.String :内容是不可变的。
- 2.StringBuilder:内容是可变的。
-
感觉这个还是满神奇的,不过可能由于python本身变量的定义相对没那么详细,所以上面java不可避免的操作却是可以避免的
-
在Java语言里,“new”表达式是负责创建实例的,其中会调用构造器去对实例做初始化;构造器自身的返回值类型是void,并不是“构造器返回了新创建的对象的引用”,而是new表达式的值是新创建的对象的引用,此处个人简单理解就像是python中创建一个dict或者set,如
a = dict()来创建一个字典a。