Java基礎(chǔ)-基本數(shù)據(jù)類型的封裝類的講解、單例模式、垃圾回收機(jī)制_第1頁
Java基礎(chǔ)-基本數(shù)據(jù)類型的封裝類的講解、單例模式、垃圾回收機(jī)制_第2頁
Java基礎(chǔ)-基本數(shù)據(jù)類型的封裝類的講解、單例模式、垃圾回收機(jī)制_第3頁
Java基礎(chǔ)-基本數(shù)據(jù)類型的封裝類的講解、單例模式、垃圾回收機(jī)制_第4頁
Java基礎(chǔ)-基本數(shù)據(jù)類型的封裝類的講解、單例模式、垃圾回收機(jī)制_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

java基礎(chǔ)主要內(nèi)容String,StringBuffer類的講解基本數(shù)據(jù)類型的封裝類的講解toString()方法,Math類,Class類單例模式Java中內(nèi)存的分配垃圾回收機(jī)制字符串(String)什么是字符串?字符串指的是字符序列Java中并沒有內(nèi)置的字符串類型,而是在標(biāo)準(zhǔn)Java庫中包含一個String類字符串是一種簡單而且常用的數(shù)據(jù)結(jié)構(gòu)字符串的聲明象使用其它基本數(shù)據(jù)類型一樣,使用String定義字符串變量Stringe="";//一個空字符串Stringgreeting="Hello";因?yàn)槭褂梅浅V泛String被定義為finalString類String類的下述方法能創(chuàng)建并返回一個新的String對象:concat,replace,substring,toLowerCase,toUpperCase,trim,String.提供查找功能的有關(guān)方法:endsWith,startsWith,indexOf,,lastIndexOf.提供比較功能的方法:equals,equalsIgnoreCase,compareTo.其它方法:charAt

,length.字符串連接和大多數(shù)程序語言一樣,Java允許使用符號+把兩個字符串連接(concatenate)在一起Strings1="WelcometoJava";Strings2=s1+"Programming";//S2為字符串"WelcometoJavaProgramming"當(dāng)連接一個字符串和一個非字符串時,非字符串將轉(zhuǎn)換成字符串intage=13;Stringrating="PG"+age;//rating為字符串"PG13"System.out.println("Theansweris"+answer);子串String類中的substring方法可以從字符串中截取一個子串,例如:Stringgreeting="Hello";Strings=greeting.substring(0,4);//s的值為"Hell"substring方法substring(int

beginIndex,int

endIndex);beginIndex為欲截取字符串的起始位置索引endIndex為不想截取的起始位置字符串中第一個字符的位置為0字符串length方法用來獲取字符串長度Stringgreeting="Hello";intn=greeting.length();//n等于5charAt方法用來獲取字符串中的單個字符charlast=greeting.charAt(4);//第4個字符是o測試字符串是否相等使用equals方法比較兩個字符串是否相等Strings1="Hello";Strings2="Hello";if(s1.equals(s2)){//s1和s2具有相同的內(nèi)容}字符串什么是字符串?字符串指的是字符序列Java中并沒有內(nèi)置的字符串類型,而是在標(biāo)準(zhǔn)Java庫中包含一個String類字符串是一種簡單而且常用的數(shù)據(jù)結(jié)構(gòu)字符串的聲明象使用其它基本數(shù)據(jù)類型一樣,使用String定義字符串變量Stringe="";//一個空字符串Stringgreeting="Hello";字符串連接和大多數(shù)程序語言一樣,Java允許使用符號+把兩個字符串連接(concatenate)在一起Strings1="WelcometoJava";Strings2=s1+"Programming";//S2為字符串"WelcometoJavaProgramming"當(dāng)連接一個字符串和一個非字符串時,非字符串將轉(zhuǎn)換成字符串intage=13;Stringrating="PG"+age;//rating為字符串"PG13"System.out.println("Theansweris"+answer);子串String類中的substring方法可以從字符串中截取一個子串,例如:Stringgreeting="Hello";Strings=greeting.substring(0,4);//s的值為"Hell"substring方法substring(int

beginIndex,int

