1.JDK和JRE有什么區(qū)別?
JDK:Java Development Kit的簡稱,java開發(fā)工具包,提供了java的開發(fā)環(huán)境和運行環(huán)境。
JRE:Java Runtime Environment的簡稱,java運行環(huán)境,為java的運行提供了所需環(huán)境。
具體來說JDK其實包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調(diào)試和分析的工具。簡單來說:如果你需要運行java程序,只需安裝JRE就可以了,如果你需要編寫java程序,需要安裝JDK。
2.==和equals的區(qū)別是什么?
==解讀
對于基本類型和引用類型==的作用效果是不同的,如下所示:
基本類型:比較的是值是否相同;
引用類型:比較的是引用是否相同;
代碼示例:
String?x?=?"string";String?y?=?"string";String?z?=?new?String("string");System.out.println(x==y);?//?trueSystem.out.println(x==z);?//?falseSystem.out.println(x.equals(y));?//?trueSystem.out.println(x.equals(z));?//?true
代碼解讀:
因為 x 和 y 指向的是同一個引用,所以 == 也是 true,而 new String()方法則重寫開辟了內(nèi)存空間,所以 == 結(jié)果為 false,而 equals 比較的一直是值,所以結(jié)果都為 true。
3.final在java中有什么作用?
final修飾的類叫最終類,該類不能被繼承。
final修飾的方法不能被重寫。
final修飾的變量叫常量,常量必須初始化,初始化之后值就不能被修改。
4.java中的Math.round(-1.5)等于多少?
等于-1,因為在數(shù)軸上取值時,中間值(0.5)向右取整,所以正0.5是往上取整,負0.5是直接舍棄。
5.String屬于基礎(chǔ)的數(shù)據(jù)類型嗎?
String不屬于基礎(chǔ)類型,基礎(chǔ)類型有8種:byte、boolean、char、short、int、float、long、double,而String屬于對象。
6.java中操作字符串都有哪些類?它們之間有什么區(qū)別?
操作字符串的類有:String、StringBuffer、StringBuilder。
String和StringBuffer、StringBuilder的區(qū)別在于String聲明的是不可變的對象,每次操作都會生成新的String對象,然后將指針指向新的String對象,而StringBuffer、StringBuilder可以在原有對象的基礎(chǔ)上進行操作,所以在經(jīng)常改變字符串內(nèi)容的情況下最好不要使用String。
StringBuffer和StringBuilder最大的區(qū)別在于,StringBuffer是線程安全的,而StringBuilder是非線程安全的,但StringBuilder的性能卻高于StringBuffer,所以在單線程環(huán)境下推薦使用StringBuilder,多線程環(huán)境下推薦使用StringBuffer。
7.String str="i"與String str=new String("i")一樣嗎?
不一樣,因為內(nèi)存的分配方式不一樣。String str="i"的方式,java虛擬機會將其分配到常量池中;而String str=new String("i")則會被分到堆內(nèi)存中。
以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機構(gòu)的小編針對“軟件開發(fā)Java基礎(chǔ)入門課后習(xí)題”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。