java簡介

1.1 java平臺簡介
java se :java標準版,主要用於桌面機應用和數據庫的開發。
java ee :java企業版,提供企業級開發的各類技術,主要用於企業級開發,如今用的最多的就是這個。
java me :java micro edition,這個版本主要用於嵌入式和移動式的開發,最經常使用的就是手機應用軟件的開發。
jdk:java development kit.
jdk目錄及說明:
(1)bin:jdk的基本程序都在這裏,如javac,java,javadoc;
(2)demo:java的一些例子程序;
(3)jre:java的運行環境;
(4)lib:java的類庫;
(5)src:java類庫的源代碼;
1.3 程序開發過程
(1)建立一個源文件。java源文件就是java代碼,以Java語言編寫。Java源文件是純文本文件,擴展名爲「.java」。能夠用任何文本編輯器來建立和編輯源文件。
(2)將源文件編譯爲一個.class文件。使用jdk所帶的編譯工具javac.exe,它會讀取源文件並將其文本文件編譯爲Java虛擬機能理解的指令,保存後綴以.class結尾的文件中。包含在class文件中的指令就是衆所周知的字節碼(bytecodes),它是與平臺無關的二進制文件,執行時由解釋器java.exe解釋成本地機器碼,邊解釋邊執行。
(3)運行程序。使用java解釋器(java.exe)來執行java應用程序字節碼(.class文件),經過使用java虛擬機來運行java應用程序。
編寫HellWorld程序:
public class HelloWorld{
      public static void main(String [] args){
      System.out.println("Hello ,World ! ");
      }
 }
java有哪些優勢:
(1)提供一個解釋環境:
*加速開發:java當初是爲了開發適用於智能化電子消費設備上的軟件,它是基於c++的語言,但作了簡化,能加速軟件開發的過程。
*一次編寫,處處運行。(跨平臺性)
*多線程:多線程編寫的簡單性是java成爲流行的服務器端開發語言的主要緣由之一。
(2)提供了一個比較容易的編程方式:
*更健壯:沒有指針(引用),沒有內存管理;
*更純粹的面向對象的編程:在java中認爲一切均是對象,對象有屬性以及改變屬性值的方法。經過Java編程圍繞着構建對象的模板,實例化對象,調用對象的方法和屬性等來進行封裝,繼承,多態。

java虛擬機的特性:
JVM:java virtual machine,是用軟件來模擬一個虛擬的環境。咱們用java編寫的源程序通過編譯以後會生成字節碼文件,JVM提供了一個解釋運行java字節碼文件的環境,只要在不一樣的操做系統上安裝JVM後,就能對同一個java程序進行解釋運行,這就是Java的跨平臺,一次編寫,處處運行。它能將.class轉換成機器或者操做系統所能識別的二進制文件。

垃圾收集的概念:
垃圾:無用對象所佔據的空間;
垃圾回收:將無用對象所佔據的空間進行回收的過程。
爲何要進行垃圾回收?
對象建立須要佔用內存空間,在一個程序運行過程當中要建立無數個對象,若是對象永久佔用內存,那麼內存很快就會消耗光,致使後續對象沒法建立或者出現內存不足的錯誤,所以必須採用必定的措施及時回收那些無用對象的內存,這樣保證內存能夠被重複利用。c++等程序員忘記內存釋放,致使無故的內存佔用;或者釋放類庫佔用內存,致使系統崩潰;
java中的垃圾回收處理:由虛擬機經過一個系統級的垃圾回收期鮮橙自動完成,不會忘記也不會釋放錯誤,系統更加穩定;
java中垃圾回收處理的特色:
(1)由虛擬機經過垃圾回收線程自動完成;
(2)只有當對象再也不被使用,它的內存纔有可能被回收;若是虛擬機認爲系統不須要額外的內存,即便對象再也不被使用,內存也不會被回收;CPU是否空閒,內存是否緊張;
(3)程序沒法顯示迫使垃圾回收器當即執行垃圾回收,能夠經過java.lang.System.gc()/java.lang.Runtime.gc()建議虛擬機回收對象;
闡述Java平臺代碼安全實現策略:
java虛擬機爲java程序提供運行時的環境,其中一項重要的任務就是管理類,管理類的加載,鏈接和初始化;
加載:查找並加載類的二進制文件(class文件)Java虛擬機能夠從多種來源加載類的二進制數據,包括:
*從本地文件系統中加載.class文件,最多見;
*經過網絡下載.class文件;
*從zip,jar或其餘類型的歸檔文件中提取.class文件;
*從一個專用數據庫中提取.class文件;
*把一個java源文件動態編譯爲.class文件;
鏈接:
*驗證:確保被加載類的正確性(有正確的內部結構而且與其餘類協調一致);
爲何要驗證?
Java虛擬機不知道某個特定的.class文件究竟是由正常的java編譯器生成的,仍是黑客特製的。類的驗證能提升程序的健壯性,確保程序被安全的執行。
類的驗證內容:*代碼和JVM規範一致
          *代碼不能破壞系統的完整性
          *沒有堆棧的上溢和下溢
          *參數類型是正確的
          *類型轉換是正確的
初始化:給類的靜態變量賦予正確的初始值;
java的工做方式:
源代碼:編寫java源代碼文件
編譯器:用編譯器編譯源代碼。編譯器會檢查錯誤,若是有錯誤就要改正才能正確的輸出。
輸出:編譯器會產生字節碼。任何支持java的裝置都能把它轉譯成可執行的內容。編譯後的字節碼於平臺無關。
java虛擬機:能夠讀取和執行字節碼。加載指定類,開始執行它的main方法,而後一直運行到main的全部程序代碼結束爲止。





java

相關文章
相關標籤/搜索