第一篇:黑馬程序員視頻總結(jié)
面向?qū)ο螅好嫦驅(qū)ο笫窍鄬?duì)于面向過程而言的。面向過程強(qiáng)調(diào)的是功能,面向?qū)ο髮⒐δ芊庋b進(jìn)對(duì)象,強(qiáng)調(diào)的是具有功能的對(duì)象。
類是對(duì)現(xiàn)實(shí)生活的描述。對(duì)象是一類事物實(shí)實(shí)在在存在的個(gè)體。
堆內(nèi)存和棧內(nèi)存:基本類型的變量和對(duì)象的引用存儲(chǔ)在棧內(nèi)存;用new創(chuàng)建的對(duì)象和數(shù)組存儲(chǔ)在堆內(nèi)存。
封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問方法。原則:將不需要對(duì)外提供的內(nèi)容都隱藏起來,將屬性都隱藏,提供公共方法對(duì)其訪問。好處:提高安全性,便于使用,提高重用性。
什么時(shí)候使用靜態(tài)?成員變量:當(dāng)對(duì)象中有共享數(shù)據(jù)時(shí)。成員函數(shù):函數(shù)內(nèi)部沒有訪問到非靜態(tài)數(shù)據(jù)(對(duì)象的特有數(shù)據(jù))。
幫助文檔制作:/***/@author作者;@version 版本;@param 參數(shù);@return 返回結(jié)果 命令:javadoc-d 文件夾-author-version xxx.java。將生成一系列網(wǎng)頁。
靜態(tài)代碼塊:static{}。用于給類進(jìn)行初始化,只執(zhí)行一次,優(yōu)先于主函數(shù)。
Person p=new Person():
1、找到Person.class加載到內(nèi)存。
2、執(zhí)行static代碼塊。
3、在棧內(nèi)存中開辟main()方法空間,并分配一個(gè) 變量p。
4、在堆內(nèi)存中開辟實(shí)體空間。
5、進(jìn)行屬性的空間分配,并進(jìn)行默認(rèn)初始化。
6、對(duì)空間屬性進(jìn)行顯示初始化。
7、實(shí)體的構(gòu)造代碼初始化。
8、調(diào)用對(duì)應(yīng)的構(gòu)造函數(shù),進(jìn)行構(gòu)造函數(shù)初始化。
9、將實(shí)體空間首地址賦給p。單例:
class Single{
private Single(){} //私有化構(gòu)造函數(shù)。
private static Single s = new Single();//靜態(tài)方法要訪問它,所以也要靜態(tài)化。靜態(tài)方法不能訪問非靜態(tài)的方法和屬性。創(chuàng)建私有并靜態(tài)的本類對(duì)象。
public static Single getInstance(){ //無法通過對(duì)象調(diào)用,只能是靜態(tài)。定義公有并靜態(tài)的方法,返回該對(duì)象。
return s;
}
}
//懶漢式:延遲加載方式。
class Single2{
private Single2(){}
private static Single2 s = null;
public static synchronized Single2 getInstance(){
if(s==null)
s = new Single2();
return s;
}
}
繼承:提高代碼復(fù)用性,并為多態(tài)打下基礎(chǔ)。Java只支持單繼承。多繼承隱患:多個(gè)父類定義相同功能時(shí),子類對(duì)象不確定要運(yùn)行哪一個(gè)。重載:方法名相同,但參數(shù)不同的多個(gè)同名函數(shù);
覆蓋:子類重寫父類的方法,要求方法名和參數(shù)類型完全一樣(參數(shù)不能是子類),返回值和異常比父類小或者相同(即為父類的子類),訪問修飾符比父類大或者相同
隱藏:父類和子類擁有相同名字的屬性或者方法時(shí),父類的同名的屬性或者方法形式上不見了,實(shí)際是還是存在的。
多態(tài):同一操作作用于不同的對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。
內(nèi)部類:內(nèi)部類可以直接訪問外部類的成員,包括私有。外部類必須建立內(nèi)部類對(duì)象才能訪問內(nèi)部類成員。
異常體系:error和exception
==和equals()的區(qū)別:“==”和“!=”比較的是“?!敝械膬?nèi)容(對(duì)象的地址),而equals()比較的是“堆”中的內(nèi)容(對(duì)象的內(nèi)容)。
多線程:建立線程兩種方法:
1、繼承Thread類;
2、實(shí)現(xiàn)Runnable接口。繼承接口避免了單繼承的局限性。
線程對(duì)象.setDaemon(true)設(shè)置守護(hù)線程。線程啟動(dòng)前調(diào)用,當(dāng)正在運(yùn)行的線程只有守護(hù)線程時(shí),java虛擬機(jī)退出。
當(dāng)a線程執(zhí)行b線程的.join()方法時(shí),a會(huì)等待b線程執(zhí)行完才會(huì)執(zhí)行。
線程對(duì)象.setPriority()設(shè)置線程優(yōu)先級(jí)。
StringBuilder不是線程安全的,速度快;StringBuffer線程安全,慢。
泛型是一個(gè)類型安全機(jī)制,用于解決安全問題。
集合:
為方便存儲(chǔ)和操作對(duì)象,出現(xiàn)集合類。數(shù)組可以存儲(chǔ)對(duì)象,但長(zhǎng)度固定,集合長(zhǎng)度可變;數(shù)組可以存儲(chǔ)基本數(shù)據(jù)類型,集合只能存儲(chǔ)對(duì)象。
Collection:List和Set
List:有序,元素可以重復(fù),有索引。
ArrayList,底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組。查找速度快。刪除元素用equals()判斷
LinkList,鏈表,增刪速度快。
Vector。線程同步,數(shù)組,查找速度快。
Set:無序。元素唯一。
HashSet:底層數(shù)據(jù)結(jié)構(gòu)式哈希表。通過hashCode()和equals()方法保持唯一性。如果元素hashCode值相同才會(huì)判斷equals是否為true;
TreeSet:底層是二叉樹??梢詫?duì)元素進(jìn)行排序。按自然順序就是compareTo()。
實(shí)現(xiàn)排序的兩種方法:
1、實(shí)現(xiàn)Comparable接口,覆蓋comapreTo(Object obj)方法。
2、實(shí)現(xiàn)Comparator接口,覆蓋compare(Object,Object)方法。
Map:
Hashtable,底層哈希表,不可以存儲(chǔ)null值或鍵。線程同步。效率低。
HashMap,哈希表,允許使用null值或鍵。不同步,效率高。
TreeMap。底層是二叉樹,線程不同步??梢越o鍵進(jìn)行排序。
獲取Map元素的兩種方法:
1、Set
2、Set
Collections:java集合的工具類,用于操作集合類。
Arrays集合:用于操作數(shù)組的工具類。
1.5新特性:可變參數(shù),int...arr
靜態(tài)導(dǎo)入:import static java.lang.System.*;用于導(dǎo)入靜態(tài)方法;import java.lang.*;用于導(dǎo)入類文件。
System類:getProperties()方法獲得返回系統(tǒng)屬性Properties(Map集合子類)對(duì)象。Runtime類:運(yùn)行時(shí)操作類。單例設(shè)計(jì)模式。
Calendar類:抽象類,用getInstance()獲得對(duì)象。
Math類。
IO流:
常用基類:派生子類用父類名做后綴
字節(jié)流:InputStream,OutputStream
字符流:Reader,Writer
字符流:FileWriter,FileReader,需要flush();
字符流緩沖區(qū):BufferedReader,BufferedWriter;要結(jié)合流才能使用。需要flush(),關(guān)閉緩沖區(qū)就是關(guān)閉緩沖區(qū)的流對(duì)象。
LineNumberReader(FileReader)類,getLineNumber()方法可以獲得行號(hào)
字節(jié)流:FileOutputStream,F(xiàn)ileInputStream。操作多媒體文件。
轉(zhuǎn)換流:InputStreamReader,OutputStreamWriter。屬于字符流的子類。In(System.in),out返回字節(jié)流。
System.setIn(InputStream),System.setOut(PrintStream);改變標(biāo)準(zhǔn)輸入輸出。
File類:
合并流:SequenceInnputStream。用vector的elements()得到Enumeration。
切割文件:循環(huán)里邊創(chuàng)建流、關(guān)閉流。講一個(gè)文件分部分存儲(chǔ)在幾個(gè)文件中。
java.Awt:需要調(diào)用本地系統(tǒng)方法實(shí)現(xiàn)功能。
javax.Swing:完全由java實(shí)現(xiàn),增強(qiáng)移植性。
Component:
1、Container:Window,Panel
布局管理器:
1、FlowLayout,Panel默認(rèn)布局;
2、BorderLayout,F(xiàn)ram默認(rèn)。
TCP和UDP:TCP要經(jīng)過三次握手建立連接,傳輸大量數(shù)據(jù),可靠協(xié)議,效率低。UDP不需要建立連接,不可靠協(xié)議,速度快。
Socket:網(wǎng)絡(luò)服務(wù)的一種機(jī)制,網(wǎng)絡(luò)通信就是Socket間的通信,數(shù)據(jù)在兩個(gè)Socket間通信。TCP:Socket,ServerSocket
UDP:DatagramSocket,DatagramPacket
加強(qiáng):
overload:重載,存在于父類和子類、同類中。只能通過不同參數(shù)樣式重載。
override:重寫,存在于父類和子類之間。方法名、參數(shù)、返回值相同。子類方法不能縮小父類方法訪問權(quán)限。不能拋出更多異常。
可變參數(shù):int...arr
For循環(huán)增強(qiáng):for(int i:int[])
枚舉:讓某個(gè)變量的取值只能為若干個(gè)固定值中的一個(gè)。
反射:在運(yùn)行狀態(tài)能夠知道類的所有屬性和方法,并調(diào)用對(duì)象的任意一個(gè)方法。獲取類信息以及調(diào)用對(duì)象的方法。
類加載器:負(fù)責(zé)加載java類的字節(jié)碼到虛擬機(jī)中。每個(gè)類加載器加載類時(shí)先委托給其上級(jí)加載器,當(dāng)所有祖宗類加載器都沒有加載到類,回到發(fā)起者類加載器時(shí),還沒加載到類,拋出ClassNotFoundException異常。
JavaBean:有set和get方法獲得類屬性的特殊java類。用于傳遞數(shù)據(jù)信息。
內(nèi)?。篒ntroSpector,java語言對(duì)Javabean屬性、事件的一些缺省處理方法。
Beanutils工具包
注解:@Override表示當(dāng)前方法是覆蓋父類的方法。
@Deprecated表示當(dāng)前元素是不贊成使用的。
@SuppressWarnings 表示關(guān)閉一些不當(dāng)?shù)木幾g器警告信息。
Java系統(tǒng)默認(rèn)三個(gè)類加載器:BootStrap,ExtClassLoader,AppClassLoader
創(chuàng)建動(dòng)態(tài)類的實(shí)例對(duì)象:
1、通過實(shí)現(xiàn)的接口告訴要實(shí)現(xiàn)的動(dòng)態(tài)類要實(shí)現(xiàn)哪些方法。
2、產(chǎn)生的類的字節(jié)碼要有一個(gè)關(guān)聯(lián)的類加載器對(duì)象。
3、執(zhí)行代碼的對(duì)象InvocationHandler。
代理:用Proxy類的getProxyClass(classLoader,interface)獲得動(dòng)態(tài)類的字節(jié)碼文件。用反射獲得構(gòu)造器。用構(gòu)造器的newInstance()InvocationHandler接口的對(duì)象做參數(shù)獲得一個(gè)類對(duì)象。InvocationHandler對(duì)象重寫pubic Object invoke(Object proxy,Method method,Object
[] args)方法返回method.invoke(target,args)。
創(chuàng)建動(dòng)態(tài)代理對(duì)象步驟:
1、實(shí)現(xiàn)InvocationHandler 接口創(chuàng)建自己的調(diào)用處理器。重寫invoke方法。
2、用Proxy.newProxyInstance(classLoader,new Class[]{Interface.class},handler}方法獲得代理類實(shí)例。
Bank:
NumberManager類:產(chǎn)生客戶
Private int lastNumber;
Private List
int synchronized generateNewManager():產(chǎn)生新客戶號(hào)碼??蛻艟€程調(diào)用。
int synchronized fetchServiceNumber():取走客戶號(hào)碼。窗口線程調(diào)用。List是共享數(shù)據(jù)。需要互斥。
NumberMachine類:號(hào)碼管理器,采用單例設(shè)計(jì)模式
private NumberManager commonManager;用get()返回對(duì)象。
private NumberManager expressManager;用get()訪問。
private NumberManager vipManager;用get()訪問。
Enum CustomerType COMMON,EXPRESS,VIP;
ServiceWindow類:窗口
private int windowId;窗口號(hào)碼
enum CustomerType type;
public void start(){Executors.newSingleThreadExcutor().execute(new Runnable(){publicvoid run(){}})};根據(jù)type啟動(dòng)相應(yīng)的窗口服務(wù)。
MainClass:main()函數(shù)類
開啟5個(gè)普通窗口。
一個(gè)快速
一個(gè)vip
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(NewRunnable(){重寫run},0,1,TimeUnit.SECONDS)。
第二篇:黑馬程序員自薦信
自薦信_(tái)XXX_151********
姓名:XXX
電話:151********
郵箱:********n2009@126.com
尊敬的老師:
你好,我叫XXX,今年24歲,就讀于XXXX,XXXX專業(yè),將于2012年畢業(yè)。性格稍內(nèi)向,善于交流,看待事情能夠理性認(rèn)識(shí),善于思考,有團(tuán)隊(duì)合作精神。在學(xué)校的這三年多的時(shí)間里,由于專業(yè)需要,對(duì)計(jì)算機(jī)接觸較多。在開設(shè)的課程中學(xué)過C語言、C#、java等編程語言,對(duì)編程語言有一定的了解。在接觸java程序語言和J2ME手機(jī)游戲開發(fā)的學(xué)習(xí)中,對(duì)java產(chǎn)生了強(qiáng)烈的興趣,并對(duì)java學(xué)習(xí)有了一定的基礎(chǔ)。通過“黑馬程序員訓(xùn)練營”的官網(wǎng),我了解到了javaee+3G課程體系所包含的知識(shí)面廣,是經(jīng)過對(duì)java前景分析和現(xiàn)在就業(yè)所需技術(shù)要求而制定的,對(duì)我們這些即將參加就業(yè)、想?yún)⒓觠ava方面工作的人來說是最好的強(qiáng)心劑。課程安排科學(xué)合理,有助于學(xué)員深化對(duì)java的學(xué)習(xí),使學(xué)員掌握到真正前沿的技術(shù)。我深信,“黑馬程序員訓(xùn)練營”的講師是java培訓(xùn)和開發(fā)方面最棒的,這也是我鐘情于“黑馬程序訓(xùn)練營”的原因之一。由于家里生活拮據(jù),不想讓父母操心、給家里增加經(jīng)濟(jì)負(fù)擔(dān),是“黑馬程序員”給了我一個(gè)機(jī)會(huì)、給了我一份保證。
作為一名理科生,我有著很強(qiáng)的求知欲,勤奮,有上進(jìn)心,對(duì)于堅(jiān)信的事情能夠堅(jiān)持到底。在平時(shí)學(xué)習(xí)過程中,善于獨(dú)立思考,遇到問題會(huì)嘗試各種方法去解決(網(wǎng)絡(luò)、老師、同學(xué)都是我的獲得知識(shí)的途徑)。平時(shí)喜歡看一些和自己專業(yè)的書籍,樂于了解一些最前沿的科技和未來的發(fā)展趨勢(shì)。注重的基礎(chǔ)知識(shí)的同時(shí),喜歡探索新知識(shí),在收獲知識(shí)的同時(shí)也收獲著樂趣。學(xué)習(xí)是一輩子的事情,也是一件樂事,就算將來學(xué)校的生活結(jié)束了,學(xué)習(xí)也永遠(yuǎn)不會(huì)落下。
我非常期待能成為“黑馬程序員訓(xùn)練營”的一員,如果這個(gè)愿望能實(shí)現(xiàn),我將以最大的熱情投入到“黑馬程序員訓(xùn)練營”的學(xué)習(xí)中去,用自己的努力去實(shí)現(xiàn)的自身價(jià)值,用自己的成績(jī)回報(bào)“黑馬程序員訓(xùn)練營”。我堅(jiān)定工作后的第一件事就是努力工作,用工資償還培訓(xùn)期間的費(fèi)用,絕不辜負(fù)“黑馬程序員訓(xùn)練營”對(duì)我的信任和老師的培養(yǎng)!請(qǐng)給我一份信任,我將以自己的自己的行動(dòng)去回報(bào)。
擇是我的期望,給我一次機(jī)會(huì)還你一份驚喜。
非常感激你能在百忙之中翻閱我的自薦信。祝你工作順利,事業(yè)蒸蒸日上!
此致
敬禮
自薦人:XXX
2012年02月17號(hào)
第三篇:【黑馬程序員】Java基礎(chǔ)總結(jié)
【黑馬程序員】Java基礎(chǔ)總結(jié)
黑馬程序員的javaEE課程主要分為2個(gè)部分:java基礎(chǔ)+java就業(yè)。今天就簡(jiǎn)單的給大家總結(jié)一下咱們java基礎(chǔ)的知識(shí)。
注:Java采用Unicode符號(hào)集,每個(gè)字符占2個(gè)字節(jié),無論英文還是中文還是其他字符。
標(biāo)識(shí)符
為變量、類或方法起的名稱 以字母,下劃線、或者$符號(hào)開頭 由字母、數(shù)字、下劃線或者$符號(hào)開頭 區(qū)分大小寫,沒有長(zhǎng)度限制,不能使用關(guān)鍵字 盡量取得容易辨識(shí),見名知意
如:identifier、userName、user_Name、_sys_varl、$change
基本數(shù)據(jù)類型
Java定義了8中基本數(shù)據(jù)類型
[AppleScript] 純文本查看 復(fù)制代碼
?
/**
* @author 傳智播客 1 */ 2 布爾值----boolean(只有true和false兩種類型)3 字符-------char(16 位的Unicode字符 用單引號(hào)('')標(biāo)注;'a'表示字母4 a
't' 表示制表符
'u'中?用確切的代替
申明5 并且初始化: char c = 'A'
申明變量 char ch1,ch2)6 整數(shù)--------byte(8位)short(16)int(32)long(64)【以0開7 頭表示八進(jìn)制 ;以0x開始表示16進(jìn)制】 浮點(diǎn)型-----float double
變量
必須在類的內(nèi)部【可以在方法外也可以在方法類】 在方法類定義的變量叫做局部變量,需要顯示的初始化
黑馬程序員合肥中心 編著
成員變量和類變量【對(duì)象】自動(dòng)初始化【數(shù)字初始化為0,對(duì)象初始化為null】
常量
在程序運(yùn)行中,其值保持不變的量
不同數(shù)據(jù)類型間的相互轉(zhuǎn)換【封裝Wrapper類】 Java中類的定義:
[AppleScript] 純文本查看 復(fù)制代碼
? /**
2* @author 傳智播客
3*/ 4 <修飾符> Class <類名>{ <屬性申明>;6
<構(gòu)造器申明>;7
<方法申明>;8 }
成員變量申明:
[AppleScript] 純文本查看 復(fù)制代碼
? <修飾符> <類型> <名稱>;修飾符:
[AppleScript] 純文本查看 復(fù)制代碼
? /** 2
* @author 傳智播客 3
*/ 4 final:修飾常量,常量的值不能被修改【例如 final int CONSTANT = 50;】 5 static:申明靜態(tài)變量[類變量] static int nCount;方法的申明:
[AppleScript] 純文本查看 復(fù)制代碼
? /** 2
* @author 傳智播客
黑馬程序員合肥中心 編著
3*/ 4 <修飾符> <返回值類型> <名稱>[參數(shù)列表]{ 5
語句;6 }
方法參數(shù)的傳遞方式:
1、值傳遞:形參是基本數(shù)據(jù)類型,方法調(diào)用時(shí),實(shí)際參數(shù)把值傳遞給形式參數(shù),形式參數(shù)只是用實(shí)際參數(shù)的值初始化自己的存儲(chǔ)單元內(nèi)容;是兩個(gè)不同的存儲(chǔ)單元,所以方法執(zhí)行中,形式參數(shù)值的改變不會(huì)影響實(shí)際參數(shù)的值。
2、引用傳遞:形參類型是引用數(shù)據(jù)類型【傳遞地址】,方法調(diào)用時(shí),實(shí)際參數(shù)是對(duì)象或者數(shù)組,這時(shí),形式參數(shù)和實(shí)際參數(shù)指向的是同一地址,方法執(zhí)行中,對(duì)形式參數(shù)的操作實(shí)際上是對(duì)實(shí)際參數(shù)的操作,這個(gè)結(jié)果在方法結(jié)束后被保留了下來,所以對(duì)形式參數(shù)的操作實(shí)際上就是對(duì)實(shí)際參數(shù)的操作。構(gòu)造器申明:
[AppleScript] 純文本查看 復(fù)制代碼
?
/** 1 * @author 傳智播客 2 */ 3 <修飾符> <類名>[參數(shù)列表]{ 4
語句;5 } 6 注釋:構(gòu)造器沒有返回值,void也不行;如果有返回值,方法會(huì)被當(dāng)做普通函7 數(shù)執(zhí)行; 構(gòu)造器函數(shù)特點(diǎn):
1、作用:完成對(duì)類對(duì)象的初始化
2、名稱必須和類名相同
3、不能有返回值,不能有 return 語句
4、一般申明為Public類型 構(gòu)造器的使用:
黑馬程序員合肥中心 編著
1、不能現(xiàn)實(shí)的調(diào)用
2、在創(chuàng)建一個(gè)類的對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造器為該對(duì)象初始化
3、構(gòu)造器只能和new關(guān)鍵字一起使用
格式:
類名 對(duì)象名 = new 構(gòu)造函數(shù)名稱(成員變量的初始值);
默認(rèn)構(gòu)造器:
1、每個(gè)類至少有一個(gè)構(gòu)造器
2、如果不編寫構(gòu)造函數(shù),系統(tǒng)自動(dòng)添加默認(rèn)的構(gòu)造函數(shù)【默認(rèn)構(gòu)造函數(shù)不帶參數(shù),默認(rèn)構(gòu)造函數(shù)函數(shù)體為空】
3、不必編寫構(gòu)造函數(shù)就能使用new XXX()
創(chuàng)建實(shí)例
對(duì)象創(chuàng)建格式:
<對(duì)象名> = new <類名>(實(shí)參)
對(duì)象的清除:
對(duì)象為null時(shí),Java自動(dòng)調(diào)用垃圾回收機(jī)制清除對(duì)象,釋放對(duì)象占用的內(nèi)存空間 手動(dòng)編寫finalize()方法撤銷對(duì)象--不提倡
對(duì)象的內(nèi)存模型:
棧內(nèi)存:方法中定義的變量(基本類型和引用類型)。超過變量的作用域,自動(dòng)釋放變量的內(nèi)存
堆內(nèi)存:new 創(chuàng)建的對(duì)象(包括數(shù)組),由系統(tǒng)自動(dòng)回收
類的繼承【僅支持單繼承】
[AppleScript] 純文本查看 復(fù)制代碼
? /**
2* @author 傳智播客
3*/ 4 <修飾符> class <名稱> extends <父類>{ 申明;6 }
黑馬程序員合肥中心 編著
子類可以繼承父類中非private的方法和屬性;子類可以添加新的屬性和方法;【程序代碼重,減少冗余】 方法的重載(overload):
1、一個(gè)類中有多個(gè)同名的方法
2、條件:參數(shù)的個(gè)數(shù)不同;參數(shù)的類型不同
3、如果兩個(gè)方法只有返回值不一樣,不是重載,會(huì)報(bào)錯(cuò)
方法的覆蓋(override):
1、子類可以修改父類繼承過來的行為
2、子類可以創(chuàng)建和父類的方法不同功能的方法,但是下面必須相同:【方法名、返回值、參數(shù)列表】
super關(guān)鍵字:
往往在覆蓋方法時(shí),真正不目的不是代替現(xiàn)有的行為,而是在某些方面擴(kuò)展那些行為; 類中使用super關(guān)鍵字指向父類的成員 包括數(shù)據(jù)和方法; 3中使用方法:
super.方法名([參數(shù)表]);----調(diào)用父類的方法 super.成員變量名;----訪問父類的成員變量 super([參數(shù)表]);----調(diào)用父類的構(gòu)造函數(shù)
構(gòu)造函數(shù)不能被繼承:
子類從父類繼承所有的方法和變量 子類不能繼承父類的構(gòu)造函數(shù)
有兩種方式可以獲取構(gòu)造函數(shù):
1、使用默認(rèn)的構(gòu)造函數(shù)
2、編寫1個(gè)或者多個(gè)構(gòu)造函數(shù)
調(diào)用父類的構(gòu)造函數(shù):
要調(diào)用父類的構(gòu)造函數(shù),必須在子類構(gòu)造函數(shù)的第一行使用super關(guān)鍵字
黑馬程序員合肥中心 編著
要調(diào)用特定的父類的構(gòu)造函數(shù),必須為super提供參數(shù)
如果沒有this或者super調(diào)用,編譯器會(huì)插入一個(gè)對(duì)父類無參數(shù)構(gòu)造函數(shù)的隱式調(diào)用: super();
變量的多態(tài):
類型為X的參考變量,指向的對(duì)象類型既可以是X,也可以是X的子類; 如: Employee x = new Manager();Employee y = new Employee();
實(shí)例方法能夠被覆蓋,靜態(tài)(static)方法不能被覆蓋 原因:
靜態(tài)方法在編譯時(shí)候,根據(jù)調(diào)用該方法的類或者對(duì)象所屬的類決定 實(shí)例方法在運(yùn)行時(shí)根據(jù)對(duì)象所屬的類決定
如:Super s = new Sub();編譯時(shí)候S是Super類的對(duì)象,運(yùn)行時(shí) S 指向Sub類的對(duì)象;
instanceof操作符:
可以根據(jù)對(duì)象所屬的類進(jìn)行不同的處理 抽象類:只能被繼承,不能被實(shí)例化的類 定義格式:
[AppleScript] 純文本查看 復(fù)制代碼
? /**
2* @author 傳智播客
3*/ 4 abstract class 類名{ abstract 返回值類型
方法名[參數(shù)列表];6
...7 } 說明:
抽象類中可以包含抽象方法和非抽象方法,也可以不包含抽象方法和非抽象方法;只要有一個(gè)抽象方法,就屬于抽象類;
[AppleScript] 純文本查看 復(fù)制代碼
黑馬程序員合肥中心 編著
?
01 /** 02
* @author 傳智播客 03
*/ 04 abstract class Animal{ 05
public abstract void eat();06
} 07
class Dog extends Animal{ 08
public void eat(){System.out.println(“狗吃骨頭”);} 09
} 10class Cat extends Animal{ 12
public void eat(){System.out.println(“貓吃老鼠”);} 13 } 115 class Wolf extends Animal{ 16
public void eat(){System.out.println(“狼吃羊”);} 17 } 說明:不能創(chuàng)建抽象類的對(duì)象,即不能被實(shí)例化;
使用時(shí),必須用起創(chuàng)建子類
子類可以定義自己的成員變量和方法,但是必須將父類的所有抽象方法代碼寫完;
如果子類只是實(shí)現(xiàn)了部分抽象的方法,那么,該類仍然是抽象類; 最終類:
final 類不能被子類化;如Java.lang.String 是final 類,這樣做是基于安全的考慮; 標(biāo)記為final的方法不能被覆蓋;處于安全的考慮,如果方法的實(shí)現(xiàn)不應(yīng)改變,而且對(duì)對(duì)象的一致性要求比較高,則可以創(chuàng)建一個(gè)final方法。
標(biāo)記為final的變量代表常量,只能一次賦值; 接口:
使用interface關(guān)鍵字申明,可以支持多重繼承 接口中只能包含: 抽象方法;
黑馬程序員合肥中心 編著
常量(默認(rèn)為 public static final)【用得較少】 說明:
1、接口本身只是提供定義,使用時(shí),必須通過類實(shí)現(xiàn)接口(implements)實(shí)現(xiàn)接口時(shí),必須實(shí)現(xiàn)所有的方法。否則該類還是抽象類(abstract class)。
2、一個(gè)雷尅實(shí)現(xiàn)多個(gè)接口。
3、擴(kuò)展子句(extends)必須在實(shí)現(xiàn)子句(implements)之前
包:
package <頂層包名>[.<子包名>]*;
如:package shipping.domain;說明:
1、如果有包申明,必須在源文件開始處申明。他的前面只能有空白和注釋,不能有其他語句;
2、每個(gè)源文件只能有一個(gè)包申明;
3、如果沒有包申明,則該類屬于“默認(rèn)”包(沒有名稱的包)
4、包的名稱有層次,且用.分開;
import語句: 基本語法:
import <包名>[.<子包名>].<類名> 或者import <包名>[.<子包名>].*;
其實(shí)在學(xué)習(xí)java過程中基礎(chǔ)還是比較容易,如果大家想學(xué)習(xí)java基礎(chǔ)的知識(shí),歡迎大家可以去傳智播客官網(wǎng)http://004km.cn/去了解java基礎(chǔ)知識(shí)!
黑馬程序員合肥中心 編著
第四篇:黑馬程序員:Java集合簡(jiǎn)單總結(jié)
黑馬程序員:Java集合簡(jiǎn)單總結(jié)
在Java語言中,學(xué)好集合是非常重要的,下面簡(jiǎn)單的對(duì)集合進(jìn)行總結(jié),以便大家學(xué)習(xí),有
問題再相互交流。
集合框架圖
在集合框架圖中可以看出,Collection接口中主要有兩個(gè)子接口,分別是List和Set。List集合的特點(diǎn)是元素有序、包含重復(fù)元素,Set集合的特點(diǎn)是元素?zé)o序、不包含重復(fù)元素。Map集合中存儲(chǔ)的是鍵值映射關(guān)系,元素都是成對(duì)出現(xiàn)的。Map接口的主要子接口有HashMap和TreeMap。
總結(jié)ist有順序有重復(fù)沒有排序,set無重復(fù)有排序,map的key也和set一樣。
List接口
List : 特點(diǎn)是元素有序、可以包含重復(fù)元素。它有兩個(gè)實(shí)現(xiàn)類分別是:ArrayList和LinkedList。
ArrayList : 內(nèi)部維護(hù)一個(gè)數(shù)組結(jié)構(gòu),允許對(duì)元素進(jìn)行快速隨機(jī)訪問,但是向List中間插入與移除元素的速度很慢。
LinkedList : 內(nèi)部維護(hù)了一個(gè)雙向鏈表結(jié)構(gòu),即通過節(jié)點(diǎn)之間彼此連接來實(shí)現(xiàn)的,每一個(gè)節(jié)點(diǎn)都包含前一個(gè)節(jié)點(diǎn)和后一個(gè)節(jié)點(diǎn)的引用。當(dāng)一個(gè)新節(jié)點(diǎn)插入時(shí),只需要修改其中保持先后關(guān)系的節(jié)點(diǎn)引用即可,這樣的存儲(chǔ)結(jié)構(gòu)保證了LinkedList集合在增刪元素時(shí)效率非常高。
Set接口
Set具有與Collection完全一樣的接口,因此沒有任何額外的功能,不像前面的List。實(shí)際上Set就是Collection只是行為不同,也就是說Set集合并沒有對(duì)Collection接口進(jìn)行擴(kuò)充,只是比collection接口要求更加嚴(yán)了。
Set : 存入Set的每個(gè)元素都必須是唯一的,因?yàn)镾et不保存重復(fù)元素。加入Set的元素必須定義equals()方法以確保對(duì)象的唯一性。
HashSet : 為快速查找設(shè)計(jì)的Set。存入HashSet的對(duì)象必須定義hashCode()。
TreeSet : 保存有序的Set, 底層為樹結(jié)構(gòu)。使用它可以從Set中提取有序的序列。
LinkedHashSet : 具有HashSet的查詢速度,且內(nèi)部使用鏈表維護(hù)元素的順序。于是在使用迭代器遍歷Set時(shí),結(jié)果會(huì)按元素插入的次序顯示。
Map接口
Map用于保存具有映射關(guān)系的數(shù)據(jù),因此Map集合里存儲(chǔ)兩組值,一組用于保存Map里的key,另一組用于保存Map中的value,key和value都可以是任意引用類型數(shù)據(jù),其中,作為key的值是不允許重復(fù)的,而value中可以出現(xiàn)重復(fù)。Map : 維護(hù)“鍵值對(duì)”的關(guān)聯(lián)性,使你可以通過“鍵”查找“值”。
HashMap就是使用對(duì)象的hashCode()進(jìn)行快速查詢的。此方法能夠顯著提高性能。HashMap集合是基于哈希表的Map接口實(shí)現(xiàn),并允許使用null鍵null值,但必須保證鍵的唯一性。
LinkedHashMap : 類似于HashMap,但是迭代遍歷它時(shí),取得“鍵值對(duì)”的順序是其插入次序。而在迭代訪問時(shí)發(fā)而更快,因?yàn)樗褂面湵砭S護(hù)內(nèi)部次序。
TreeMap : 基于紅黑樹數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。查看“鍵”或“鍵值對(duì)”時(shí),它們會(huì)被排序(順序由Comparabel或Comparator決定)。TreeMap的特點(diǎn)在于,你得到的結(jié)果是經(jīng)過排序的。
Hashtable線程安全,但是存取速度很慢,且不允許存放null鍵null值,目前基本上被hashMap類所取代。Hashtable有一個(gè)重要的子類Properties。
Properties:java.util.Properties;key和value都是String類型,用來讀配置文件。繼承自Hashtable,比 Hashtable 更嚴(yán)格 屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。常用方法 String getProperty(String?key)和 setProperty(String key,String value);
用法:我在D盤下建了一個(gè)名為 AA.dat 的文件,文件的內(nèi)容為:
name=ch
password=12345
執(zhí)行以下程序,輸出 ch,可見用 Properties 可以很方便的解析配置文件 Properties p = new Properties();p.load(new FileInputStream(“D:AA.dat”));System.out.println(p.getProperty(“name”))
第五篇:黑馬程序員自薦信
黑馬程序員自薦信
在當(dāng)今社會(huì)中,需要使用自薦信的場(chǎng)合越來越多,自薦信可以幫助我們更好地提出請(qǐng)求。你還在為寫自薦信而苦惱嗎?以下是小編為大家整理的黑馬程序員自薦信,僅供參考,希望能夠幫助到大家。
尊敬的老師:
您好!
在閱讀過幾十份,甚至上百份的自薦信之后,或許,您已經(jīng)有了些許疲倦與困意,但還是感謝您打開了我的這封自薦信。對(duì)于您來說,或許只是打開了一封信,而對(duì)于我來說,您為我開啟了一扇窗,一扇可以看見未來,追逐夢(mèng)想的的窗戶。
我是趙玉杰,現(xiàn)在就讀于沈陽建筑大學(xué),理學(xué)院,信息與計(jì)算科學(xué)專業(yè),目前大三。說起來,我也和黑馬有點(diǎn)緣分,由于專業(yè)的.相近性,我在學(xué)校學(xué)習(xí)了c語言,c++語言,java語言,數(shù)據(jù)庫(sql),數(shù)據(jù)結(jié)構(gòu)(c語言版),計(jì)算機(jī)網(wǎng)絡(luò),操作系統(tǒng)等相關(guān)科目,算是有一點(diǎn)基礎(chǔ),但也僅僅只能是基礎(chǔ)。這個(gè)社會(huì)需要的不是基礎(chǔ),而是真才實(shí)干。
力,獲得足夠的項(xiàng)目經(jīng)驗(yàn),掌握得心應(yīng)手的實(shí)際操作……就是讓我從眾多畢業(yè)生里面脫穎而出的最佳選擇。為了這一目標(biāo),我發(fā)現(xiàn)了黑馬,一匹讓我很驚訝的黑馬??!
“黑馬程序員”成立于20xx年,20xx年正式上線運(yùn)營。在短短的3年里,在it培訓(xùn)行業(yè),“黑馬程序員”不負(fù)眾望的成為了一匹業(yè)界高度認(rèn)可的黑馬。在短短的四年時(shí)間里,“黑馬程序員”為社會(huì)塑造了一大批it相關(guān)行業(yè)的精英。從黑馬畢業(yè)的學(xué)員,得到了公司與社會(huì)的認(rèn)可,實(shí)現(xiàn)了自己的社會(huì)價(jià)值,人生目標(biāo)。在中關(guān)村軟件園與csdn的大力支持下,在傳智播客的教學(xué)實(shí)施下,“黑馬程序員”已經(jīng)成為了程序員的一種標(biāo)榜,而能成為“黑馬程序員”的一員,是每一個(gè)程序員的愿望,更是一種榮耀。而我更是殷切的希望能夠成為黑馬的一員,讓我脫穎而出,讓我底氣十足。
關(guān)于黑馬的“0學(xué)費(fèi)入學(xué)”教學(xué)理念,也是特別吸引我的一大亮點(diǎn)。據(jù)我了解,每一位黑馬學(xué)員都必須通過長(zhǎng)達(dá)2個(gè)月的面試流程,在技術(shù),自學(xué)能力,性格,壓力,品德等等全方位測(cè)試。可以說,黑馬程序員訓(xùn)練營的所有學(xué)員都是精挑細(xì)選出來的。我很期待能與這樣的精英一起努力。畢業(yè)之后,“工資低于4k,不收任何費(fèi)用,”只有真正有實(shí)力,有責(zé)任,有擔(dān)當(dāng)?shù)暮隈R才能說的出口。而從黑馬走出的每一個(gè)學(xué)員,都有能力,有責(zé)任,有義務(wù)履行我們當(dāng)初的還款以及相關(guān)協(xié)議,關(guān)于這一點(diǎn),我堅(jiān)信不疑。