1. 程式人生 > >java基礎-01基本概念

java基礎-01基本概念

java的特點

跨平臺

  • 所謂的平臺,我們可以理解為作業系統。
  • 大部分語言是不能跨平臺的,比如c語言的程式在windows和linux上需要編寫不同的程式碼。
  • java程式是執行在JVM(Java Virtual Machine - Java虛擬機器-虛構出來的計算機)中, JVM是Java跨平臺使用的根本。
  • Java既是編譯型語言(編譯為位元組碼,位元組碼可以在jvm中執行)也是解釋型語言(jvm把位元組碼解釋為具體平臺的機器指令)。

可靠安全

  • 強型別語言,變數先定義再使用,編譯時會檢查變數型別是否正確。
  • 使用引用型別代替指標,指標可以直接操作記憶體,可能導致程式崩潰。
  • JVM會對位元組碼進行檢查。
  • 異常處理機制,對可能錯誤的程式碼,進行異常檢查。

面向物件

  • 支援封裝、繼承、多型,模組化,高內聚,低耦合,通過介面聯絡。
  • 一切都是物件。

多執行緒

  • 多執行緒功能使得在一個程式裡可同時執行多個小任務。
  • 多執行緒帶來的更大的好處是更好的互動效能和實時控制性能。

分散式計算

  • 包含HTTP和FTP等協議類庫,可憑藉URL操作網路物件,訪問方式與訪問本地檔案系統幾乎完全相同,為分散式程式設計提供了很大方便。 
  • 強大的網路程式設計,比如socket程式設計。

動態特性

  • 動態特性,允許程式動態地裝入執行過程中所需要的類。
  • 實現方式1:反射Reflection(慢,耗效能,是直接invoke發生的近1000倍)和動態代理。
  • 實現方式2:Instrumentation(java6新特性), 執行時類轉化Runtime Class Transformation。

java工作方式

  1. 編寫原始碼。列入存為 Party.java

  2. 編譯器。 執行javac來編譯原始碼。編譯器會檢查錯誤。

  3. 如果程式沒有錯誤,編譯器產生編譯檔案Party.class檔案。這個編譯檔案由位元組碼組成。這個編譯檔案與平臺無關

  4. 啟動JVM(Java虛擬機器),執行Party.calss. JVM將位元組碼轉換為平臺能理解的形式來執行。

開發工具

JDK工具

  • javac 編譯
  • java 執行
  • jar 打包
    https://www.cnblogs.com/wang7/p/10127415.html

IDEA

Intellj IDEA 簡易教程 http://www.cnblogs.com/rocedu/p/6371315.html#SECDEBUG

java術語

java 三個體系

  • JavaSE(Java Platform Standard Edition,java平臺標準版)
  • JavaEE(Java Platform Enterprise Edition,java平臺企業版)
  • JavaME(Java Platform Micro Edition,java平臺微型版)

java專有術語

  • JDK(Java Development Kit):Java 語言的軟體開發工具包
  • OpenJDK:Java SE 的一個免費開源實現, 不包含瀏覽器整合或 JavaFX
  • JRE(Java Runtime Environment): Java 執行環境,JRE由Java API和JVM組成
  • JVM (Java Virtual Machine):java虛擬機器
  • JAVA_HOME:java安裝位置,用來配置環境變數
  • classpath: 類路徑,讓java 直譯器知道到哪裡去找類

源程式結構

Java 包(package):為了更好地組織類,Java 提供了包機制,用於區別類名的名稱空間。
包的作用如下:

  1. 模組化:把功能相似或相關的類或介面組織在同一個包中,方便類的查詢和使用。
  2. 唯一標識:【包名+類名】在同一個程式中必須是唯一的,避免名字衝突。不同包的類名可以相同,但使用時應該指定包名。
  3. 許可權控制:類名前不加任何許可權修飾詞時,代表只有這個包的類可以訪問這個類。

Java中的訪問許可權控制的等級,按照許可權從大到小依次為:
Public -> protected -> 包訪問許可權(沒有許可權修飾詞)-> private。

註釋

行註釋  //
多行註釋 /**/



文件註釋:
/**

標籤  描述  示例
@author 標識一個類的作者    @author description
@version    指定類的版本  @version info

@param  說明一個方法的引數   @param parameter-name explanation
@return 說明返回值型別 @return explanation
@deprecated 指名一個過期的類或成員 @deprecated description
 
@exception  標誌一個類丟擲的異常  @exception exception-name explanation
@throws 和 @exception標籤一樣.   The @throws tag has the same meaning as the @exception tag.

{@link} 插入一個到另一個主題的連結   {@link name text}
{@linkplain}    插入一個到另一個主題的連結,但是該連結顯示純文字字型  Inserts an in-line link to another topic.
@see    指定一個到另一個主題的連結   @see anchor
{@value}    顯示常量的值,該常量必須是static屬性。  Displays the value of a constant, which must be a static field.
*/

參考

  • Java語言的主要特點 https://www.cnblogs.com/yxiaooutlook/p/7625362.html
  • JAVA語言主要特點有哪些? https://www.cnblogs.com/jay36/p/7762535.html
  • Java程式設計的動態特性, 從Reflection到Runtime Class Transformation https://blog.csdn.net/iteye_12751/article/details/82550531
  • Instrumentation 新功能 https://www.ibm.com/developerworks/cn/java/j-lo-jse61/
  • Java Instrumentation https://blog.csdn.net/DorMOUSENone/article/details/81781131
  • JDK工具一覽表 https://blog.csdn.net/qq_27607965/article/details/79982519
  • Java學習之專業術語 https://blog.csdn.net/yxys01/article/details/78517459
  • Java中的訪問控制權限 https://www.cnblogs.com/jingmoxukong/p/5182331.html
  • Java 文件註釋http://www.runoob.com/java/java-documentation.html