前言:
在我們學習Java的過程中,把握其中的基礎概念對我們的學習無論是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基礎,所以有必要對其中的基礎概念做以回納,以便大家在以後的學習過程中更好的懂得Java的精髓,在此我總結了30條基礎的概念。
Java概述:
目前Java重要利用於中間件的開發(middleware)---處理客戶機於服務器之間的通信技巧,早期的實踐證實,Java不合適pc利用程序的開發,其發展逐漸變成在開發手持設備,互聯網信息站,及車載盤算機的開發.Java於其他語言所不同的是程序運行時供給了平台的獨立性,稱允許以在Windows,solaris,Linux其他把持系統上應用完整雷同的代碼.Java的語法與C++語法類似,C++/C程序員很輕易把握,而且Java是完整的徹底的面向對象的,其中提出了很好的GC(Garbage Collector)垃圾處理機制,防止內存溢出。
Java的***為我們提出了Java語言的11個要害特征。
(1)Easy:Java的語法比C++的相對簡略,另一個方面就是Java能使軟件在很小的機器上運行,基礎說明其和類庫的支撐的大小約為40kb,增加基礎的尺度庫和線程支撐的內存需要增加125kb。
(2)散布式:Java帶有很強盛的TCP/IP協議族的例程庫,Java利用程序能夠通過URL來穿過網絡來拜訪遠程對象,由於servlet機制的呈現,使Java編程非常的高效,現在許多的大的web server都支撐servlet。
(3)OO:面向對象設計是把重點放在對象及對象的接口上的一個編程技巧.其面向對象和C++有許多不同,在與多重持續的處理及Java的原類模型。
(4)硬朗特征:Java采用了一個安全指針模型,能減小重寫內存和數據崩潰的可能型。
(5)安全:Java用來設計網路和散布系統,這帶來了新的安全標題,Java可以用來構建防病毒和防攻擊的System.事實證實Java在防毒這一方面做的比擬好。
(6)中立系統結構:Java編譯其天生系統結構中立的目標文件格局可以在許多處理器上履行,編譯器產生的指令字節碼(Javabytecode)實現此特征,此字節碼可以在任何機器上說明履行。
(7)可移植性:Java中對基礎數據結構類型的大小和算法都有嚴格的規定所以可移植性很好。
(8)多線程:Java處理多線程的過程很簡略,Java把多線程實現交給底下把持系統或線程程序完成.所以多線程是Java作為服務器端開發語言的風行原因之一。
(9)Applet和servlet:能夠在網頁上履行的程序叫Applet,需要支撐Java的浏覽器許多,而applet支撐動態的網頁,這是許多其他語言所不能做到的。
基礎概念:
1.OOP中唯一關系的是對象的接口是什麼,就像盤算機的銷售商她不管電源內部結構是怎樣的,他只關系能否給你供給電就行了,也就是只要知道can or not而不是how and why.所有的程序是由必定的屬性和行動對象組成的,不同的對象的拜訪通過函數調用來完成,對象間所有的交換都是通過方法調用,通過對封裝對象數據,很大限度上提高復用率。
2.OOP中最重要的思想是類,類是模板是藍圖,從類中結構一個對象,即創立了這個類的一個實例(instance)。
3.封裝:就是把數據和行動聯合起在一個包中)並對對象應用者隱躲數據的實現過程,一個對象中的數據叫他的實例字段(instance fIEld)。
4.通過擴大一個類來獲得一個新類叫持續(inheritance),而所有的類都是由Object根超類擴大而得,根超類下文會做先容。
5.對象的3個重要特征
behavior---闡明這個對象能做什麼.
state---當對象施加方法時對象的反應.
identity---與其他類似行動對象的區分標記.
每個對象有唯一的indentity 而這3者之間相互影響.
6.類之間的關系:
use-a :依附關系
has-a :聚合關系
is-a :持續關系--例:A類持續了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在於共性中)
7.結構對象應用結構器:結構器的提出,結構器是一種特別的方法,結構對象並對其初始化。
例:Data類的結構器叫Data
new Data()---結構一個新對象,且初始化當前時間.
Data happyday=new Data()---把一個對象賦值給一個變量happyday,從而使該對象能夠多次應用,此處要聲明的使變量與對象變量二者是不同的.new返回的值是一個引用。
結構器特點:結構器可以有0個,一個或多個參數
結構器和類有雷同的名字
一個類可以有多個結構器
結構器沒有返回值
結構器總是和new運算符一起應用.
8.重載:當多個方法具有雷同的名字而含有不同的參數時,便產生重載.編譯器必需挑選出調用哪個方法。
9.包(package)Java答應把一個或多個類收集在一起成為一組,稱作包,以便於組織任務,尺度Java庫分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和Javax包層次內。
10.持續思想:答應在已經存在的類的基礎上構建新的類,當你持續一個已經存在的類時,那麼你就復用了這個類的方法和字段,同時你可以在新類中添加新的方法和字段。
11.擴大類:擴大類充分體現了is-a的持續關系. 情勢為:class (子類) extends (基類)。
12.多態:在java中,對象變量是多態的.而Java中不支撐多重持續。
13.動態綁定:調用對象方法的機制。
(1)編譯器檢查對象聲明的類型和方法名。
(2)編譯器檢查方法調用的參數類型。
(3)靜態綁定:若方法類型為priavte static final 編譯器會准確知道該調用哪個方法。
(4)當程序運行並且應用動態綁定來調用一個方法時,那麼虛擬機必需調用x所指向的對象的實際類型相匹配的方法版本。
(5)動態綁定:是很重要的特征,它能使程序變得可擴大而不需要重編譯已存代碼。
14.final類:為防止他人從你的類上派生新類,此類是不可擴大的。
15.動態調用比靜態調用花費的時間要長。
16.抽象類:規定一個或多個抽象方法的類本身必需定義為abstract。
例: public abstract string getDescripition
17.Java中的每一個類都是從Object類擴大而來的。
18.object類中的equal和toString方法。
equal用於測試一個對象是否同另一個對象相等。
toString返回一個代表該對象的字符串,幾乎每一個類都會重載該方法,以便返回當前狀態的准確表現.
(toString 方法是一個很重要的方法)
19.通用編程:任何類類型的所有值都可以同object類性的變量來代替。
20.數組列表:ArrayList動態數組列表,是一個類庫,定義在Java.uitl包中,可主動調節數組的大小。
21.class類 object類中的getclass方法返回ckass類型的一個實例,程序啟動時包含在main方法的類會被加載,虛擬機要加載他需要的所有類,每一個加載的類都要加載它需要的類。
22.class類為編寫可動態把持Java代碼的程序供給了強盛的功效反射,這項功效為JavaBeans特別有用,應用反射Java能支撐VB程序員習慣應用的工具。
能夠分析類才能的程序叫反射器,Java中供給此功效的包叫Java.lang.reflect反射機制十分強盛.
1.在運行時分析類的才能。
2.在運行時探察類的對象。
3.實現通用數組把持代碼。
4.供給方法對象。
而此機制重要針對是工具者而不是利用及程序。
反射機制中的最重要的部分是答應你檢查類的結構.用到的API有:
Java.lang.reflect.FIEld 返回字段.
Java.reflect.Method 返回方法.
Java.lang.reflect.Constructor 返回參數.
方法指針:Java沒有方法指針,把一個方法的地址傳給另一個方法,可以在後面調用它,而接口是更好的解決計劃。
23.接口(Inte***ce)闡明類該做什麼而不指定如何往做,一個類可以實現一個或多個inte***ce。
24.接口不是一個類,而是對符合接口請求的類的一套規范。
若實現一個接口需要2個步驟:
1.聲明類需要實現的指定接口。
2.供給接口中的所有方法的定義。
聲明一個類實現一個接口需要應用implements 要害字
class actionB implements Comparable 其actionb需要供給CompareTo方法,接口不是類,不能用new實例化一個接口.
25.一個類只有一個超類,但一個類能實現多個接口。Java中的一個重要接口:Cloneable
26.接口和回調.編程一個常用的模式是回調模式,在這種模式中你可以指定當一個特定時間產生時回調對象上的方法。
例:ActionListener 接口監聽.
類似的API有:Java.swing.JOptionPane
Java.swing.Timer
Java.awt.Tookit
27.對象clone:clone方法是object一個保護方法,這意味著你的代碼不能簡略的調用它。
28.內部類:一個內部類的定義是定義在另一個內部的類。
原因是:
1.一個內部類的對象能夠拜訪創立它的對象的實現,包含私有數據。
2.對於同一個包中的其他類來說,內部類能夠隱躲起來。
3.匿名內部類可以很方便的定義回調。
4.應用內部類可以非常方便的編寫事件驅動程序。
29.代理類(proxy):
1.指定接口請求所有代碼
2.object類定義的所有的方法(toString equals)
30.數據類型:Java是誇張類型的語言,每個變量都必需先聲名它都類型,Java中總共有8個基礎類型.4種是整型,2種是浮點型,一種是字符型,被用於Unicode編碼中的字符,布爾型。