java_day01

1.面向過程&面向對象java

 

  • 面向過程
    • 優勢:性能好,單片機、嵌入式開發、Linux/Unix通常採用;
    • 缺點:不易維護、複用、拓展;
  • 面向對象
    • 優勢:易維護、複用、拓展,有封裝、繼承、多態性的特性,便於低耦合,使系統更靈活,更易於維護;
    • 缺點:性能不如面向過程

2.Java語言的特色程序員

  1. 簡單易學;
  2. 面向對象(封裝、繼承、多態);
  3. 平臺無關性;
  4. 可靠性;
  5. 安全性;
  6. 支持多線程;
  7. 支持網絡編程;
  8. 編譯與解釋並存;

3.JVM JDK和JRE編程

  • Java虛擬機(JVM)
    • Java虛擬機(JVM)是運行 Java 字節碼的虛擬機。JVM有針對不一樣系統的特定實現(Windows,Linux,macOS),目的是使用相同的字節碼,它們都會給出相同的結果
    • 在 Java 中,JVM能夠理解的代碼就叫作字節碼(即擴展名爲 .class 的文件),它不面向任何特定的處理器,只面向虛擬機。Java 語言經過字節碼的方式,在必定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特色。因此 Java 程序運行時比較高效,並且,因爲字節碼並不針對一種特定的機器,所以,Java程序無須從新編譯即可在多種不一樣操做系統的計算機上運行。

       

    • 咱們須要格外注意的是 .class->機器碼 這一步。在這一步 JVM 類加載器首先加載字節碼文件,而後經過解釋器逐行解釋執行,這種方式的執行速度會相對比較慢。並且,有些方法和代碼塊是常常須要被調用的(也就是所謂的熱點代碼),因此後面引進了 JIT 編譯器,而JIT 屬於運行時編譯。當 JIT 編譯器完成第一次編譯後,其會將字節碼對應的機器碼保存下來,下次能夠直接使用。而咱們知道,機器碼的運行效率確定是高於 Java 解釋器的。這也解釋了咱們爲何常常會說 Java 是編譯與解釋共存的語言。
    • HotSpot採用了惰性評估(Lazy Evaluation)的作法,根據二八定律,消耗大部分系統資源的只有那一小部分的代碼(熱點代碼),而這也就是JIT所須要編譯的部分。JVM會根據代碼每次被執行的狀況收集信息並相應地作出一些優化,所以執行的次數越多,它的速度就越快。JDK 9引入了一種新的編譯模式AOT(Ahead of Time Compilation),它是直接將字節碼編譯成機器碼,這樣就避免了JIT預熱等各方面的開銷。JDK支持分層編譯和AOT協做使用。可是 ,AOT 編譯器的編譯質量是確定比不上 JIT 編譯器的。
    • 總結:Java虛擬機(JVM)是運行 Java 字節碼的虛擬機。JVM有針對不一樣系統的特定實現(Windows,Linux,macOS),目的是使用相同的字節碼,它們都會給出相同的結果。字節碼和不一樣系統的 JVM 實現是 Java 語言「一次編譯,隨處能夠運行」的關鍵所在。
  •  JDK和JRE
    • DK是Java Development Kit,它是功能齊全的Java SDK。它擁有JRE所擁有的一切,還有編譯器(javac)和工具(如javadoc和jdb)。它可以建立和編譯程序。
    • JRE 是 Java運行時環境。它是運行已編譯 Java 程序所需的全部內容的集合,包括 Java虛擬機(JVM),Java類庫,java命令和其餘的一些基礎構件。可是,它不能用於建立新程序。
    • 若是你只是爲了運行一下 Java 程序的話,那麼你只須要安裝 JRE 就能夠了。若是你須要進行一些 Java 編程方面的工做,那麼你就須要安裝JDK了。可是,這不是絕對的。有時,即便您不打算在計算機上進行任何Java開發,仍然須要安裝JDK。例如,若是要使用JSP部署Web應用程序,那麼從技術上講,您只是在應用程序服務器中運行Java程序。那你爲何須要JDK呢?由於應用程序服務器會將 JSP 轉換爲 Java servlet,而且須要使用 JDK 來編譯 servlet。

4.Java和C++小程序

  • 都是面向對象的語言,都支持封裝、繼承和多態
  • Java 不提供指針來直接訪問內存,程序內存更加安全
  • Java 的類是單繼承的,C++ 支持多重繼承;雖然 Java 的類不能夠多繼承,可是接口能夠多繼承。
  • Java 有自動內存管理機制,不須要程序員手動釋放無用內存

5.主類瀏覽器

  一個程序中能夠有多個類,但只能有一個類是主類。在 Java 應用程序中,這個主類是指包含 main()方法的類。而在 Java 小程序中,這個主類是一個繼承自系統類 JApplet 或 Applet 的子類。應用程序的主類不必定要求是 public 類,但小程序的主類要求必須是 public 類。主類是 Java 程序執行的入口點。安全

  簡單說應用程序是從主線程啓動(也就是 main() 方法)。applet 小程序沒有main方法,主要是嵌在瀏覽器頁面上運行(調用init()線程或者run()來啓動),嵌入瀏覽器這點跟 flash 的小遊戲相似。服務器

6.字符型常量&字符串常量網絡

 

  1. 形式上: 字符常量是單引號引發的一個字符; 字符串常量是雙引號引發的若干個字符
  2. 含義上: 字符常量至關於一個整形值( ASCII 值),能夠參加表達式運算; 字符串常量表明一個地址值(該字符串在內存中存放位置)
  3. 佔內存大小 字符常量只佔2個字節; 字符串常量佔若干個字節(至少一個字符結束標誌) (注意: char在Java中佔兩個字節)
  4.  

7.helloworld多線程

package day_01;//包名

public class helloworld {//類名:helloworld,必須與文件名一致
    public static void main(String[] args) {//主函數(主方法),這裏是靜態
        System.out.println("hello world");//輸出語句
    }

}

8.保留字app

9.標識符

由英文大小寫字母、數字、$、_(下劃線)組成

  • 不能以數字開頭
  • 不能是Java中的關鍵字
  • 區分大小寫
  • 類每一個單詞必須首字母大寫
  • 方法、變量第二個單詞開始首字母大寫
  • 常量每一個字母都大寫(用_隔開)
    • 單行註釋,格式: //註釋文字
    • 多行註釋,格式: /* 註釋文字 */
    • 文檔註釋,格式:/** 註釋文字 */
  • 進制
    • 二進制,由0,1組成。以0b開頭
    • 八進制,由0,1,…7組成。以0開頭
    • 十進制,由0,1,…9組成。整數默認是十進制的
    • 十六進制,由0,1,…9,a,b,c,d,e,f(大小寫都可)。以0x開頭
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息