endIndex);beginIndex為欲截取字符串的起始位置索引endIndex為不想截取的起始位置字符串中第一個字符的位置為0字符串length方法用來獲取字符串長度Stringgreeting="Hello";intn=greeting.length();//n等于5charAt方法用來獲取字符串中的單個字符charlast=greeting.charAt(4);//第4個字符是o測試字符串是否相等使用equals方法比較兩個字符串是否相等Strings1="Hello";Strings2="Hello";if(s1.equals(s2)){//s1和s2具有相同的內(nèi)容}Stringint

compareTo(Stringvalue)按字母順序比較兩個字符串。如果兩個字符串相等,則返回0;如果字符串在該值之前,則返回值小于0;如果字符串在該值之后,則返回值大于0StringBuffer類StringBuffer用于表示可以修改的字符串構(gòu)造方法StringBuffer()StringBuffer(intcapacity)StringBuffer(String

initialString)實(shí)現(xiàn)修改操作的方法:append,insert,reverse,setCharAt,setLength.toString()//轉(zhuǎn)化為字符串String與StringBuffer的區(qū)別String是不可變的每次產(chǎn)生字符串時都會產(chǎn)生新的對象會占用大量內(nèi)存StringBuffer是可變的在項(xiàng)目中操作字符串的連接時都建設(shè)使用StringBufferStringBuffer

stringBuffer=newStringBuffer();stringBuffer.append(“”);練習(xí)自己查API實(shí)現(xiàn)傳過來的參數(shù)是"name=zhangsan;num=3;score=123"練習(xí)把里面所有的東西分離出來,然后封裝成一個student的實(shí)例.(這里面用到的數(shù)字類型先用String類型替換,封裝類尚未講到.)==操作符與equals方法==操作符與equals方法的區(qū)別:equals()方法只能比較引用類型,“==”可以比較引用類型及基本類型;一般情況下使用equals比較字符串內(nèi)容是否相等使用==判斷int或者boolean等==操作符與equals方法==比較對象的引用equals比較對象的內(nèi)容默認(rèn)情況下是比較對象的引用如果想自己判斷需要重寫對象的hashCode和equals方法String類型和Wrapper類型的equals已經(jīng)被重寫了Object類Object類是所有Java類的根父類如果在類的聲明中未使用extends關(guān)鍵字指明其父類,則默認(rèn)父類為Object類

publicclassPerson{ ... }

等價于:publicclassPersonextendsObject{...}Object類Object中的方法Equals是否兩個對象相等hashCodeDogd=newDog();System.out.println(c.hashCode());//列出對象的hashcode,類似唯一id;getClassDogd=newDog();System.out.println(d.getClass());//得到對象的類Object類Object中的方法toString()得到對象有意義的表示//默認(rèn)情況是打印的引用在內(nèi)存中的地址toString

方法toString()方法在Object類中定義,其返回值是String類型,描述當(dāng)前對象的有關(guān)信息在進(jìn)行String與其它類型數(shù)據(jù)的連接操作時,自動調(diào)用toString()方法可以根據(jù)需要在用戶自定義類型中重寫toString()方法基本類型數(shù)據(jù)轉(zhuǎn)換為String類型時,調(diào)用了對應(yīng)封裝類的toString()方法封裝類什么是封裝類基本數(shù)據(jù)類型以類的形式體現(xiàn)boolean—Booleanint--Integer封裝類有時想把primitive主數(shù)據(jù)類型當(dāng)作對象來處理如何包裝封裝類如何把基本數(shù)據(jù)類型包裝成對象inti=288Integeriwrap=newInteger(i);封裝類針對八種基本定義相應(yīng)的引用類型—封裝類基本數(shù)據(jù)類型封裝類

boolean

Boolean

byte

Byte

short

Short

int

Integer

long

Long

char

Character

float

Float

double

Double封裝類如何解開包裝intI=288Integeriwrap=newInteger(i);int

