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