1、字符串比较中的问题
a==b和a.equals(b)
由于String是一个特殊的类,所以上图中a,b应该是两个不同的对象,那么为什么a==b的结果是true而不是false呢?
这是因为jvm底层做了优化所以结果是true,但这种写法并不推荐,图中官方也给出推荐用a.equals(b)来判断两个字符串是否相等。
2、字符串类是一个比较特殊的类,他是Java中唯一重载运算符的类! (Java不支持运算符重载,String是特例)String的对象直接支持使用+或+运算符来进行拼接,并形成新的String对象! (String的字符串是不可变的!)
而StringBuilder也是一个类,但是它能够存储可变长度的字符串!
3、静态导入可以直接导入某个类的静态方法或者是静态变量,导入后,相当于这个方法或是类在定义在当前类中,可以直接调用该方法。
静态导入不会进行类的初始化,当调用静态方法时才会加载初始化。
4、Java支持对类属性访问的保护,也就是说,不希望外部类访问类中的属性或是方法,只允许内部调用,这种情况下我们就需要用到权限控制符。
和文件名称相同的类,只能是public,并且一个java文件中只能有一个public class!
5、数组可以表示任何相同类型的一组内容(包括引用类型和基本类型)。数组本身也是类,不是基本数据类型。