為什么需要先創(chuàng)建對象再使用對象鸽扁?
因為只有new過后才能將類加載進(jìn)堆中顾稀,堆中會對成員變量自動賦值汪厨,不賦值不能使用成員變量,使用的話會報錯蜂厅。
java.lang包下的內(nèi)容不需要導(dǎo)包匪凡。
String這個類很特殊,打印這個對象不會打印它的地址而是打印它的值掘猿。
關(guān)于String:
直接使用雙引號會直接創(chuàng)建對象病游,但是這樣還是和String str = new String()不同。字符串不可變,一旦創(chuàng)建衬衬,不能被改變买猖。
雖然String的值不可變,但是它可以被共享滋尉。
有參構(gòu)造String str = new String(char arr[])的作用玉控,將字符數(shù)組轉(zhuǎn)化為字符串。
以雙引號創(chuàng)建的數(shù)組狮惜,只要字符序列相同(順序和大小相同)高诺,兩個對象就會指向常量池中的同一個位置。
在java中字符串之間使用 + 拼接的時候碾篡,系統(tǒng)底層會自動創(chuàng)建一個stringBuilder對象虱而,然后調(diào)用append方法完成拼接。拼接后調(diào)用toString方法將對象轉(zhuǎn)化為String類型耽梅。
注意字符串的比較要使用equals薛窥,不要使用 ==。
java中的常量優(yōu)化機(jī)制能夠提高字符串拼接的效率眼姐。String str = "a" + "b" + "c" 等價于?String str ="abc"
string和stringBuilder的相互轉(zhuǎn)化:
string-->stringBuilder:可以提高拼接字符串的效果,也可以免費試用reverse方法
stringBuilder-->string:可以使用string的很多方法众旗。
string不可變罢杉;stringBuilder是可變的
scanner中的next:
nextLine和nextSth有沖突。nextLine 遇到換行結(jié)束贡歧。
next和nextSth無沖突滩租。 next 遇到空格或者tap結(jié)束。