Java基礎(chǔ)

JDK 和 JRE 有什么區(qū)別?

JDK(Java Development Kit):Java 語(yǔ)言的軟件開(kāi)發(fā)工具包。
SE(JavaSE),standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本,從JDK 5.0開(kāi)始,改名為Java SE。
EE(JavaEE),enterprise edition,企業(yè)版,使用這種JDK開(kāi)發(fā)J2EE應(yīng)用程序,從JDK 5.0開(kāi)始,改名為Java EE。從2018年2月26日開(kāi)始,J2EE改名為Jakarta EE [1] 。
ME(J2ME),micro edition,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,從JDK 5.0開(kāi)始,改名為Java ME。
是面向開(kāi)發(fā)人員的開(kāi)發(fā)工具包,沒(méi)有JDK的話,無(wú)法編譯Java程序(指java源碼.java文件)
百度百科地址:https://baike.baidu.com/item/JDK/1011
JRE是Java Runtime Enviroment是指Java的運(yùn)行環(huán)境,是面向Java程序的使用者,擁有JRE環(huán)境才可運(yùn)行class文件或者jar包

== 和 equals 的區(qū)別是什么?

對(duì)于基本類(lèi)型和引用類(lèi)型 == 的作用效果是不同的,如下所示:

  • 基本類(lèi)型:比較的是值是否相同;
  • 引用類(lèi)型:比較的是引用是否相同;
    equals 本質(zhì)上就是 ==,只不過(guò) String 和 Integer 等重寫(xiě)了 equals 方法,把它變成了值比較??聪旅娴拇a就明白了。
    總結(jié) :== 對(duì)于基本類(lèi)型來(lái)說(shuō)是值比較,對(duì)于引用類(lèi)型來(lái)說(shuō)是比較的是引用;而 equals 默認(rèn)情況下是引用比較,只是很多類(lèi)重新了 equals 方法,比如 String、Integer 等把它變成了值比較,所以一般情況下 equals 比較的是值是否相等。

兩個(gè)對(duì)象的 hashCode() 相同, 那么 equals() 也一定為 true嗎?

不對(duì),兩個(gè)對(duì)象的 hashCode() 相同,equals() 不一定 true。
但是equals()相等,hashCode()一定相等

final 在 Java 中有什么作用?

final作為Java中的關(guān)鍵字可以用于三個(gè)地方。用于修飾類(lèi)、類(lèi)屬性和類(lèi)方法。
特征:凡是引用final關(guān)鍵字的地方皆不可修改!
(1)修飾類(lèi):表示該類(lèi)不能被繼承;
(2)修飾方法:表示方法不能被重寫(xiě);
(3)修飾變量:表示變量只能一次賦值以后值不能被修改(常量)。

Java 中的 Math. round(-1. 5) 等于多少?

Math.round(-1.5)的返回值是-1。四舍五入的原理是在參數(shù)上加0.5然后做向下取整。

String 屬于基礎(chǔ)的數(shù)據(jù)類(lèi)型嗎?

String是final修飾的java類(lèi),java中的基本類(lèi)型一共有8個(gè),它們分別為:
字符類(lèi)型:byte,char
基本整型:short,int,long
浮點(diǎn)型:float,double
布爾類(lèi)型:boolean
此外需要說(shuō)明 有的文章中吧void也算是一種基本的數(shù)據(jù)類(lèi)型

Java 中操作字符串都有哪些類(lèi)?它們之間有什么區(qū)別?

操作字符串的類(lèi)有:String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的區(qū)別在于 String 聲明的是不可變的對(duì)象,每次操作都會(huì)生成新的 String 對(duì)象,然后將指針指向新的 String 對(duì)象,而 StringBuffer、StringBuilder 可以在原有對(duì)象的基礎(chǔ)上進(jìn)行操作,所以在經(jīng)常改變字符串內(nèi)容的情況下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的區(qū)別在于,StringBuffer 是線程安全的,而 StringBuilder 是非線程安全的,但 StringBuilder 的性能卻高于 StringBuffer,所以在單線程環(huán)境下推薦使用 StringBuilder,多線程環(huán)境下推薦使用 StringBuffer。

String str="i"與 String str=new String("i")一樣嗎?

不一樣,因?yàn)閮?nèi)存的分配方式不一樣。String str="i"的方式,Java 虛擬機(jī)會(huì)將其分配到常量池中;而 String str=new String("i") 則會(huì)被分到堆內(nèi)存中。這一點(diǎn)在equals()方法和==方法的時(shí)候要注意。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容