Java理論作業(yè)5章_第1頁
Java理論作業(yè)5章_第2頁
Java理論作業(yè)5章_第3頁
Java理論作業(yè)5章_第4頁
Java理論作業(yè)5章_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、班級: 學(xué)號: 姓名: 第五章 數(shù)組與字符串知識點(diǎn)一:java的內(nèi)存分配機(jī)制內(nèi)存分配:棧內(nèi)存、堆內(nèi)存。棧內(nèi)存:基本數(shù)據(jù)類型的變量和對象的引用變量。超出變量的作用域,會自動釋放掉為該變量所分配的內(nèi)存空間。堆內(nèi)存:存放由new運(yùn)算符創(chuàng)建的對象和數(shù)組,在堆中分配的內(nèi)存,由java虛擬機(jī)的自動垃圾回收器來管理。舉例:int x; x=new int10; 第一句:引用變量x,在棧內(nèi)存中分配空間 第二句:數(shù)組初始化,在堆內(nèi)存中分配空間棧中的變量x的取值= 數(shù)組在堆內(nèi)存中的首地址,所以棧中的這個變量就成了數(shù)組的引用變量。舉例string s1; string s2;s1=“a string”; s2=s1

2、;s1s210001a string10001棧內(nèi)存堆內(nèi)存引用變量實(shí)際上保存的是數(shù)組或?qū)ο笤诙褍?nèi)存中的地址(也稱為對象的句柄),所以可以通過使用棧的引用變量來訪問堆中的數(shù)組或?qū)ο蟆R米兞肯喈?dāng)于是為數(shù)組或?qū)ο笃鸬囊粋€別名。引用變量是普通變量,定義時在棧中分配,在程序運(yùn)行到其作用域之外被釋放。數(shù)組或?qū)ο螅涸诙阎蟹峙鋬?nèi)存,在沒有引用變量指向它時,也不會釋放,但會變?yōu)槔荒茉俦皇褂谩T陔S后一個不確定的時間被垃圾回收器收走(釋放)。null:引用常量,如果某個引用變量值為null,表示不指向任何對象或數(shù)組。知識點(diǎn)二:一維數(shù)組數(shù)組:相同數(shù)據(jù)類型的元素按一定順序排列的集合,實(shí)現(xiàn)對這些數(shù)據(jù)的統(tǒng)一管理。聲

3、明方式type var 或 type var;type指定數(shù)組的類型,可以是基本數(shù)據(jù)類型,也可以是一個類類型(即類名),如 int a; int a1; double b; 注意:java語言中聲明數(shù)組時不能指定其長度(數(shù)組中元素的個數(shù))。例如:int a5; /非法所有的數(shù)組下標(biāo)從零開始a 、動態(tài)初始化數(shù)組定義與為數(shù)組元素分配空間并賦值的操作分開進(jìn)行使用運(yùn)算符new來為數(shù)組所要存儲的數(shù)據(jù)分配內(nèi)存,并將它們分配給數(shù)組變量int a;a = new int3;a0 = 3;a1 = 9;a2 = 8;b、靜態(tài)初始化 在定義數(shù)組的同時為數(shù)組元素分配空間并賦值int a = 3, 9, 8;myda

4、te dates = new mydate(22, 7, 1964), new mydate(1, 1, 2000), new mydate(22, 12, 1964);c、數(shù)組元素的默認(rèn)初始化數(shù)組是引用類型,它的元素相當(dāng)于類的成員變量數(shù)組一經(jīng)分配空間,其中的每個元素也被按照成員變量同樣的方式被隱式初始化,比如在下例中,整型數(shù)組a中的元素并未顯示的初始化,此時所有元素系統(tǒng)默認(rèn)賦值為0。public class test public static void main(string argv)int a= new int5;system.out.println(a3); (1) 數(shù)組元素的引用定

