JAVA基礎知識點梳理_第1頁
JAVA基礎知識點梳理_第2頁
JAVA基礎知識點梳理_第3頁
JAVA基礎知識點梳理_第4頁
JAVA基礎知識點梳理_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

JAVA基礎知識點梳理(重點筆記)

1、標識符規(guī)則

a)可以由字母、數(shù)字、下劃線、美元符$組成,不能以數(shù)字開頭

b)不能就是java得關鍵字與保留字

c)嚴格區(qū)分大小寫,且盡量見名知意

2、變量

publiccIasstest{

。publicstaticvoidmain(String[]args){

?String1ove="imooc";

System、out、printIn("變量love得內(nèi)容就是:"+1ove);

Iove="iloveimooc

System、out、println("重新賦值后變量1ove得內(nèi)容就是"+love);

}

3、變量命名習慣:

a)第一個單詞得首字母小寫,其后單詞得首字母大寫(駱駝式),myAge

b)變量命名時,盡量簡短且能清楚得表達變量得作用,見名知意,如stuName

Ps:java變量長度沒有限制,但就是嚴格區(qū)分大小寫

4、數(shù)據(jù)類型

性數(shù)類型byte、short、Int.long

Si(fl5!

--濘人姿以float、double

某本數(shù)據(jù)類電_

-字符型6耐

數(shù)據(jù)類型-布爾配_boolean

class

引川數(shù)搟類t!_網(wǎng)?interface

數(shù)絹

a)int:4個字節(jié)

b)Double:8個字節(jié)

c)Float:4個字節(jié)。float變量賦值在數(shù)值后添加字母ffloathe=12、2f;

d)Char:2個字節(jié)。char變量賦值使用單引號”

e)Boolean:1個字節(jié)取值只能為:true與fa1se

f)String:引用數(shù)據(jù)類型

5、Java常量得應用:

a)Final數(shù)據(jù)類型常量名=值;

b)常量名一般使用大寫字符

6、邏輯運算符:

a)“屏或有且只有一個為true則返回true

7、條件運算符:

a)()?正確表達式:錯誤表達式

i.Eg:Stringstr=(8>5)?〃yes":"no"

8、運算符優(yōu)先級最高得就是:()

9、輸出換行:System、out、println();

//循環(huán)語句練習

packagettt;

publieclasstest6{

publicstaticvoidmain(String[]args){

o。inti=l;

ointsuml=0;

。for(;i<101;i++){

=if((i%3)!=0){

。osuml+=i;

。)

6)

3System、out、pri00以內(nèi)不可以被3整除得數(shù)之與為:"+sum1);

)

)

10、System>out、print1n換行

System、out、print不換行

packagettt;

importjava>uti1>Scanner;

publicclasstest8{

epublicstaticvoidmain(String[]args){

ointi=l;

。。System、out、println("請鍵入個9位以內(nèi)得數(shù):”);

oScanneraa=newSeanner(System>in);

6intbb=aa、nextInt();

。aa、c1ose();

。for(;bb>9;i++){

6°bb=bb/10;

)

System,out.print1n("i得值為"+i);

)

}

12、數(shù)組

a)聲明數(shù)組:

i.數(shù)組類型口數(shù)組名:

ii.數(shù)組類型數(shù)組名口;

b)。分配空間:

i、數(shù)組名=new數(shù)據(jù)類型【數(shù)組長度】

Eg:socres=newint[5]]

合并:int[]socres=newint[5];

c)int[]sorces={l,2,2,3};

等價于:int[]sorces=newint[]{1,2,2,3};

d)數(shù)組名、length獲取數(shù)組得長度

e)。arrays類操作java中得數(shù)組

1、排序:arrays、sort(數(shù)組名)(升序)

2、將數(shù)組轉(zhuǎn)換為字符串:arrays、toString(數(shù)組名);(可以實現(xiàn)把多個數(shù)組元素

連接在一起,元素中間用逗號與空格隔開)。

