新聞中心
Java三大版本
Write Once、Run Anywhere(一次編寫,隨處運(yùn)行)

創(chuàng)新互聯(lián)主營(yíng)臨河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā),臨河h5小程序定制開發(fā)搭建,臨河網(wǎng)站營(yíng)銷推廣歡迎臨河等地區(qū)企業(yè)咨詢
- JavaSE:標(biāo)準(zhǔn)版(桌面程序、控制臺(tái)開發(fā)......),Java的基礎(chǔ)與核心,也是JavaEE和JavaME技術(shù)的基礎(chǔ)。
- JavaME:嵌入式開發(fā)(手機(jī)、小家電......),應(yīng)用范圍較小
- JavaEE:E企業(yè)級(jí)開發(fā)(web端、服務(wù)器開發(fā)......),是Java技術(shù)應(yīng)用最廣泛的領(lǐng)域,JavaSE是JavaEE的基礎(chǔ)。
JDK、JRE、JVM之間的關(guān)系
關(guān)系:JDK包含JRE,JRE包含JVM
- JDK(Java Development Kit):Java開發(fā)工具包,用于Java程序的開發(fā)。
- JRE(Java Runtime Environment):Java運(yùn)行時(shí)環(huán)境,只能運(yùn)行.class文件,不能編譯。
- JVM(Java Virtual Machine):Java虛擬機(jī),Java運(yùn)行時(shí)環(huán)境。
一、JDK
JDK(Java Development Kit),Java開發(fā)工具包,用于Java程序的開發(fā),針對(duì)開發(fā)者。
JDK是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基本的類庫(kù)(即Java API包括rt.jar)。
JavaAPI是Java的應(yīng)用程序接口,里面有很多已經(jīng)寫好的Java Class,包括一些重要的語言結(jié)構(gòu)以及基本圖形,網(wǎng)絡(luò)和文件I/O等等,我們可以直接調(diào)用使用。
二、JRE
JRE(Java Runtime Environment),Java運(yùn)行時(shí)環(huán)境,只能運(yùn)行.class文件,不能編譯,針對(duì)用戶。JRE,包含了一個(gè)JVM(Java虛擬機(jī)),與Java核心類庫(kù)與其所支持的文件。與JDK不同,它不包含開發(fā)工具——編譯器、調(diào)試器和其它工具。
將Java源程序(擴(kuò)展名為.java的文件)
JRE,是運(yùn)行Java程序必不可少的,編寫好的Java程序必須要JRE才能運(yùn)行,如果想運(yùn)行一個(gè)開發(fā)好的Java程序,計(jì)算機(jī)中只需要安裝JRE即可。
包含關(guān)系:
JDK—>JRE、JAVA基礎(chǔ)類庫(kù)
JRE—>JVM、Java核心類庫(kù)
三、JVM
JVM(Java Virtual Machine),Java虛擬機(jī),Java運(yùn)行時(shí)環(huán)境。
Java虛擬機(jī),是一種虛擬出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上模擬仿真各種計(jì)算機(jī)功能實(shí)現(xiàn)的。
JVM功能:將字節(jié)碼文件(擴(kuò)展名為.class的文件)解釋成具體系統(tǒng)平臺(tái)的機(jī)器指令。
JVM,是整個(gè)Java實(shí)現(xiàn)跨平臺(tái)的最核心的部分,所有的Java程序會(huì)首先被編譯為.class的類文件,這種類文件可以在虛擬機(jī)上執(zhí)行,也就是說class并不直接與機(jī)器的操作系統(tǒng)相對(duì)應(yīng),而是經(jīng)過虛擬機(jī)間接與操作系統(tǒng)交互,由虛擬機(jī)將程序解釋給本地系統(tǒng)執(zhí)行。
每日三道Java面試題
1.Java有哪幾種基本數(shù)據(jù)類型?
Java有4類8種數(shù)據(jù)類型,它們分別是
1.整形:byte、short、int、long
2.浮點(diǎn)型:float、double
3.字符型:char
4.布爾型:boolean
2.==和equals比較有什么區(qū)別?
==:
如果比較的對(duì)象是基本數(shù)據(jù)類型,則比較的是數(shù)值是否一致;
如果比較的是引用數(shù)據(jù)類型,則比較的是對(duì)象的地址是否一致。
equals():
equals()默認(rèn)用來比較對(duì)象的地址是是否一致,不能用于比較基本數(shù)據(jù)類型,如果對(duì)象和自身進(jìn)行比較,則equals()方法與==的作用是一樣的。
public boolean equals(Object obj){
return (this == obj);
}
那為什么常用equals()來比較String字符串的內(nèi)容相等是為什么呢?
那是因?yàn)閷?duì)于String、Date、Integer等類型重寫了equals方法,使其比較的是存儲(chǔ)對(duì)象的內(nèi)容是否相等,而不是內(nèi)存地址。
如String類,已經(jīng)重寫了equals方法:
public boolean equals(Object anObject) {
if(this == anObject) {
return true;
}
if(anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if(n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n -- != 0) {
if(v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
3.Java支持xx ≠ null 不等于寫法嗎?
不支持,正常的不等于寫法是:!=
?本文轉(zhuǎn)載自微信公眾號(hào)「崔九八」,作者「崔九八」,可以通過以下二維碼關(guān)注。
轉(zhuǎn)載本文請(qǐng)聯(lián)系「崔九八」公眾號(hào)。
當(dāng)前標(biāo)題:Java三大版本&JDK、JRE、JVM
文章網(wǎng)址:http://www.dlmjj.cn/article/cdgihsc.html


咨詢
建站咨詢
