为什么需要先创建对象再使用对象?
因为只有new过后才能将类加载进堆中,堆中会对成员变量自动赋值,不赋值不能使用成员变量,使用的话会报错。
java.lang包下的内容不需要导包。
String这个类很特殊,打印这个对象不会打印它的地址而是打印它的值。
关于String:
直接使用双引号会直接创建对象,但是这样还是和String str = new String()不同。字符串不可变,一旦创建,不能被改变。
虽然String的值不可变,但是它可以被共享。
有参构造String str = new String(char arr[])的作用,将字符数组转化为字符串。
以双引号创建的数组,只要字符序列相同(顺序和大小相同),两个对象就会指向常量池中的同一个位置。
在java中字符串之间使用 + 拼接的时候,系统底层会自动创建一个stringBuilder对象,然后调用append方法完成拼接。拼接后调用toString方法将对象转化为String类型。
注意字符串的比较要使用equals,不要使用 ==。
java中的常量优化机制能够提高字符串拼接的效率。String str = "a" + "b" + "c" 等价于 String str ="abc"
string和stringBuilder的相互转化:
string-->stringBuilder:可以提高拼接字符串的效果,也可以免费试用reverse方法
stringBuilder-->string:可以使用string的很多方法。
string不可变;stringBuilder是可变的
scanner中的next:
nextLine和nextSth有冲突。nextLine 遇到换行结束。
next和nextSth无冲突。 next 遇到空格或者tap结束。