java编译器是jdk_Java 入门(--Javac(Java编译器)--JDK--JVM--JRE--)
1.java編譯器
Java語言寫的源程序通過Java編譯器,編譯成與平臺無關(guān)的‘字節(jié)碼程序’(.class文件,也就是0,1二進(jìn)制程序),
然后在OS之上的Java解釋器中解釋執(zhí)行。 也相當(dāng)與 注:JVM(java虛擬機(jī))包括解釋器,不同的JDK虛擬機(jī)是相同的,解釋器不同。
2.JVM-java虛擬機(jī)
.JVM:是java的核心和基礎(chǔ),在java編譯器和os平臺之間的虛擬處理器。它是一種利用軟件方法實現(xiàn)的抽象的計算機(jī)基于下層的操作系統(tǒng)和硬件平臺,
可以在上面執(zhí)行java的字節(jié)碼程序。 java編譯器只要面向JVM,生成JVM能理解的代碼或字節(jié)碼文件。Java源文件經(jīng)編譯成字節(jié)碼程序,
通過JVM將每一條指令翻譯成不同平臺機(jī)器碼,通過特定平臺運(yùn)行。
3.JVM執(zhí)行程序的過程:
1.加載。class文件 2.管理并分配內(nèi)存 3.執(zhí)行垃圾收集 JRE(java運(yùn)行時環(huán)境)由JVM構(gòu)造的java程序的運(yùn)行環(huán)境 編譯時 運(yùn)行時
結(jié)論:? JAVA編譯器(javac)把Java源代碼編譯成字節(jié)碼(.class文件);
jvm:在運(yùn)行期將class文件編譯成及其碼文件,供程序運(yùn)行;
Java的入口:
public static void main(String[] args)
這是java程序的入口地址,java虛擬機(jī)運(yùn)行程序的時候首先找的就是main方法.跟C語言里面的main()函數(shù)的作用是一樣的.只有有main()方法的java程序才能夠被java虛擬機(jī)欲行,可理解為規(guī)定的格式
對于里面的參數(shù)及修飾符
public:表示的這個程序的訪問權(quán)限,表示的是任何的場合可以被引用,這樣java虛擬機(jī)就可以找main()方法,從而來運(yùn)行javac程序
static:表明方法是靜態(tài)的,不依賴類的對象的,是屬于類的,在類加載的時候main()方法也隨著加載到內(nèi)存中去
void:main()方法是不需要返回值的
main:約定俗成,規(guī)定的
String[] args:從控制臺接收參數(shù)
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念。
Java的六大特點:1.簡單: 性對于c語言來說淡化了指針的概念,
2.面向?qū)ο? 更貼近人的思維;
3.分布式:? 多臺服務(wù)器工同處理一個服務(wù);減輕服務(wù)器壓力;
4.跨平臺:在不同平臺上運(yùn)行,Java代碼需要一個編譯的過程,將.Java文件編譯成.class文件,然后.class文件再在Java虛擬機(jī)上進(jìn)行運(yùn)行;
5.安全性:(內(nèi)存回收機(jī)制)
1.GC垃圾回收機(jī)制;又叫輪詢機(jī)制
2.延遲釋放(滯后性)?? oc 中使用引用計數(shù)機(jī)制;
6.健壯性:體現(xiàn)在(異常處理機(jī)制),? (容錯性比較高)
java是語言? 需要開發(fā)平臺(Eclipse) ,?? 運(yùn)行平臺( jvm 跨平臺的只要安裝就可以), 環(huán)境部署
1,開發(fā)環(huán)境;
1.? JDK???????? 開發(fā)工具包;
2. JRE????????? 運(yùn)行的jar 包(系統(tǒng)提供的類)
實際上是jar中.class文件
3. JVM???????? java虛擬機(jī) (最終翻譯成操作系統(tǒng)的指令;)
三者之間的關(guān)系 (包含的關(guān)系)
JDK包含JRE 和JVM
JRE 包含 JVM
控制臺編譯Java代碼指令
javac??????? 把 .java 編譯成.class文件
java???????? 執(zhí)行java 程序
javaDoc? 制作API 文檔
Mac 下創(chuàng)建Java環(huán)境;
1.講新建件的文件夾后綴改成? .Java(如果沒有后綴.點擊放達(dá) -系統(tǒng)偏好設(shè)置,然后在高級設(shè)置里面有個:顯示所有文件擴(kuò)展名;)
Last login: Wed May? 2 20:14:12 on ttys000????????????????????????????????????????????????????????????? 首先打開終端
zhangjianhai:~ lanou$???????????????????????????? cd /Users/lanou/Desktop/helloworld??????? (cd+空格將含有文件的文件夾拖入終端’)
zhangjianhai:helloworld lanou$?????????????? javac helloworld.java?????????????????????????????? (將.java轉(zhuǎn)換成.class文件;)
zhangjianhai:helloworld lanou$?????????????? java helloworld????????????????????????????????????????? ( 執(zhí)行.class文件;)
Hello Java!!
zhangjianhai:helloworld lanou$
*? 1.一個java文件可以有多個類(class)
*? 但是只能有一個public修飾的類(公開的)
*? 2.這個public修飾的類必須跟.java文件的文件名相同;
java??? 中的標(biāo)示符 (也是系統(tǒng)已經(jīng)使用的關(guān)鍵詞)
*? 類名???? 使用大駝峰 class后面的跟著的 首字母大寫每個單詞的首字母都要大寫;
*? 變量名??? 都是小駝峰書寫方式;只有第一個首字母是小寫的;后面單詞大寫;
*? 標(biāo)示符??? 只能以數(shù)字 )0—9 字母 (java嚴(yán)格區(qū)分大小寫)下劃線—— 美元$開頭
*? 變量名???? 標(biāo)示符 取名的核心 簡明知其意
public class HelloWorld {
public static void main(String[] args) {
System.out.println(0b11);
}
}
總結(jié)
以上是生活随笔為你收集整理的java编译器是jdk_Java 入门(--Javac(Java编译器)--JDK--JVM--JRE--)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让你的网速快到不可思议
- 下一篇: foobar2000的使用