5、義并用運(yùn)算符new為之分配空間后,才可以引用數(shù)組中的每個元素數(shù)組元素的引用方式:arraynameindexindex為數(shù)組元素下標(biāo),可以是整型常量或整型表達(dá)式,如a3 , bi , c6*i數(shù)組元素下標(biāo)從0開始;長度為n的數(shù)組合法下標(biāo)取值范圍:0 n-1每個數(shù)組都有一個屬性length指明它的長度,例如a.length 指明數(shù)組a的長度(元素個數(shù))知識點(diǎn)三:多維數(shù)組定義多維數(shù)組變量時,將每維數(shù)放在各自的方括號中,例:下面語句聲明了一個名為twod的二維數(shù)組變量 int twod = new int45;該語句分配一個4行5列數(shù)組并把它分配給數(shù)組twod當(dāng)給多維數(shù)組分配內(nèi)存時,只需指定第一個(

6、即最左邊)維數(shù)的內(nèi)存即可,可單獨(dú)地對余下的維數(shù)進(jìn)行內(nèi)存分配(2)多維數(shù)組舉例例如,int twod = new int4;在數(shù)組twod被定義時給它的第一個維數(shù)分配內(nèi)存,對第二維則是手工分配內(nèi)存 int t1 = new int 4; /非法twod0 = new int5; twod1 = new int5; twod2 = new int5; twod3 = new int5; (3)java中多維數(shù)組的特殊情況不必須是規(guī)則矩陣形式int tt = new int4; tt0 = new int2; tt1 = new int4;tt2 = new int6; tt3 = new int8

7、;知識點(diǎn)四:字符串string類字符串:字符串是由字符組成的序列,用雙引號括起來的一個字符序列構(gòu)成了字符串java的字符串常量通常是作為string類的對象存在,有專門的屬性來規(guī)定它的長度。string 類的定義和實(shí)例的生成(三種方式) string str; str=“this is a string” 或者 str=new string(“this is a string”);或 string str1=new string(“hello”);或 string str2=“aaaa”;對字符串的操作,兩個字符串str1, str2str1 = str2; 指兩個引用指向同一個地址str1.

8、equals(str2); 判斷兩個字符串內(nèi)容是否相等string astr=helloworld!;string bstr=helloworld!;if(astr.equals(bstr) / 取值為真if(astr=bstr) / 取值為真,練習(xí)題:1、 若已有數(shù)組說明“char s;”,則創(chuàng)建20個字符的數(shù)組的語句是 。2、在java中定義一個字符串類型的變量str的語句是: ,定義一個具有10個元素的整型數(shù)組a的語句是: 。3、下列程序的輸出結(jié)果是 。 public class test public static void main(string args) int a=1,2,3,

9、4; for(int i=a.length-1;i=0;i-) system.out.print(ai+ ); 4、 當(dāng)聲明一個數(shù)組int arr = new int5; 時,這代表這個數(shù)組所保存的變量類型是 ,數(shù)組名是 ,數(shù)組的大小為 ,數(shù)組元素下標(biāo)的使用范圍是 。5、 下列關(guān)于數(shù)組的定義形式,哪個是正確的?( )aint c=new char10; bint 3=new int2 ;cint a; a=new int; dchar b ; b=new char80;6、 執(zhí)行string s=new string10;語句后,哪些結(jié)論是正確的?( )as0 為 未定義 bs.length

10、為10cs9 為 null ds10 為 7、 給出下面代碼,關(guān)于該程序以下哪個說法是正確的?( )public class person static int arr = new int5;public static void main(string a) system.out.println(arr0); a、編譯時將產(chǎn)生錯誤b、編譯時正確,運(yùn)行時將產(chǎn)生錯誤c、輸出零 d、輸出空8、 以下程序的輸出結(jié)果是 。class stringtest public static void main(string args) string str1 = java; string str2 = java

11、; string str3 = new string(java); boolean result1 = str1.equals(str2); boolean result2 = str2.equals(str3); boolean result3 = str1=str2; boolean result4 = str2=str3; system.out.println(result1+,+result2+,+result3+,+result4); 9、 下列程序段執(zhí)行后的結(jié)果是( )。 string s = new string(abcdefg);for (int i=0; is.length(

12、); i+=2) system.out.print(s.charat(i); a) aceg b) aceg c) abcdefg d) abcd 10、 已知如下定義:string s = story; 下面哪個語句不是合法的( )a、s += books;b、s = s + 100;c、int len = s.length;d、string t = s + “abc”;11、下列數(shù)組定義及賦值,錯誤的是( )a. int intarray=new int2;b. int intarray=new int3;intarray1=1;intarray2=2;intarray3=3;c. float b=1.2, 2.1, 3.5, 4.3, 5.6;d. int a =new int2;a0=new int4;a1=new int23;12、若string s = hello; string t =

溫馨提示

  • 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

提交評論