1. 程式人生 > >從頭梳理 Java 的誕生,語言特點-閱讀筆記

從頭梳理 Java 的誕生,語言特點-閱讀筆記

JAVA: Java 是一種可以撰寫 跨平臺-應用軟體-的面向物件的程式設計語言,
它是有 sun Microsystems 公司與 1995年推出的 Java程式設計語言和Java平臺(JavaSE javaEE JavaME)

Java的 前身 是Oak ,oak開發歷時18個月,目標定位事作為家用電器等小型系統的程式語言,用於家電的控制和通訊問題,後來發現市場需求不高,就準備放棄。但是在放棄的時候發現 網際網路應用發展給該系統提供了新的發展契機。Sun 看到了OAK 在計算機網路上的廣闊應用前景,於是改造了oak ,以java命

很枯燥的概念,但是我覺得我們從事Android開發,應該對自己所應用的語言有一點基本的瞭解。

Java語言的特點 簡單性,平臺無關性,面向物件性,分散式,安全性,支援多執行緒,健壯性,動態性。

簡單性:

 java的簡單性是於C++相比較。Java不在支援運算子的過載,多繼承 及 廣泛的自動強制等 容易混餚和極少使用的特性。(把一些不比較的特性給去除了),增加了記憶體空間自動垃圾收集的功能,複雜性的省略和使用功能的增加使程式開發變得簡單而又可靠。

平臺無關性:

平臺無關性 是Java最吸引人的地方,Java是一種網路語音,而網路上充滿了各種不同型別的機器和作業系統。Java採用瞭解釋執行而不是編譯執行的執行環境,
首先——程式碼編譯成位元組碼 ——然後裝載與校驗——在解釋成不同的機器碼來執行。即 JAVA虛擬機器 的思想。遮蔽了具體的平臺環境的要求。

面向物件:

面向物件:封裝 、繼承 、多型 等特性優點。Java在保留這些優點的基礎上,又具有動態程式設計的特性。更能發揮出面向物件的優勢。
剛開始學Java的時候,面向物件 的概念被反覆強調。如今入行三年之後,回頭 然後解釋不清楚 面向物件的概念。

(面相物件 註釋)面向物件三大基本特徵,五大基本原則

封裝特性:也就是把客觀的事物封裝成抽象的類,並且類可以把自己的資料或方法只讓可信的類或者物件進行操作,對不可信的類進行隱藏。

繼承特性:就是讓某個型別的物件獲得另一個型別的屬性的方法。繼承是指這樣的一種能力,它可以使用現有類的所用功能,並可以在無需重新編寫這些類的情況下,對原有類的方法進行擴充套件。通過繼承建立的類被稱為 子類 派生類,被繼承的類被稱為 基類、父類 超類、
繼承分為兩類,實現繼承 與 介面繼承
實現繼承是指直接使用基類的屬性和方法,而無需額外程式設計。
介面繼承是指僅僅使用 屬性,和方法的名稱,子類必須提供實現能力。(介面繼承就為了達到讓子類必須執行某些操作的功能)

多型特性:開始這個是最容易搞混的地方,所謂多型就是指一個類例項的相同方法在不同情形有不同的表現。多型機制具有不同內部結構的物件,可以共同使用相同外部介面,這意味著 針對不同物件的具體操作不同,但可以通過一個公共類,通過相同的方式予以呼叫。
例子:貓、狗。都有 叫 和 吃的 方法行為。但是相同的方法行為所執行的具體操作不同,如:貓吃的貓糧,狗吃的是狗糧。但是她們同屬於 寵物 這個基類。寵物的例項,具體 吃 ,和叫的方法。那麼呼叫貓,或狗 吃的方法。可以通過呼叫基類 吃 的方式呼叫。

面相物件六大基本原則:參考[這裡寫連結內容](http://blog.csdn.net/qq_30974087/article/details/54601571)

分散式:

Java建立在擴充套件 TCP/IP網路平臺上,庫函式提供了用HTTP和FTP 協議傳輸和接受資訊的方法,Java應用程式通過URL物件訪問網路資源。

安全性

Java有簡歷在公共金鑰技術基礎上的確認技術,提供的足夠的安全保證。

支援多執行緒

多執行緒機制使應用程式能能同時進行不同的操作,處理不同的時間,Java有一套成熟的同步語言(稍後會總結Java多執行緒技術),保證對共享資料的正確操作。

健壯性

java是強型別語言,編譯器和類載入器保證所有方法呼叫的正確性。
java沒有指標,不能引用記憶體指標,避免了記憶體或陣列越界訪問。(會不會很疑惑,程式開發中的空指標是怎麼回事)註釋:1、確定一點,java也可以說有指標,但是在java中被稱為 引用  就是記憶體地址的值拿到該引用就相當於得到了該記憶體地址存入的物件。2、java可以使用指標(引用)。但是不能修改指標,同樣拿C++對比:pointer++在java 中是錯誤的(Integer,Float除外,因為java擁有自動封箱解箱特性)例如:java可以做飛機到達指定位置,但是不能自己操作飛機(為了安全)。C++可以自己操作飛機。

註釋 封箱 解箱:基本資料型別包裝到物件中作為物件來使用,這是封箱,這個封箱過程是java自動實現,也就叫做自動封箱。
int型別可以作為integer型別使用,這叫做自動封箱
integer型別可以作為int型別使用,這叫做自動拆箱(前文中的 integer,Float除外,就是java可以自動拆箱。改變為 int、float型別。而int、float型別的操作符 ++是自增操作符。程式不會報錯)

java進行自動記憶體回收,程式設計人員無法意外釋放記憶體,不需要判斷應該在何處釋放記憶體。(其實開發中,可以 使用 obj = null 或者 呼叫System.gc() 來建議記憶體回收器開始工作)稍後會加入記憶體回收機制詳解
java在編譯和執行時,都要對可能出現的問題進行檢查。

下面可能是這篇文章唯一的幹活:

java程式的工作過程:

java語言包括三種核心機制:Java虛擬機器、垃圾回收機制和程式碼安全監測
java程式開發過程中大致分為以下三個階段:
    1、編寫java原始檔,將編譯好的源程式以副檔名“.java”儲存起來,即儲存成*.java檔案
    2、編譯java源程式,使用java編譯器編譯成“.java”源程式,從而得到位元組碼檔案 *.class .
    3、執行java程式。

一個APK,從安裝到啟動,程式做什麼操作

在Android系統啟動的過程中,系統會通過PackageManagerService來掃描特定的目錄,以便可以對儲存在裡面的apk進行安裝。PackageManagerService主要做兩件事情:
- 解析這個apk的配置檔案AndroidManifest.xml以便獲得它的安裝資訊
- 為這個apk分配Linux使用者ID和使用者組ID以便apk在系統中可以獲取到合適的執行許可權