2018-11-22Java基礎(chǔ)知識(shí)點(diǎn)總結(jié)

認(rèn)識(shí)java

1.java是一種編程語(yǔ)言珍逸,機(jī)器語(yǔ)言:010101010玛痊;匯編語(yǔ)言:通過(guò)大量的英文單詞代表的計(jì)算機(jī)指令add 1 1;高級(jí)計(jì)算機(jī)語(yǔ)言:C/C++/C#/Java/Python/JavaScript/PHP
2.計(jì)算機(jī)由硬件(CPU传趾、內(nèi)存晤郑、硬盤等)和軟件(操作系統(tǒng)永脓、應(yīng)用軟件)組成袍辞。軟件就是按照一定順序組織起來(lái)的計(jì)算機(jī)指令與數(shù)據(jù)的集合。
系統(tǒng)軟件:使計(jì)算機(jī)硬件具備基本功能常摧;應(yīng)用軟件:必須在系統(tǒng)軟件的基礎(chǔ)上才能使用搅吁。
3.1999年分為J2SE 、J2EE落午、J2ME谎懦,其中04年1.5版本更名為JavaSE5.0,05年JAVA正式更名為JavaEE(企業(yè)版)溃斋、JavaSE(標(biāo)準(zhǔn)版)党瓮、JavaME(小型版)
4.JDK(java developement kit)--java開(kāi)發(fā)工具包:是java程序運(yùn)行的基礎(chǔ)環(huán)境,包括JRE盐类、一堆java工具寞奸、java基礎(chǔ)的類庫(kù)(rt.jar)
5.系統(tǒng)環(huán)境變量:在操作系統(tǒng)中定義的的變量,可供操作系統(tǒng)上的所有應(yīng)用程序使用
6.IDE(integrated developement environment)集成開(kāi)發(fā)環(huán)境:用于提供程序開(kāi)發(fā)環(huán)境的應(yīng)用程序在跳,一般包括代碼編輯器枪萄、編譯器、調(diào)試器和圖形用戶界面等
常用IDE:eclipse猫妙、myeclipse瓷翻、intellij idea、netbeans ide割坠。
7.新建項(xiàng)目->定義類(包名全小寫齐帚,類名如FirstTest)->編寫類源程序(記得保存)
8.注釋:?jiǎn)涡校╟trl+/)、多行彼哼、文檔注釋(ctrl+shift+/)
9.java程序結(jié)構(gòu):
代碼編寫:第一層定義類对妄,它是最基本的組件,包含程序所需的所有屬性和方法敢朱,注意類名和文件名一致剪菱;
第二層定義方法:主方法(public static void main(String[] args){ 多行程序代碼 })大括號(hào)包含多行代碼;
第三層是執(zhí)行代碼:每行代碼必須用英文的分號(hào)結(jié)尾
10.記事本開(kāi)發(fā)java程序:編寫java源程序(后綴名為.java)->編譯源代碼(javac hellowolrd.java后生成.class文件)->運(yùn)行程序(java hellowolrd)->在dos窗口生成結(jié)果
11.java程序運(yùn)行原理:使用虛擬機(jī)實(shí)現(xiàn)跨平臺(tái)拴签,java編譯器把源程序編譯為一種與體系結(jié)構(gòu)無(wú)關(guān)的中間文件格式奕短;
半編譯半解釋:源程序先被成功編譯成字節(jié)碼(出現(xiàn)錯(cuò)誤稱為編譯錯(cuò)誤)睛蛛,java解釋器(運(yùn)行系統(tǒng))能直接對(duì)java字節(jié)碼進(jìn)行解釋執(zhí)行(出錯(cuò)車稱為運(yùn)行時(shí)錯(cuò)誤)。

變量和運(yùn)算符

