Java基礎(chǔ)語(yǔ)法和面向?qū)ο缶幊痰母拍?/h2>

java基礎(chǔ)語(yǔ)法

java的基礎(chǔ)概念與常識(shí)

Java語(yǔ)言的特點(diǎn)

1.Java充分吸收了c++語(yǔ)言的優(yōu)點(diǎn),去掉了c語(yǔ)言中的指針、內(nèi)存申請(qǐng)、釋放內(nèi)存等影響程序健壯性的部分,是面向?qū)ο蟮牡木幊陶Z(yǔ)言,
2.Java語(yǔ)言具有以下特點(diǎn):

  • 簡(jiǎn)單并面向?qū)ο螅ǚ庋b、繼承、多態(tài))
  • 平臺(tái)無(wú)關(guān)性(java系統(tǒng)具有可移植性)
  • 安全性
  • 魯棒性
  • 高性能
  • 多線程
  • 編譯與解釋并存

3.Java的工作原理
java虛擬機(jī)可以安全且兼容的執(zhí)行保存在(.class)字節(jié)碼文件中的字節(jié)碼。Java的跨平臺(tái)主要是指字節(jié)碼文件可以在任何具有JVM的計(jì)算機(jī)或電子設(shè)備上運(yùn)行。
Java源文件需要通過(guò)編譯器(javac)編譯成字節(jié)碼文件,而后通過(guò)解釋器解釋成特定的機(jī)器碼運(yùn)行。
4.Java概念

  • 類:
  • 對(duì)象:
  • 接口:

5.Java程序流程

  • 編寫(xiě)源程序
  • 編譯源程序
  • 運(yùn)行程序

6.Java SE vs Java EE
Java SE(Java Platform,Standard Edition):Java 平臺(tái)標(biāo)準(zhǔn)版,Java 編程語(yǔ)言的基礎(chǔ),它包含了支持 Java 應(yīng)用程序開(kāi)發(fā)和運(yùn)行的核心類庫(kù)以及虛擬機(jī)等核心組件。Java SE 可以用于構(gòu)建桌面應(yīng)用程序或簡(jiǎn)單的服務(wù)器應(yīng)用程序。
Java EE(Java Platform, Enterprise Edition ):Java 平臺(tái)企業(yè)版,建立在 Java SE 的基礎(chǔ)上,包含了支持企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)和部署的標(biāo)準(zhǔn)和規(guī)范(比如 Servlet、JSP、EJB、JDBC、JPA、JTA、JavaMail、JMS)。 Java EE 可以用于構(gòu)建分布式、可移植、健壯、可伸縮和安全的服務(wù)端 Java 應(yīng)用程序,例如 Web 應(yīng)用程序。
7.JVM vs JDK vs JRE
JVM:運(yùn)行 Java字節(jié)碼的虛擬機(jī)。
JVM 并不是只有一種!只要滿足 JVM 規(guī)范,每個(gè)公司、組織或者個(gè)人都可以開(kāi)發(fā)自己的專屬 JVM。
JRE:Java運(yùn)行時(shí)環(huán)境
運(yùn)行已編譯的Java程序所需的內(nèi)容的集合,包括JVM,Java基礎(chǔ)類庫(kù)。
JDK:Java 開(kāi)發(fā)工具
功能齊全,是提供給開(kāi)發(fā)者使用,能夠創(chuàng)建和編譯 Java 程序的開(kāi)發(fā)套件。JDK包含JRE、編譯器javac、文檔注釋工具javadoc、基于JMX的可視化監(jiān)控工具jconsole、反編譯工具javap等等。


面試問(wèn)題羅列:

什么是字節(jié)碼?采用字節(jié)碼的好處是什么?

字節(jié)碼可以在有JVM的計(jì)算器或電子設(shè)備上運(yùn)行,采用字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語(yǔ)言執(zhí)行效率低的問(wèn)腿,同時(shí)又保留了解釋性語(yǔ)言的可移植性。

Java 程序運(yùn)行時(shí)相對(duì)來(lái)說(shuō)還是高效的(不過(guò),和 C、 C++,Rust,Go 等語(yǔ)言還是有一定差距的),而且,由于字節(jié)碼并不針對(duì)一種特定的機(jī)器,因此,Java 程序無(wú)須重新編譯便可在多種不同操作系統(tǒng)的計(jì)算機(jī)上運(yùn)行。
Java 程序從源代碼到運(yùn)行的過(guò)程如下圖所示

Java程序轉(zhuǎn)變?yōu)闄C(jī)器代碼的過(guò)程

我們需要格外注意的是 .class->機(jī)器碼 這一步。在這一步 JVM 類加載器首先加載字節(jié)碼文件,然后通過(guò)解釋器逐行解釋執(zhí)行,這種方式的執(zhí)行速度會(huì)相對(duì)比較慢。而且,有些方法和代碼塊是經(jīng)常需要被調(diào)用的(也就是所謂的熱點(diǎn)代碼),所以后面引進(jìn)了 JIT(Just in Time xCompilation) 編譯器,而 JIT 屬于運(yùn)行時(shí)編譯。當(dāng) JIT 編譯器完成第一次編譯后,其會(huì)將字節(jié)碼對(duì)應(yīng)的機(jī)器碼保存下來(lái),下次可以直接使用。而我們知道,機(jī)器碼的運(yùn)行效率肯定是高于 Java 解釋器的。這也解釋了我們?yōu)槭裁唇?jīng)常會(huì)說(shuō) Java 是編譯與解釋共存的語(yǔ)言 。
Java程序轉(zhuǎn)變?yōu)闄C(jī)器代碼的過(guò)程

最后編輯于
?著作權(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ù)。

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