unwraped=Value();String和int類型的轉(zhuǎn)化String轉(zhuǎn)化成primitive主數(shù)據(jù)類型Strings=“2”;Intx=Integer.parseInt(s);Booleanb=newBoolean(“true”).booleanValue();String和int類型的轉(zhuǎn)化把primitive主數(shù)據(jù)類型轉(zhuǎn)化成Stringdoubled=42.5;StringdoubleString=“”+d;doubled=42.5StringdoubleString=Double.toString(d);封裝類用法舉例inti=500;Integert=newInteger(i);intj=Value(); //j=500Strings=t.toString(); //s="500"Strings1=Integer.toString(314); //s1="314"Math類Math類中定義了多個static方法提供常用數(shù)學(xué)運(yùn)算功能截?cái)嗖僮?Truncation):ceil,floor,round

取最大、最小及絕對值:max,min,abs

三角函數(shù):sin,cos,tan,asin,acos,atan,toDegrees,

toRadians

對數(shù)運(yùn)算:log,exp

其它:sqrt,pow,random

常量:PI,EClass類getClass()方法獲取該對象的Class實(shí)例;Class類的靜態(tài)方法forName(),其定義為publicstaticClassforName(String

className)throwsClassNotFoundException單例(Singleton)模式一個類只有一個實(shí)例,而且自行實(shí)例化并向整個系統(tǒng)提供這個實(shí)例實(shí)現(xiàn):私有構(gòu)造方法提供實(shí)例的靜態(tài)方法classSingleton{ privatestaticfinalSingletonst=newSingleton(); privateSingleton(){} publicstaticSingletongetInstance(){ returnst; }}Java中內(nèi)存的分配內(nèi)存里分四個區(qū)域:codesegment(存放代碼)datasegment(存放靜態(tài)變量字符串常量)stack(存放局部變量)heap(存放new出來的對象或者數(shù)組)Java內(nèi)存解析引用Java中除了基本數(shù)據(jù)類型之外的變量都稱為引用類型Java中的對象是通過引用對其操作的棧Java內(nèi)存解析Stringstr=newString(“HelloJava”);Str(0xa23b)堆內(nèi)存……….Java內(nèi)存解析PublicclassDog{privateStringdname;privateintage;}Dogdog1=newDog();Dogdog2=newDog();dog1和dog2是指向內(nèi)存中的引用Java內(nèi)存解析stackdogdog1dnameagednameageJava內(nèi)存解析構(gòu)造函數(shù)publicclassPerson{privateStringpname;publicintage;PublicPerson(Stringpname,intage){this.pname=pname;this.age=age;}}publicstaticvoidmain(Stringargs[]){personp0=newPerson(“test0”,5);}Java內(nèi)存解析先分配空間構(gòu)造函數(shù)后被實(shí)例變量被賦值方法執(zhí)行完局部變量消失引用指向?qū)ο驤ava內(nèi)存解析p0Pname:test0age:5age:5pname:test0Java內(nèi)存解析publicclassDog{privateStringdogName;privateintage;publicDog(String

dogName,intage){this.dogName=dogName;this.age=age;}Java內(nèi)存解析Dogdog1=newDog("xiaobai",5);Dogdog2=newDog("xiaohei",6);MemoryDemo

md=newMemoryDemo();intdate=9;md.change3(date);System.out.println("date:"+date);md.change2(dog1);System.out.println("dog1age"+dog1.getAge());md.change2(dog1);System.out.println("dogName:"+dog1.getDogName());對象的銷毀對象的誕生對象的銷毀對象的銷毀局部變量實(shí)例變量對象局部變量局部變量只會存活在聲明該變量的方法中publicvoidread(){

ints=42;//當(dāng)方法結(jié)束時,s會完全消失}實(shí)例變量如果對象活著實(shí)例變量也活著對象如果沒有對對象的引用,該對象就沒有作用了,也就是垃圾對象引用永久性的離開它的范圍Voidgo(){Lifez=newLife();}引用被賦值到其他對象上Lifez=newLife();Z=newLife();直接將引用設(shè)定為nullLifez=newLife();Z=null;垃圾回收機(jī)制系統(tǒng)自動調(diào)用程序員沒有辦法干預(yù)System.gc();垃圾回收機(jī)制classGarbage{

intindex; staticintcount; Garbage(){ count++;

System.out.println("object"+count

溫馨提示

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

評論

0/150

提交評論