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工做方式
編寫源代碼。列入存爲 Party.javahtml
編譯器。 執行javac來編譯源代碼。編譯器會檢查錯誤。java
若是程序沒有錯誤,編譯器產生編譯文件Party.class文件。這個編譯文件由字節碼組成。這個編譯文件與平臺無關linux
啓動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#SECDEBUGwindows
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 提供了包機制,用於區別類名的命名空間。
包的做用以下:瀏覽器
- 模塊化:把功能類似或相關的類或接口組織在同一個包中,方便類的查找和使用。
- 惟一標識:【包名+類名】在同一個程序中必須是惟一的,避免名字衝突。不一樣包的類名能夠相同,但使用時應該指定包名。
- 權限控制:類名前不加任何權限修飾詞時,表明只有這個包的類能夠訪問這個類。
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