1.關(guān)鍵字:是對(duì)編譯器有特殊意義的單詞,顯示為紅色酿炸,不同關(guān)鍵字來(lái)表示不同的數(shù)據(jù)類型或者結(jié)構(gòu);
保留字:goto犬钢,目前沒(méi)有使用拨齐,以后是否使用未定;
標(biāo)識(shí)符:包盛嘿、類洛巢、方法、參數(shù)次兆、變量統(tǒng)稱為標(biāo)識(shí)符稿茉,
命名規(guī)則:必須字母、下劃線芥炭、美元符號(hào)開(kāi)頭漓库,剩下的可以包括數(shù)字;
命名規(guī)范:類名使用pascal規(guī)則如:StudentDemo园蝠;變量名和方法名使用camel規(guī)則如:avgValue渺蒿;包名全部小寫如com.neusoft,常量名全部大寫如:MAX_VALUE彪薛,public static final int PI=3.1415926;
2.常量:在程序中持續(xù)不變的值茂装,必須指明數(shù)據(jù)類型
3.變量:指程序運(yùn)行過(guò)程中隨時(shí)可以發(fā)生變化的量怠蹂;可以用來(lái)存放用戶輸入的數(shù)據(jù)、特定的運(yùn)算結(jié)果少态。變量聲明:如int x = 3;
數(shù)據(jù)類型:4類8中基本類型(primitive):整型(byte(1個(gè)字節(jié))城侧、short(2個(gè)字節(jié))、int(4個(gè)字節(jié)默認(rèn))彼妻、long(8個(gè)字節(jié)))嫌佑、浮點(diǎn)型(float(4個(gè)字節(jié))、double(8個(gè)字節(jié)默認(rèn)))侨歉、字符型(2個(gè)字節(jié)char如‘A’)屋摇、布爾型(boolean,分為true和false)幽邓;引用類型(reference):數(shù)組(array)炮温、類class(String)、接口(interface)
4.轉(zhuǎn)義字符:使用\把其轉(zhuǎn)化成字符的本身輸出
5.運(yùn)算符:也稱操作符颊艳,用以表示數(shù)據(jù)的運(yùn)算茅特、賦值和比較,種類分為賦值(=棋枕、+=白修、-=、=重斑、/=、%=)、算術(shù)(+坦冠、-、送滞、/、%霞赫、++(自增如++a:變量先自增再參與運(yùn)算旅东,a++:變量先參與運(yùn)算再自增)、--(自減))、比較運(yùn)算符(也稱為比較運(yùn)算符如:>同辣、< 、>=耍铜、 <= 邑闺、==、!=棕兼、instance of )陡舅、邏輯(存在短路現(xiàn)象如:!、&&伴挚、||)靶衍、位運(yùn)算灾炭、條件運(yùn)算(如z=x>y?x:y
運(yùn)算符優(yōu)先級(jí):括號(hào)最優(yōu)先;一元操作符>二元操作符>三元操作符颅眶;算術(shù)>關(guān)系>邏輯>賦值
6.類型轉(zhuǎn)換:
-自動(dòng)類型轉(zhuǎn)換:隱式類型轉(zhuǎn)換蜈出,有多種數(shù)據(jù)類型混合運(yùn)算時(shí),系統(tǒng)自動(dòng)將所有的數(shù)據(jù)轉(zhuǎn)換為容量最大的那一種數(shù)據(jù)類型涛酗,然后計(jì)算铡原。
轉(zhuǎn)換規(guī)則:byte\short\char之間不會(huì)相互轉(zhuǎn)換,首先轉(zhuǎn)換為int->long->float->double
-強(qiáng)制類型轉(zhuǎn)換:顯示類型轉(zhuǎn)換商叹,容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的類型燕刻,需要使用強(qiáng)制轉(zhuǎn)換。格式:int a=(int)7.9L;

流程控制語(yǔ)句

1.if條件語(yǔ)句:if(表達(dá)式){ 執(zhí)行語(yǔ)句}剖笙;if(表達(dá)式){執(zhí)行語(yǔ)句1 }else{執(zhí)行語(yǔ)句2 }卵洗;if(表達(dá)式1){執(zhí)行語(yǔ)句1}else if(表達(dá)式2){執(zhí)行語(yǔ)句2}...表達(dá)式如果有多個(gè)條件,可以用邏輯運(yùn)算符連接如:&&弥咪、||过蹂;
2.變量作用域:初始化定義后,在作用域里(使用一對(duì)大括號(hào)包含的語(yǔ)句范圍)定義的變量聚至,只能在該作用域中使用酷勺;變量名不可以重復(fù)定義。
3.switch語(yǔ)句:
switch(表達(dá)式):{case 取值1: 語(yǔ)塊1晚岭;break鸥印;case 取值n:語(yǔ)句n; break坦报; default:語(yǔ)句n+1库说;}其中case不加縮進(jìn),case里面的語(yǔ)句要有縮進(jìn)片择。表達(dá)式里可以接受int潜的、byte、char字管、short啰挪、String(1.7版本及以后有效);case 后面的取值(必須為常量)數(shù)據(jù)類型和switch表達(dá)式中的值具有相同類型嘲叔。遇到break跳出或者結(jié)束switch語(yǔ)句的大括號(hào)亡呵。
4.字符串(String)類型:如"字符串",通過(guò)String來(lái)聲明字符串變量硫戈,屬于引用類型中的類锰什。
5.控制臺(tái)輸入:需要加包(import java.util.Scanner;)必須在package下一行;
new Scanner(System.in).nextInt();得到用戶輸入的整數(shù);
new Scanner(System.in).nextDouble();得到用戶輸入的浮點(diǎn)數(shù)汁胆;
new Scanner(System.in).next();:得到用戶輸入的字符串梭姓,空格結(jié)束;
new Scanner(System.in).nextLine();:得到用戶輸入的字符串嫩码,換行結(jié)束誉尖。
6.產(chǎn)生隨機(jī)數(shù):需要加包(import java.util.Random;), 代碼:
new Random().nextInt(正整數(shù));這個(gè)數(shù)代表隨機(jī)數(shù)的范圍
7.循環(huán)語(yǔ)句:while(循環(huán)表達(dá)式){執(zhí)行語(yǔ)句}铸题、do{執(zhí)行語(yǔ)句}while(循環(huán)表達(dá)式);铡恕、for(int i=0;i<=100;i++){執(zhí)行語(yǔ)句...}、增強(qiáng)型for循環(huán):for(數(shù)組元素類型 變量名: 數(shù)組名){語(yǔ)句回挽;};
8.循環(huán)的中斷:break(終止某個(gè)語(yǔ)句塊的執(zhí)行没咙。用在循環(huán)語(yǔ)句體中,可以強(qiáng)行退出循環(huán))千劈;continue(用于終止某次循環(huán)過(guò)程,跳過(guò)循環(huán)體中continue語(yǔ)句后面的未執(zhí)行語(yǔ)句牌捷,重新開(kāi)始下一次循環(huán))
9.流程嵌套: 循環(huán)嵌套(9x9乘法表)墙牌、嵌套條件、循環(huán)和條件嵌套使用
10.死循環(huán):靠自身控制無(wú)法終止的程序暗甥。while(true){語(yǔ)法塊},for循環(huán)中的
循環(huán)判斷條件省略喜滨,如:for(int i=0;;i++){語(yǔ)法塊};或者for循環(huán)里面都省略,如:for(;;){語(yǔ)法塊}撤防;while循環(huán)里面的判斷條件為true虽风。
11.break label中斷:格式:標(biāo)簽名:循環(huán)體{break 標(biāo)簽名;}其中標(biāo)簽名可以為任意標(biāo)識(shí)符寄月,循環(huán)體的標(biāo)簽名和break標(biāo)簽名必須對(duì)應(yīng)一致 辜膝。

數(shù)組

1.數(shù)組可以看成是多個(gè)相同類型數(shù)據(jù)的集合,實(shí)現(xiàn)對(duì)這些數(shù)據(jù)的統(tǒng)一管理漾肮。數(shù)組元素(element):數(shù)組中的每一個(gè)元素厂抖,可以為任意數(shù)據(jù)類型,包括基本數(shù)據(jù)類型(byte,short,int,long,float,double,char,boolean,數(shù)組,類,接口)克懊,元素的個(gè)數(shù)稱為數(shù)組的長(zhǎng)度(length)忱辅。
2.數(shù)組聲明時(shí)不可以指定數(shù)組長(zhǎng)度,int[] a;谭溉,指定數(shù)組的長(zhǎng)度:int[] a=new int[4];長(zhǎng)度一旦定義墙懂,固定不變。
3.數(shù)組的內(nèi)存模型:所有元素都在堆內(nèi)存中扮念,創(chuàng)建一個(gè)數(shù)組就是在堆中創(chuàng)建一個(gè)數(shù)組對(duì)象损搬,立即擁有默認(rèn)值(整形默認(rèn)0,字符串String默認(rèn)null,字符char默認(rèn)0對(duì)應(yīng)的字符就是空格场躯,浮點(diǎn)型double谈为,float默認(rèn)0.0,布爾型boolean默認(rèn)false)踢关,索引從0開(kāi)始伞鲫,內(nèi)存連續(xù)分配。
4.數(shù)組的初始化:如int[] a=new int[]{1,2,3}签舞;或者int[] a={1,2,3}秕脓;
5.數(shù)組賦值:數(shù)組名[元素下標(biāo)]=元素值;
6.創(chuàng)建數(shù)組:使用關(guān)鍵字new的初始化儒搭,稱為動(dòng)態(tài)初始化吠架;在聲明數(shù)組的同時(shí)
就是完成創(chuàng)建和初始化工作,這叫靜態(tài)初始化搂鲫。
7.數(shù)組長(zhǎng)度:如:數(shù)組有l(wèi)ength屬性傍药,用來(lái)顯示本數(shù)組的長(zhǎng)度。語(yǔ)法:數(shù)組名.length魂仍;長(zhǎng)度必須>0拐辽;
8.一維數(shù)組:注意數(shù)組越界異常
9.多維數(shù)組:沒(méi)有真正的數(shù)組,只有數(shù)組的數(shù)組擦酌。初始化如:int[][] a=new int[3][]俱诸;或者int[][] a={{1,2,3},{4,5},{6,7}};赊舶;行的個(gè)數(shù)必須聲明睁搭。
10.一維數(shù)組的應(yīng)用:鍵盤輸入班級(jí)學(xué)員的成績(jī),計(jì)算全班學(xué)員的平均分笼平;找出最高的分园骆。
11.二維數(shù)組的遍歷:鍵盤輸入的班級(jí)學(xué)員成績(jī),計(jì)算全班學(xué)員的每科的平均分出吹。
12.冒泡排序(Bubble Sort):重復(fù)地走訪過(guò)要排序的數(shù)組遇伞,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就交換過(guò)來(lái)捶牢。走訪數(shù)組的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換鸠珠,也就是該數(shù)組已經(jīng)排序完成啦。
核心代碼:for(int i=0;i<n;i++){for(int j=0;j<n-i;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}

方法聲明和調(diào)用

1.方法的聲明:方法是完成某個(gè)功能的一組語(yǔ)句秋麸,定義方法就是編寫一段有特定功能的代碼渐排。注意:方法聲明不能嵌套,也不能在類外聲明
2.語(yǔ)法格式:[訪問(wèn)控制符] [修飾符] 返回值類型 方法名(參數(shù)類型 形參類型灸蟆,參數(shù)類型 形參類型驯耻,...){方法體}如:public static void main(String [] args){system.out.println("hello world");}
3.方法聲明:大括號(hào)包含的語(yǔ)句塊稱為方法體,用于執(zhí)行特定的功能操作。return關(guān)鍵字作用是結(jié)束方法執(zhí)行可缚,把方法的執(zhí)行(運(yùn)算)結(jié)果返回到方法外部霎迫。
4.修飾符:public 、protected 帘靡、default知给、private、static描姚;返回值類型:用來(lái)說(shuō)明該方法運(yùn)算結(jié)果的類型涩赢,如果返回其他類型,編譯就可能出錯(cuò)轩勘;
return 表達(dá)式 :作用是將return后面表達(dá)式的結(jié)果作為方法的返回值筒扒。需要注意表達(dá)式的類型,必須與方法頭中聲明的“返回類型”相 匹配绊寻。
5.方法的分類:有參(基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(數(shù)組花墩,類,接口))和無(wú)參澄步;有返回值類型和無(wú)法返回值類型(void)观游。
6.有參方法調(diào)用:實(shí)參直接在括號(hào)中,不需要類型聲明驮俗。實(shí)參可以是常量,也可以是有值的變量允跑。
7.方法中改變形參值:如果是基本數(shù)據(jù)類型是傳入的一份數(shù)據(jù)的復(fù)制王凑,方法中的改變不影響之前的實(shí)參;而如果是引用類型聋丝,傳遞的是地址值索烹,所以在方法中改變的就是地址所指向的數(shù)據(jù)值。
8.方法注意問(wèn)題:形參必須注明數(shù)據(jù)類型;實(shí)參直接寫弱睦,不需要類型聲明;return只能返回一次;遇到return語(yǔ)句百姓,方法結(jié)束執(zhí)行,后續(xù)語(yǔ)句不執(zhí)行;方法的返回值必須與聲明中的返回值類型匹配;方法定義况木,不能寫在main()中;方法是不能嵌套的垒拢。
9.遞歸調(diào)用:一個(gè)方法體內(nèi)調(diào)用它自身,這樣的方法我們稱之為方法遞
歸火惊。方法遞歸包含了一種隱式的循環(huán)求类,它會(huì)重復(fù)執(zhí)行某段代碼,但這種重復(fù)執(zhí)行無(wú)須循環(huán)控制屹耐。注意:程序中要有遞歸的界限和遞歸范圍的縮小
10.方法的重載:同一個(gè)類中允許同時(shí)存在一個(gè)以上同名的方法尸疆;要求:方法名一樣;參數(shù)必須不同(參數(shù)類型或個(gè)數(shù)不一樣;)寿弱;返回值類型無(wú)所謂

面向?qū)ο蠡A(chǔ)

1.傳統(tǒng)c語(yǔ)言屬于面向過(guò)程編程語(yǔ)言犯眠,面向過(guò)程的抽象是將實(shí)現(xiàn)一個(gè)功能的一組命令組合成為一個(gè)函數(shù),問(wèn)題:在對(duì)功能擴(kuò)充時(shí)或者對(duì)于統(tǒng)一功能的不同實(shí)現(xiàn)症革,需要重寫一個(gè)函數(shù)筐咧。
2.面向?qū)ο缶幊趟枷耄簭默F(xiàn)實(shí)世界中客觀存在的事物出發(fā)來(lái)構(gòu)造軟件系統(tǒng),在系統(tǒng)構(gòu)造中盡可能去運(yùn)用人類的自然思維方式地沮,強(qiáng)調(diào)直接以問(wèn)題域中的事物為中心來(lái)思考問(wèn)題嗜浮、認(rèn)識(shí)問(wèn)題;并根據(jù)這些事物的本質(zhì)特點(diǎn)摩疑,把它們抽象地表示為系統(tǒng)中的對(duì)象危融,作為系統(tǒng)的基本構(gòu)成單位
3.面向?qū)ο缶幊蹋喊?br> OOA(object oriented analysis):通常把構(gòu)成問(wèn)題域的事務(wù)分解為各個(gè)對(duì)象,給予對(duì)象相應(yīng)的屬性和行為雷袋,通過(guò)多個(gè)對(duì)象之間的相互協(xié)調(diào)來(lái)解決問(wèn)題吉殃。建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描述某個(gè)事務(wù)在整個(gè)解決問(wèn)題的步驟中的行為楷怒、
OOD(object oriented design):這些對(duì)象沒(méi)有先后順序蛋勺,共同組成整個(gè)系統(tǒng);只要用代碼設(shè)計(jì)出這幾個(gè)類型對(duì)象鸠删,讓他們互相通信抱完、傳遞消息就可以完成系統(tǒng)功能。
OOP(object oriented programming):定義類名-》編寫類的屬性-》編寫類的方法刃泡;
面向?qū)ο缶幊趟枷肫鋵?shí)是一種運(yùn)用對(duì)象巧娱、類、繼承烘贴、封裝禁添、多態(tài)、聚合桨踪、關(guān)聯(lián)老翘、消息等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法。
4.面向?qū)ο蟮乃枷耄悍治鱿到y(tǒng)涉及的事務(wù)中锻离,根據(jù)對(duì)象抽取出類铺峭;根據(jù)共同的特點(diǎn)定義為屬性,共有的行為定義為方法纳账。
5.面向?qū)ο蟮母拍睿?br> 抽象(abstract):從事務(wù)中舍棄個(gè)別特征逛薇,抽取共有的本質(zhì)特征,只考慮與系統(tǒng)問(wèn)題相關(guān)的消息疏虫,忽略無(wú)關(guān)的部分永罚。
對(duì)象(object):系統(tǒng)中來(lái)描述客觀事物的一個(gè)實(shí)體啤呼;可以有形可以無(wú)形(如客戶或者銀行卡);對(duì)象構(gòu)成一個(gè)獨(dú)立單位呢袱;具有自己的靜態(tài)結(jié)構(gòu)(屬性)和動(dòng)態(tài)行為(方法)官扣;每個(gè)對(duì)象都有自己唯一的標(biāo)識(shí)。
類(class):類是一組具有相同屬性(變量)和行為(方法)的對(duì)象的抽象羞福;類的作用是用來(lái)創(chuàng)建對(duì)象惕蹄,對(duì)象是類的一個(gè)實(shí)例
類與對(duì)象的關(guān)系:抽象與具體的關(guān)系;類是對(duì)象生成的模板治专;一個(gè)類定義了使用哪些數(shù)據(jù)來(lái)描述屬性卖陵,每一個(gè)對(duì)象都有相應(yīng)的屬性值數(shù)據(jù),一個(gè)類通過(guò)一系列方法來(lái)定義行為张峰,這些方法能在每個(gè)對(duì)象中被激活泪蔫。
6.類的定義:格式如:[類訪問(wèn)修飾符] class 類名{類成員...}其中類成員包括:成員變量(屬性)、成員方法(方法)喘批、嵌套類(內(nèi)部類)撩荣、代碼塊。編碼規(guī)范:類名首字母大寫饶深;方法和屬性的首字母小寫餐曹,其他單詞首字母大寫。
7.局部變量和屬性區(qū)別:方法中聲明的變量敌厘、方法中的參數(shù)或者代碼塊中的聲明的變量台猴,都是局部變量。當(dāng)屬性和局部變量重名時(shí)俱两,用this關(guān)鍵字來(lái)區(qū)分卿吐。
屬性在任何地方都可以使用,而局部變量必須先聲明再使用 锋华。
8.類和對(duì)象的關(guān)系:類是創(chuàng)建對(duì)象的模板,對(duì)象是類的實(shí)例
9.對(duì)象的創(chuàng)建:是實(shí)際存在的某類事物的個(gè)體箭窜,也叫實(shí)例毯焕。創(chuàng)建語(yǔ)法:類名 對(duì)象變量=new 類名();或者是帶參的構(gòu)造方法磺樱。
10.對(duì)象的使用:在其他類中纳猫,使用對(duì)象名點(diǎn)運(yùn)算符調(diào)用屬性和方法。引用屬性:對(duì)象名.屬性竹捉;引用方法:對(duì)象名.方法(實(shí)參)芜辕。在類內(nèi)的方法中,訪問(wèn)本類中的屬性和方法可以直接訪問(wèn)块差。
11.創(chuàng)建對(duì)象原理:程序交由JVM來(lái)執(zhí)行的侵续,運(yùn)行時(shí)數(shù)據(jù)區(qū)中包括這幾部分:程序計(jì)時(shí)器倔丈、java棧(vm stack)、本地方法棧状蜗、方法區(qū)需五、堆。
實(shí)例化對(duì)象時(shí)轧坎,同時(shí)操作了棧內(nèi)存和堆內(nèi)存宏邮;棧內(nèi)存中保存了基本數(shù)據(jù)類型的局部變量和對(duì)象的引用值;堆內(nèi)存中保存了對(duì)象的屬性和數(shù)組的元素缸血。
對(duì)對(duì)象的所有的操作只能通過(guò)引用完成蜜氨,一旦引用出棧釋放沒(méi)有任何引用指向該對(duì)象,對(duì)象就變成垃圾失效捎泻。
12.編寫一個(gè)類的時(shí)候飒炎,不會(huì)占用內(nèi)存;主函數(shù)中創(chuàng)建對(duì)象族扰,運(yùn)行主函數(shù)的類才能運(yùn)行厌丑,只有在主函數(shù)中創(chuàng)建對(duì)象,才會(huì)占用內(nèi)存渔呵。
13.對(duì)象屬性分配在堆內(nèi)存中怒竿,對(duì)象名稱(也稱為對(duì)象的引用,它是指java中的地址)分配在棧內(nèi)存中扩氢;除了8種基本數(shù)據(jù)類型耕驰,其他變量都是引用數(shù)據(jù)類型如:數(shù)組(int[] a)、類(class Person)录豺、接口(interface Run)
14.創(chuàng)建匿名對(duì)象:創(chuàng)建完對(duì)象朦肘,在調(diào)用該對(duì)象的屬性或方法時(shí),也可以不定義對(duì)象的句柄双饥,而直接調(diào)用這個(gè)對(duì)象的方法媒抠。這樣的對(duì)象叫匿名對(duì)象。如果只使用該對(duì)象進(jìn)行一次方法或?qū)傩哉{(diào)用咏花,可以創(chuàng)建匿名對(duì)象趴生。
15.垃圾回收機(jī)制(Garbage Collection,GC):當(dāng)沒(méi)有對(duì)象引用指向原先分配給對(duì)象的內(nèi)存空間時(shí)昏翰,該內(nèi)存就稱為垃圾苍匆。JVM的一個(gè)系統(tǒng)級(jí)線程會(huì)自動(dòng)釋放該內(nèi)存塊。只作用于堆內(nèi)存棚菊,與棧內(nèi)存無(wú)關(guān)浸踩;JVM內(nèi)部運(yùn)行的一個(gè)優(yōu)先級(jí)比較低的后臺(tái)線程,自動(dòng)進(jìn)行垃圾回收统求。目的:避免忘記回收內(nèi)存而引起的內(nèi)存泄漏检碗,同時(shí)也避免了回收內(nèi)存帶來(lái)的代碼繁瑣据块。
16.對(duì)象被回收的情況:對(duì)象引用被賦值為null;如:Person p=new Person(); p=null;后裸;使用的匿名函數(shù):如new Person().sayHello();瑰钮;超過(guò)生命周期:如:for(int i=0;i<100微驶;i++){Person p=new Person }這里創(chuàng)建100個(gè)對(duì)象浪谴,循環(huán)賦值給變量p,每結(jié)束一次循環(huán)因苹,變量p就超出生命周期苟耻,對(duì)象變?yōu)槔?br> 17.構(gòu)造方法(constructor):也是一種方法,所有對(duì)象都是通過(guò)構(gòu)造器來(lái)創(chuàng)建的扶檐;創(chuàng)建對(duì)象語(yǔ)法:如類名 對(duì)象名=new 構(gòu)造方法();凶杖;構(gòu)造器特點(diǎn):構(gòu)造方法與列名必須相同,沒(méi)有返回值和void款筑,不能在方法中用return語(yǔ)句返回一個(gè)值智蝠。
18.構(gòu)造方法作用:完成對(duì)象的實(shí)例化,每個(gè)類至少有一個(gè)構(gòu)造器奈梳,可以不寫出構(gòu)造方法杈湾,編譯器默認(rèn)增加一個(gè)空構(gòu)造器。編程者為該類定義了構(gòu)造器攘须,系統(tǒng)就不再提供默認(rèn)的構(gòu)造器漆撞。
17.構(gòu)造方法重載:構(gòu)造方法可以像普通方法一樣發(fā)生重載,用戶可以根據(jù)需要選擇不同的構(gòu)造器創(chuàng)建對(duì)象于宙。一般可以使用構(gòu)造器來(lái)完成對(duì)成員變量的初始化浮驳;最好還是養(yǎng)成寫出這個(gè)無(wú)參數(shù)的構(gòu)造器來(lái),以備后用捞魁。
18.構(gòu)造方法的調(diào)用:在其他類只能在創(chuàng)建對(duì)象時(shí)調(diào)用一次構(gòu)造方法至会;普通方法可以在創(chuàng)建對(duì)象后,使用點(diǎn)運(yùn)算符調(diào)用多次谱俭。
19.Java包的概念:包允許將類組合成較小的單元奋献;有助于避免命名沖突;包允許在更廣的范圍內(nèi)保護(hù)類旺上、數(shù)據(jù)和方法。將類放入包中糖埋,語(yǔ)法為:package 包名 ;宣吱;
使用包注意問(wèn)題:在java中位于包中的類,在文件系統(tǒng)中的存放位置瞳别,必須有與包名層次相對(duì)應(yīng)的目錄結(jié)構(gòu)征候;package語(yǔ)句作為java源文件的第一條語(yǔ)句杭攻;每個(gè)源文件只能聲明一個(gè)包;如果沒(méi)有package語(yǔ)句疤坝,則默認(rèn)為無(wú)名包兆解;
Java類庫(kù)中常用的包:java.lang:默認(rèn)包,任何程序中跑揉,該包自動(dòng)導(dǎo)入锅睛;java.io:輸入輸出操作有用的類的組成。
20.同包中的public類可以直接訪問(wèn)使用历谍,訪問(wèn)不同包中的類现拒,使用import關(guān)鍵字引入其它包中的類;必須在package聲明后面望侈,類聲明前面印蔬;import語(yǔ)句可以出現(xiàn)多次。
21.package和import說(shuō)明:包就像姓脱衙,類像名字侥猬;包與包之間的附屬關(guān)系用"."來(lái)連接,就像復(fù)姓捐韩。
22.生活中的封裝:將不想或不該告訴他人的東西隱藏起來(lái)退唠,將可以告訴他人的內(nèi)容公開(kāi)(隱藏對(duì)象的屬性和方法的實(shí)現(xiàn)細(xì)節(jié),只公開(kāi)對(duì)外接口)奥帘。
封裝的好處:隱藏實(shí)現(xiàn)的細(xì)節(jié)铜邮、方便修改的實(shí)現(xiàn)、只能通過(guò)規(guī)定方法訪問(wèn)寨蹋。
23.代碼封裝:
封裝關(guān)鍵字:private(私有)松蒜;類的private成員只能被該類的成員訪問(wèn);權(quán)限最小已旧,讓其他類不能直接訪問(wèn)屬性秸苗,達(dá)到保護(hù)的目的。
default(默認(rèn)):不使用權(quán)限修飾符時(shí)(即default)的成員在類內(nèi)以及在同一個(gè)包中的其他類可以訪問(wèn)运褪。
protected(保護(hù)):除了不同包下不同子類不可以使用惊楼,其他都可以。
public(公有) :公有的秸讹,最高的訪問(wèn)級(jí)別檀咙, public成員可以在所有其他類中訪問(wèn)。
24.封裝的常規(guī)使用:將類中的屬性用private關(guān)鍵字進(jìn)行隱藏璃诀;通過(guò)規(guī)定方法訪問(wèn)屬性弧可,一般通過(guò)set開(kāi)頭的共有方法對(duì)屬性賦值,用get開(kāi)頭的共有方法得到屬性的值劣欢;在方法中加入控制語(yǔ)句棕诵,對(duì)不合法數(shù)據(jù)進(jìn)行檢查裁良。
25.靜態(tài)關(guān)鍵字static:
修飾屬性(靜態(tài)變量或類變量,內(nèi)存中存在一個(gè)副本校套,當(dāng)且僅當(dāng)類初始加載時(shí)會(huì)被初始化)被所有對(duì)象共享(直接訪問(wèn):類名.屬性)价脾、
修飾方法(靜態(tài)方法或者類方法)不需要實(shí)例化,可以直接訪問(wèn)(直接訪問(wèn):類名.方法名())笛匙;靜態(tài)方法中不可以直接訪問(wèn)非靜態(tài)屬性和方法侨把。
修飾語(yǔ)句塊:類中由static關(guān)鍵字修飾的,不包含在任何方法體中的代碼塊膳算,稱為靜態(tài)代碼塊座硕。當(dāng)類被載入時(shí),且只被執(zhí)行一次涕蜂;靜態(tài)塊經(jīng)常用來(lái)進(jìn)行類屬性的初始化华匾。
26.單例模式:保證一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)机隙。
要點(diǎn):只能有一個(gè)實(shí)例蜘拉;必須自行創(chuàng)建這個(gè)實(shí)例;必須向整個(gè)系統(tǒng)提供這個(gè)實(shí)例有鹿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旭旭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子葱跋,更是在濱河造成了極大的恐慌持寄,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娱俺,死亡現(xiàn)場(chǎng)離奇詭異稍味,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)荠卷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門模庐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人油宜,你說(shuō)我怎么就攤上這事掂碱。” “怎么了慎冤?”我有些...
    開(kāi)封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵疼燥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蚁堤,道長(zhǎng)醉者,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮湃交,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘藤巢。我一直安慰自己搞莺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布掂咒。 她就那樣靜靜地躺著才沧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绍刮。 梳的紋絲不亂的頭發(fā)上温圆,一...
    開(kāi)封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音孩革,去河邊找鬼岁歉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛膝蜈,可吹牛的內(nèi)容都是我干的锅移。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼饱搏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼非剃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起推沸,我...
    開(kāi)封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤备绽,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后鬓催,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體肺素,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年深浮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了压怠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飞苇,死狀恐怖菌瘫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情布卡,我是刑警寧澤雨让,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站忿等,受9級(jí)特大地震影響栖忠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一庵寞、第九天 我趴在偏房一處隱蔽的房頂上張望狸相。 院中可真熱鬧,春花似錦捐川、人聲如沸脓鹃。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘸右。三九已至,卻和暖如春岩齿,著一層夾襖步出監(jiān)牢的瞬間太颤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工盹沈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留龄章,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓襟诸,卻偏偏與公主長(zhǎng)得像瓦堵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子歌亲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容