f)。foreach形式得for語句使用:

for(inti:words){

。System>out、print(i);

15、java中無參無返方法得調(diào)用

a)定義:pub1icvoidshow(){}方法名字第一個詞小寫,之后首字母大寫

b)調(diào)用:

i.創(chuàng)建類得對象

ii.對象名、方法名();

16、java中無參有返方法得調(diào)用

a)Publicintshow(){returnsum;}

b)注意:

i.如果方法得返回類型為void,則方法中不能使用return返回值

ii.方法得返回值最多只能有一個,不能返回多個值

iii.方法返回值得類型必須兼容

17、方法得重載:

a)必須就是在同一個類中

b)方法名相同

c)方法參數(shù)得個數(shù)、順序或類型不同

d)與方法得修飾符或返回值沒有關系

18、隨機數(shù)方法:(int)(Math、random()*100)不需要導包

19、類與對象:

a)類就是模子,確定對象將會擁有得特征(屬性)與行為(方法)

b)類就是對象得模型,具有相同屬性與方法得一組對象得集合

c)對象:

i.屬性一一對象具有得各種特征

ii.每個對象得每個屬性都有特定值

d)類就是抽象概念,僅僅就是模板,比如“手機”;對象就是一個具體得實體

e)所有得java程序都就是以類class為組織單元,由屬性與方法組成

f)Java對象使用步驟:

i.類名對象名=new類名();

ii.Phonephone=newPhone();

iii.引用屬性:phone、screen=5;//給screen屬性賦值5

iv.引用方法:phone>send();//調(diào)用send()方法

20、成員變量與局部變量得區(qū)別

a)作用域不同

b)初始值不同

c)在同一個方法中,不允許有同名局部變量

d)兩類變量同名時,局部變量具有更高得優(yōu)先級

21、構造方法:

a)使用new+構造方法創(chuàng)建一個新得對象

b)構造方法就是定義在java類中得一個用來初始化對象得方法

c)構造方法與類同名且沒有返回值

v.構造方法得格式:public構造方法名(){〃初始化代碼}

vi.Phonephone=newPhone();

vii.構造方法得名字與類名相同

d)當沒有指定構造方法就是,系統(tǒng)會自動添加無參得構造方法

e)當有指定構造方法,無論就是有參、無參得構造方法,都不會自動添加無參得構造方法

f)構造方法得重載:方法名相同,但參數(shù)不同得多個方法,系統(tǒng)自動選擇

22、靜態(tài)變量static:

a)Static可以修飾變量、方法、代碼塊

b)訪問(引用):類名、變量名hello,haha

c)定義:publicstaticStringhaha="imoc";

d)Pub1ic:表示公開得、公有得

23、靜態(tài)方法:

a)訪問:類名、方法名();

b)靜態(tài)方法中可以直接調(diào)用同類中得靜態(tài)成員,但不能直接調(diào)用非靜態(tài)成員。

c)如果調(diào)用非靜態(tài)成員,可以通過對象來訪問

d)在普通得方法中可以直接訪問同類得非靜態(tài)變量與靜態(tài)變量

e)靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過對象來訪問非靜態(tài)方法。

24、程序運行時靜態(tài)初始化塊最先被執(zhí)行,然后執(zhí)行普通初始化塊,最后才執(zhí)行構造方法。

25、面向?qū)ο蟮萌筇匦裕悍庋b、繼承、多態(tài)

26、封裝:

a)概念:將類得某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,而就是通過該類提供

得方法來實現(xiàn)對隱藏信息得操作與訪問

b)好處:只能通過規(guī)定得方法訪問數(shù)據(jù);隱藏類得實例細節(jié),方便修改與實現(xiàn)

c)實現(xiàn)步驟:

i.修改屬性得可見性:設為private:privateinta;

