《瘋狂Java講義》學習筆記(一)Java語言概述與開發環境

前言:
記得剛開始學習Java的時候主要還是跟着做,知道怎麼用,裏面一些原理大概也是一知半解
寫Java程序有個幾年經驗了,感覺是時候回顧下一些基礎的知識
篩選了很多學習Java基礎的書籍,感覺李剛老師寫的《瘋狂Java講義》把知識點寫得比較通透,比較適合用來回顧
寫下一些重點的筆記或摘抄,方便後續不定時回顧
詳細閱讀請購買《瘋狂Java講義》

1、Java語言發展史
  • 1990年James Gosling準備進軍下一代智能家電,但C++太複雜,想自己開發新語言 1992年創建Oak語言
  • 1994年完成Java網頁瀏覽器WebRunner,Oak已被註冊,更名爲Java 1995年吸引了10萬下載
  • 1996年發佈JDK1.0,增加了運行環境JRE,開發環境JDK 1997年發佈JDK1.1,增加了JIT編譯器
  • 1998年發佈JDK1.2,增加了servlet/jsp,EJB,分成J2EE、J2SE和J2ME三個版本
  • 2002年發佈JDK1.4,涌現了大量開源框架Struts、Spring、Hibernate、WebWork等,涌現了大量企業服務器:WebLogic、WebSphere、JBoss等
  • 2004年發佈JDK1.5,改名爲JavaSE5.0、JavaEE和JavaME,EJB3.0,JSF 2006年發佈JDK1.6
  • 2009年被Oracle收購,總價74億美元 2011年發佈JavaSE7 2014年發佈JavaSE8
2、Java程序運行機制
  • 編譯型:一次編譯成硬件可以執行的機器碼,通常效率較高,但移植性差;如:C、C++、Objective-C、Pascal等
  • 解釋型:先進行一次編譯,由專門的解釋器解釋成特定平臺的機器指令,通常效率較低,但移植性強;如:Ruby、Python等
  • Java:比較特殊,先經過編譯成class文件,由java解釋執行成特定平臺的機器碼,再由JVM執行而非面向具體平臺。
  • JVM:指令集、寄存器、類文件的格式、棧、垃圾回收堆、存儲區
3、Java程序的基本規則
  • 類的命名規則
    • 後綴必須是.java
    • 如果是public類,文件名必須與類名相同,即使不是public類也建議文件名與類名保持一致
      類名首字母大寫是規範
4、垃圾回收機制

Java程序的內存分配和回收都是用JRE在後臺自動運行的,一般都在CPU空閒或內存不足時自動進行垃圾回收

  • 優點:
    可以很好的提高編程效率
    保護程序的完整性
  • 缺點:
    虛擬機必須跟蹤程序有用的對象,會帶來開銷,一定程度上影響性能
    垃圾回收算法不完備,不能保證100%回收
  • 特點:
    只能回收JVM內存資源,無法回收物理資源,如:數據庫連接、磁盤I/O
    可以將對象設置爲null,暗示進行垃圾回收
    具有不可預知性,可以採用System.gc()進行手動回收,但不建議
    精確性:精確標記活着的對象、精確定位對象之間的引用關係
    現在的JVM有多種不同的垃圾回收實現,表現各異
  • Java7提供GI逐漸替代GMS垃圾回收器
  • Java8將HotSpot JVM中的永生內存PermGen改成使用本地內存來存儲類的元數據,稱爲元空間,意味着不再會出現內存溢出錯誤
發佈了73 篇原創文章 · 獲贊 11 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章