ii.創(chuàng)建getter/setter方法:用于屬性得讀寫

iii.在getter、setter方法中加入屬性得控制語句:對屬性得合法性進行判

iv.(其實就就是通過調(diào)用方法去讀寫屬性)

V.可以通過eclipse中source菜單中seiectgettersandsetters

toereate

27、java中得包:

a)作用:管理java文件;解決同名文件沖突

b)定義包:package包名

i.必須放在java源程序得第一行

ii.包名間可以使用“、”隔開

iii.Eg:、imooc、myc1ass

c)。系統(tǒng)包:

Java、lang>(類):包含java語言基礎得類

Java、util、(類):包含java語言中各種工具類

Java、io.(類):只包含輸入、輸出相關功能得表

d)包得使用:

I、。可以通過import關鍵字,在某個文件使用其她文件中得類。

Import、imooc、music>myc1ass

li、。Java中,包得命名規(guī)范就是全小寫字母拼音

lii、使用得時候不但可以加載某個包下得所有文件,也可以加載某個具體子包下得所

有文件

28、th訪問修飾符得總結(jié)is關鍵字:

a)代

訪問修飾符本類同包子類其她

privateJ

V1

默認V刖

protecte

VVV對

象d

publicJVVJ

i.This、屬性操作當前對象得屬性

ii.This、方法調(diào)用當前對象得方法

b)封裝對象得屬性得時候經(jīng)常會使用this關鍵字

29、java中得內(nèi)部類:(包含內(nèi)部類得類稱為外部類)

a)內(nèi)部類提供了更好得封裝,可以把內(nèi)部類隱藏在外部類之內(nèi),不允許同一個包中得其她

類訪問該類

b)內(nèi)部類得方法可以直接訪問外部類得所有數(shù)據(jù),包括隱私得數(shù)據(jù)

c)內(nèi)部類所實現(xiàn)得功能使用外部類同樣可以實現(xiàn),只就是有時使用內(nèi)部類更方便

d)內(nèi)部類可以分為:

i.成員內(nèi)部類

1.內(nèi)部類中定義得方法可以直接訪問外部類中得數(shù)據(jù),不受訪問控制符得影響

2.定義一個內(nèi)部類對象:。。內(nèi)部類對象名=外部類對象、new內(nèi)部類()

3,外部類不能直接使用內(nèi)部類得成員與方法,可以先創(chuàng)建內(nèi)部類得對象,然后

通過內(nèi)部類得對象來訪問其她成員變量與方法

4.外部類與內(nèi)部類具有相同得成員變量或方法,則內(nèi)部類默認訪問自己得成員

變量或方法,如果要訪問外部類得成員變量,可以使用this關鍵字

ii.靜態(tài)內(nèi)部類

1.靜態(tài)內(nèi)部類不能直接訪問外部類得非靜態(tài)成員,但可以通過new外部類

()、成員得方式訪問

2.如果外部類得靜態(tài)成員與內(nèi)部類得成員名稱相同,可以通過“類名、靜態(tài)成員”

訪問外部類得靜態(tài)成員;如果外部類得靜態(tài)成員與內(nèi)部類得成員名稱不同,則

可以通過“成員名”直接調(diào)用外部類得靜態(tài)成員

3.創(chuàng)建靜態(tài)內(nèi)部類得對象時.,不需要外部類得對象,可以直接創(chuàng)建內(nèi)部類對

象名=new內(nèi)部類();

iii.方法內(nèi)部類

1.方法內(nèi)部類就就是定義在外部類得方法中,方法內(nèi)部類只在該方法得內(nèi)部可

見,即只在該方法內(nèi)可以使用。

2.由于方法內(nèi)部類不能在外部類得方法以外得地方使用,因此方法內(nèi)部類不能

使用訪問控制符與static修飾符

iv.匿名內(nèi)部類

30、繼承:

a)Java里都就是單繼承

b)好處:

i.子類直接擁有父類得所有屬性與方法,但private除外

ii.實現(xiàn)代碼得復用

iii.Class子類extends父類

c)Fina1關鍵字

i.修飾類:則該類不允許被繼承

ii.修飾方法:則該方法不允許被覆蓋(重寫)

iii.修飾屬性:則該類得屬性不會進行隱式得初始化(類得初始化屬性必須有值)

或在構造方法中賦值

iv.修飾變量,則變量得值只能賦一次,即常量

d)Super關鍵字

i.在對象得內(nèi)部使用,可以代表父類對象

ii.方位父類得屬性,或方法,super、agesuper、eat()

31>Object類:

a)Object類就是所有類得父類,如果一個類沒有使用extends關鍵字明確標識繼承另

一個類,那么這個類默認繼承object類

b)0bject類中得方法,適合所有子類

c)方法:

i.toString()方法:

1.在object類里面定義得“string()方法得時候返回得對象得哈希碼

(對象地址字符串)(用來區(qū)分對象)

2.如:直接輸出dog對象得值:System,out、print1n(dog);

3.生成:source菜單欄-->generatetoString()------>生成輸出屬

性得方法

ii.Equals()方法:

1.比較得就是對象得引用就是否指向同一塊內(nèi)存地址:Dogdog=newDog();

2.生成:sounce菜單欄-->generatehashcode()andequal

s()、、、

a)類對象:姓名、年齡、身高、、、obj、getclass()

b)類得對象:小灰、25、170、、、obj

3.調(diào)用:if(dogl>equals(dog2))--->判斷兩個對象就是否相同

32、多態(tài):(繼承就是多態(tài)得基礎)

a)引用多態(tài):

i.父類得引用可以指向本類得對象:anima1sobjl=newanimals();

ii.父類得引用可以指向子類得對象;anima1sobj2=newdog();

iii,注意:子類得引用不可以指向父類得對象:dogobj3=newanimals();

b)方法多態(tài):

i.創(chuàng)建本類對象時,調(diào)用得方法為本類方法

ii.創(chuàng)建子類對象時,調(diào)用得方法為子類重寫得方法或者繼承得方法

33、多態(tài)中得引用類型轉(zhuǎn)換

a)向上類型轉(zhuǎn)換(隱式/自動類型轉(zhuǎn)換),就是小類型到大類型得轉(zhuǎn)換,無風險

b)向下類型轉(zhuǎn)行(強制類型轉(zhuǎn)換),就是大類型到小類型得轉(zhuǎn)換,有風險,溢出

c)Instanceof運算符,來解決引用對象時得類型,避免類型轉(zhuǎn)換得安全問題

i.Eg:

Dogdog=newDog();

Anima1anmal=dog"/自動類型提升,向上類型轉(zhuǎn)換

Dogdog2=(Dog)animal;//強制類型轉(zhuǎn)換,向下類型轉(zhuǎn)換

Catcat=(Cat)animal;//編譯時Cat類型;運行時Dog類型,報錯

可以替換為:

if(anima1instanceofCat){

Catcat=(Cat)anima1;

}

34、抽象類:

a)語法:抽象類前使用abstract關鍵字修飾,則該類為抽象類

b)作用:限制規(guī)定子類必須實現(xiàn)某些方法,但不關注實現(xiàn)細節(jié)

c)規(guī)則:

i.Abstract定義抽象類

ii.Abstract定義抽象方法,只有聲明,不需要實現(xiàn)

iii.包含抽象方法得類就是抽象類

iv.抽象類中可以包含普通得方法,也可以沒有抽象方法

v.抽象類不能直接創(chuàng)建,可以定義引用變量

d)現(xiàn)有Shape圖形類,用Rectangle矩形與Circ1e圓形子類,求圖形得周長與面積:

Shape、java:

package、amooc;

pub1icabstractclassShape{

。publicabstractvoidzhouchang(doubIe1,doublew);

publicabstractvoidmianji(doub1e1,doublew);

publicabstractvoidzhouchang2(doubler);

publicabstractvoidmianji2(doub1er);

}

Rectangle、java:

package、amooc;

publicclassRectangleextendsShape{

。publicvoidzhouchang(double1,doub1ew){

。doublez;

z=2*(1+w);

ooSystem、out、printin("長為:“+1+”,寬為:“+w+”,得長方形周長就

是:"+z);

。}

。publicvoidmianji(doubledoublew){

。doublem;

°m=l*w;

oSystem.out、println(“長為:M+1+",寬為:”+w+“,得長方形

面積就是:"+m);

}

publicvoidzhouchang2(doubler){

。doublez;

。z=2*3、14*r;

System、out、print1n("半徑為:"+r+",得圓形周長就是:”+

Z);

)

opublicvoidmianji2(doub1er){

。doublem;

。m=3、14*r*r;

oSystem,out.printIn(“半徑為:“+r+”,得圓形面積就是:”

+m);

")

)

imoocl>java:

package、amooc:

publicclassimooc1{

publicstaticvoidmain(String[]args){

ooRectanglezl=newRectangle();

Shapeml=newRectangle。;

Shapez2=newRectangle();

Shapem2=newRectangle();

zl、zhouchang(3,4);

oml、mianji(3,4);

。z2>zhouchang2(3);

o。m2^mianji2(3);

)

}

35、接口:

a)概念:接口可以理解為一種特殊得類,由全局常量與公共得抽象方法所組成。類就是一

種實現(xiàn)體,而接口定義了某一批類所需要遵守得規(guī)范,接口不關心這些類得內(nèi)部數(shù)據(jù),

也不關心這些類里方法得實現(xiàn)細節(jié),它只規(guī)定這些類里必須提供某些方法

b)定義:與類定義不同,定義接口不再使用class關鍵字,而就是使用interface關

鍵字

c)基本語法:[修飾符]interface接口名[extends父接口1,父接口2、、、]

{

零個到多個常量定義

零個到多個抽象方法得定義

}

接口就是用來被繼承、被實現(xiàn)得,修飾符一般建議用public

注:不能使用Private與protected修飾接口

d)接口定義常量:接口中得屬性就是常量,即使定義時不添加publiestaticfi

nal修飾符,系統(tǒng)也會自動加上

e)接口定義方法:接口中得方法只能就是抽象方法,總就是使用,即使定義時不添加

publicabstract,系統(tǒng)也會自動加上

f)使用接口1:

i.一個類可以實現(xiàn)一個或多個接口,實現(xiàn)接口使用implements關鍵字,java中一個

類只能繼承一個父類就是不夠靈活得,通過實現(xiàn)多個接口可以做補充

ii.繼承父類實現(xiàn)接口得語法為:

[修飾符]c1ass類名extends父類implements接口1,接口2、、、

{

類體部分〃如果繼承了抽象類,需要實現(xiàn)繼承得抽象方法;要實現(xiàn)接口中得

抽象方法、、、

)

如果要繼承父類,繼承父類必須在實現(xiàn)接口之前

Eg:newinterfaceIjiekou(命名習慣,名字前加大寫I)

g)使用接口2:

i.接口在使用過程當中,還經(jīng)常與匿名內(nèi)部類配合使用,匿名內(nèi)部類就就是沒有名字

得內(nèi)部類,多用于關注實現(xiàn)而不關注實現(xiàn)類得名稱

ii.語法格式:

Interfacei=newInterface(){

publievoidmethod(){

System,out、printin(“匿名內(nèi)部類實現(xiàn)接口得方式”):

)

};

注意:末尾以分號結(jié)束

或*

newInterface(){

PublicvoidplayGame(){

System、out、print1n("使用匿名內(nèi)部類得方式實現(xiàn)接口”);

}

}、playGame();

h)在接口中定義方法geta(),正確得格式就是:voidgeta();

注:接口方法不能有方法體,同時方法得訪問修飾符不能為private與prote

cted

36、UML:(unifiedmodelinglanguage),又稱統(tǒng)一建模語言或標準建模語言。就是一

個支持模型化與軟件系統(tǒng)開發(fā)得圖形化語言,為軟件開發(fā)得所有階段提供模型化與可視化支持。

a)用例圖:(theusecasediagram)

i.用例圖能夠以可視化得方式,表達系統(tǒng)如何滿足所收集得業(yè)務規(guī)則,以及特定得用

戶需求等信息

b)序列圖:(thesequencediagram)

i.序列圖用于按照交互發(fā)生得一系列順序,顯示對象之間得這些交互

c)類圖:(theclassdiagram)

i.UML類圖業(yè)務邏輯與所有支持結(jié)構一同被用于定義全部得代碼結(jié)構

d)UML建模工具:

i.Visio、rationa1rose>powerdesign

37、綜合練習:答答租車系統(tǒng)

a)功能:

i.展示所有可租車輛

ii.選擇車型、租車量

iii.展示租車清單,包含:總金額、總載貨量及其車型、總教人量及其車型

b)項目分析:

i.數(shù)據(jù)模型分析

1.通過對現(xiàn)實世界得事與物主要特征得分析、抽象,為信息系統(tǒng)得實施提供數(shù)

據(jù)存取得數(shù)據(jù)結(jié)構以及相應得約束

2.數(shù)據(jù)結(jié)構得組成:操作(方法)、屬性

ii.業(yè)務模型分析

iii.顯示與流程分析

38、異常:走路被樹葉絆倒,吃糖餅燙后腦勺,考試快交卷了才發(fā)現(xiàn)反而還有題、、、

a)組織圖:

Throwable

b)處理異常:

i.try-catch以及try-catch-finally

ii.Eg:

Try(

〃一些會拋出異常得方法

}catch(Exceptione){

〃處理該異常得代碼塊

}finally{

//最終將要執(zhí)行得代碼

)

iii>

package、imooc0325;

publicclasstestl{

/*

。。divide:除數(shù)

resuIt:結(jié)果

。。try-catch捕獲while循環(huán)

每次循環(huán),divide減1,resu1t=result+100/divide

如果:捕獲異常,打印輸出”拋出異常了?。?!”,返回-1

否則:返回result

°*/

。publicinttest(){

oointdivide=10;

。intresuit=100;

try(

3owhile(divide>-1){

。。。divide--;

。resu1t=result+100/divide;

30)

QreturnresuIt;

。)catch(Exceptione){

。oe、printStackTrace();//打印異常具體信息

。。System、out、println("循環(huán)拋出異常了?。?!”);

。ereturn-1;

。}finally{

??System>out,println("我還會回來得??");

)

}

。publicstaticvoidmain(String[]args){

。test1tct=newtestl();

?intresu1t=tct、test();

System、out、println("test方法執(zhí)行完畢,返回值:"+resu1t);

}

}

c)如果三個程序塊之內(nèi)都沒有return語句,則調(diào)用程序塊外得return語句

d)Java中得異常拋出以及自定義異常

i.Dava中得異常拋出:

1.throw:將產(chǎn)生得異常拋出

2.throws:聲明將要拋出何種類型得異常(聲明)

publicvoid方法名(參數(shù)列表)

throws異常列表{

//調(diào)用會拋出異常得方法或者:

thrownewException();

}

ii.自定義異常:

1.class自定義異常extends異常類型{)

2.Pub1icc1assDrunkExceptionextendsException{

Pub1icDrunkException(Stringmessage){}

}

e)JAVA中得異常鏈:

/*

=testl():拋出“喝大了”異常

?test2():調(diào)用testl(),捕獲“喝大了”異常,并且包裝成運行時異常,繼續(xù)拋

main方法中,調(diào)用test2(),嘗試捕獲test2()方法拋出得異常

*/

publicvoidtestl()throwsDrunkException(

?throwsnewDrunkException("喝車別開酒”);

}

publicvoidtest2(){

。try{

?tset1();

}catch(DrunkExceptione){

RuntimeExceptionnewExe=newRuntimeException(“司機一

滴酒,親人兩行淚?~");

。newExe、initCause(e);

。。thrownewExe;

}

)

publicstaticvoidmain(String[]args){

?chaintestct=newchaintest();

。try(

ct、tset2();

?}cateh(Exceptione;)

,e、printStackTrace();

。}

}

注:捕獲到得異常,可以在當前方法得catch塊中處理,也可以拋出給調(diào)用者去處理

39、實用中得經(jīng)驗與總結(jié):

a)處理運行時異常時,采用邏輯去合理規(guī)避,同時輔助try-catch處理

b)在多重catch塊后面,可以加一個catch(Exception)來處理可能會被遺漏得異

c)對于不確定得代碼,也可以加上try-cateh,處理潛在得異常

d)盡量去處理異常,切忌只就是簡單得調(diào)用printStackTrace()去打印輸出

e)具體如何去處理異常,要根據(jù)不同得業(yè)務需求與異常類型去決定

f)盡量添加fina1ly語句塊去釋放占用得資源

40JAVA中得字符串:在java中,字符串被作為String類型得對象處理。String類位于

java、lang包中。默認情況下,該包被自動導入所有得程序

a)Strings1="imooc”;。。//創(chuàng)建一個字符串對象imooc,名為si

b)Strings2=newString();。//創(chuàng)建一個空字符串對象,名為s2

c)Strings3=newString("imooc");//創(chuàng)建一個字符串對象imooc,名為s3

41、java中字符串得不變性:String對象創(chuàng)建后則不能被修改,就是不可變得,所謂得修改

其實時創(chuàng)建了新得對象,所指向得內(nèi)存空間不同

a)其實質(zhì)就是創(chuàng)建了新得字符串對象

b)一旦一個字符串在內(nèi)存中創(chuàng)建,則這個字符串將不可改變

42、java中String類得常用方法

a)String類提供了許多用來處理字符串得方法

處理字符串得方法

1intlength()返回當前字符串得長度

2intindexOf(intch)查找ch字符子該字符串中第一次出現(xiàn)得位置

3intindexOf(Stringstr)查找str子字符串在該字符串中第一次出現(xiàn)得位置

4intlastIndexOf(intch)查找ch字符在該字符串中最后一次出現(xiàn)得位置

5intlastlndexOf(Stringstr)查找str子字符串在該字符串中最后一次出現(xiàn)得位置

6Stringsubstring(intbeginIndex)獲取從beginlndex位置開始到結(jié)束得字符串

Stringsubstring(intbeginIndex,

7獲取從beginindex位置開始到endlndex位置得子字符串中

intendlndex)

8Stringtrim()返回去除了前后空格得字符串

9booleanequals(Objectobj)將該字符串與指定對象比較,返回ture或false

10StringtoLowerCase()將字符串轉(zhuǎn)換為小寫

11StringtoUpperCase()將字符串轉(zhuǎn)換為大寫

12charcharAt(intindex)獲取字符串中指定位置得字符

String[]split(Stringregex,int

13將字符串分割為子字符串,返回字符串數(shù)組

limit)

14byte[]getBytes()將該字符串轉(zhuǎn)換為byte數(shù)組

b)字符串str中字符得索引從。開始

c)使用indexOf進行字符或字符串查找時,如果匹配返回位置索引;如果沒有匹配結(jié)

果,返回-1

d)使用substring(beginlndex,endIndex)進行字符串截取時,包括begin

Index位置得字符,不包括endlndex位置得字符

package、imooc0325;

importjava、util、Arnays;

publicclasstest2{

?publicstaticvoidmain(String口args){

。//定義一個字符串“學習一下java編程”

。。Stringstr="學習一下java編程";

。//打印出字符串長度

System、out、printIn("字符串長度:"+str、1ength());

〃查找字符‘編’得位置

。charc='編';

。。System、out、println("字符'編'得位置:"+str、indexOf(c));

。//查找字符串‘JAVA,得位置

?System、out、printIn("f字符串‘java'得位置:"+str、indexOf

("java"));

。。//查詢子字符串'imooc'得位置,如果找不到返回一1

??Systemsout、printin("子字符串‘imooc'得位置:"+str、indexOf("i

mooc"));

。。//按空格把字符串拆分成一個數(shù)組,并輸出數(shù)組元素

String[]arr=str、split("");

System,out,print("按空格拆分成數(shù)組:"+Arrays、toSt

ring(arr));

?System,out、printIn();

?!ǐ@取索引位置[4,8)之間得字符串

。System、out、println("獲取位置[4,8)之間得子符串:"+str、subst

ring(4,8));

}

}

43、==與equals。得區(qū)別:

a)==:判斷兩個字符串在內(nèi)存中首地址就是否相同,即判斷就是否就是同一個字符串對

b)equals():比較存儲在兩個字符串對象中得內(nèi)容就是否一致

〃定義一個字符串“學習JAVA編程”

Stringstr="學習JAVA編程";

〃將字符串轉(zhuǎn)換為小寫

System、out、printIn("轉(zhuǎn)換為小寫:“+str、toLowerCaseO);

〃獲取索引位置為1得字符

System、out、print1n(”獲取索引為1位置得字符:”+str、charAt(l));

//將字符串轉(zhuǎn)換為byte[],并打印輸出

byte[]b=str^getBytes();

System,out、print("轉(zhuǎn)換為字符數(shù)組:”);

for(inti=0;iVb、length;i++){

System,out>print(b[i]+”");

}

System>out、println();

〃與另一個字符串“學習JAVA編程”進行比較

Stringstr2=newString(11學習JAVA編程”);

System、out>println("str與str2得內(nèi)存地址相同?”+(str==str2));

System、out、print1n("str與str2得內(nèi)容相同?H+str>equals(str2));

44、定義字符串可以使用:

a)String

b)StringBuilder:性能更高,優(yōu)先使用

c)StringBuffer:就是線程安全得

d)創(chuàng)建一個空對象:StringBuilderstrl=newStringBuilder();

e)創(chuàng)建字符串為"imooc”:StringBuilderstr2=newStringBuilder(rfimo

oc");

//倉建StringBui1der對象,存儲字符串

StringBui1derstr=newStringBui1der("hello");

str、append(Himooc")"/在字符串后面追加字符串

str、append(520);//在字符串后面追加整數(shù)

System、out>print1n("字符串長度:"+str>1ength());〃字符串長

System、out、println("插入前,"+str);

str>insert(11/*!");//在指定位置插入內(nèi)容

Stringstr2:str、toString();〃轉(zhuǎn)換為String對象

System、out>println("插入后:"+str2);

45、java中得包裝類:

a)基本類型不能調(diào)用方法,功能簡單。為了讓基本數(shù)據(jù)類型也具備對象得特性,ja

va為每個基本數(shù)據(jù)類型都提供了一個包裝類,這樣我們就可以像操作對象那樣來操

作基本數(shù)據(jù)類型。

b)包裝類主要提供了兩大類方法:

i,將本類型與其她基本類型進行轉(zhuǎn)換得方法

ii.將字符串與本類型及包裝類互相轉(zhuǎn)換得方法

c)基本類型與包裝類型之間得對應關系:

d)Integer序號基本類型對應得包裝類包裝類得構造方法:

i.Integer(intva1

1byteByte

ue):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論