java基礎(chǔ)---------數(shù)組與可變個(gè)數(shù)形參

一、重點(diǎn)知識(shí)

double float小數(shù)在計(jì)算機(jī)中計(jì)算取得的都是近似值,所以存在精度問(wèn)題

增強(qiáng)for循環(huán)
專門用于獲取數(shù)組和集合中的元素
只能取值,不能賦值,因?yàn)樗Z(yǔ)法層面上操作不到下標(biāo)
代碼示例
public class For_eachTest {
public static void main(String[] args) {
????String [] name = new String []{"name","cao","cao","yu"};
????//for -each循環(huán)(增強(qiáng)循環(huán))
????for(String e : name){
????????????System.out.println(e);
????????????}
????????}
????????}

for循環(huán)使用中找不出來(lái)規(guī)律就二倍看看有沒(méi)有規(guī)律

最后一次警告char = ‘16’ 是錯(cuò)誤的,一次只能寫一個(gè)字符,16算兩個(gè)字符了

存在堆里面的數(shù)據(jù)都是有默認(rèn)值的

記得數(shù)組得動(dòng)態(tài)初始化也是可以先定義再賦值的

局部變量必須先賦值再使用,即便是引用數(shù)據(jù)類型得局部變量也是如此

參數(shù)列表里面把數(shù)組作為形參,格式 int [] arr 。
int [] 起到的是聲明arr的類型的作用int []作為一個(gè)整體? 表示數(shù)組數(shù)據(jù)類型

程序一進(jìn)來(lái)先找主函數(shù),執(zhí)行主函數(shù)里面的內(nèi)容,主函數(shù)里面聲明的變量會(huì)在主函數(shù)結(jié)束后才被釋放內(nèi)存空空間。也就是 ===主函數(shù)結(jié)束后里面的局部變量才會(huì)被銷毀

堆里面的結(jié)構(gòu)不是及時(shí)銷毀的,得靠自動(dòng)垃圾回收機(jī)制得判斷

二、重點(diǎn)問(wèn)題

可變形參的使用 -----把它當(dāng)作一個(gè)數(shù)組來(lái)使用

代碼示例
public void sum(int ... num){
? int sum = 0;
? ? ?for(int i =0 ;i < num.length;i++){
? ? ? ? sum += num[i];
? ? }
}

//把它當(dāng)作一個(gè)數(shù)組來(lái)使用,他也可以使用下標(biāo)

注意:可變參數(shù)一定要寫在最后?

Boolean n2 = new Boolean("true");為什么可以這樣寫

在構(gòu)造類得轉(zhuǎn)換基本數(shù)據(jù)類型時(shí)時(shí)如果調(diào)用方法形參為String型,則賦值使用字符串格式,他自動(dòng)會(huì)把數(shù)據(jù)從雙引號(hào)當(dāng)中抽取出來(lái)

三、課堂知識(shí)

3.1、數(shù)組遍歷得兩種寫法

使用for循環(huán)
遍歷:依次訪問(wèn),從第一個(gè)元素,訪問(wèn)到最后一個(gè)元素。

1、使用循環(huán)來(lái)遍歷數(shù)組

for(int i = 0;i < arr.length; i++){

arr[i] = i;//賦值

System.out.println(arr[i]);//獲取數(shù)值

}

for-each循環(huán)

for-each循環(huán):【擴(kuò)展】
增強(qiáng)for循環(huán):JDK1.5的版本出現(xiàn)的。
特定的用法:專門用于獲取數(shù)組中的每一個(gè)元素的值。
語(yǔ)法結(jié)構(gòu):
for(數(shù)據(jù)類型 變量名 : 數(shù)組名){
? ? System.out.println(變量名);
}

工作原理:
for(int e :arr){
? ? System.out.println(e);
}

int e,定義變量e,
依次獲取數(shù)組的元素,賦值給e
注意點(diǎn):
? ? A:for-each只能獲取數(shù)組的數(shù)據(jù),但是不能給數(shù)組進(jìn)行賦值

? ? B:for-each,在代碼這個(gè)層面,不能操作下標(biāo)。

3.2、數(shù)組中的默認(rèn)值

數(shù)組的默認(rèn)值,就是數(shù)組創(chuàng)建后,里面存儲(chǔ)的默認(rèn)的數(shù)據(jù)。

數(shù)組的引用存在棧內(nèi)存中,數(shù)組本身存在堆內(nèi)存中。

數(shù)組創(chuàng)建完,就有默認(rèn)的數(shù)據(jù)了。

數(shù)組中存儲(chǔ)的默認(rèn)值:

數(shù)組中是有默認(rèn)值的

整數(shù):0? ? ?小數(shù):0.0? ? ?字符:\u0000????布爾:false????其他:null

3.3、創(chuàng)建數(shù)組的其他語(yǔ)法

動(dòng)態(tài)創(chuàng)建數(shù)組:先創(chuàng)建數(shù)組,然后再根據(jù)下標(biāo)一個(gè)一個(gè)存儲(chǔ)數(shù)據(jù)。
A:先聲明,再創(chuàng)建(分配內(nèi)存空間)
數(shù)據(jù)類型 [] 數(shù)組名;
數(shù)組名 = new 數(shù)據(jù)類型[長(zhǎng)度];

B:聲明并創(chuàng)建
數(shù)據(jù)類型 [] 數(shù)組名 = new 數(shù)據(jù)類型[長(zhǎng)度];
數(shù)據(jù)類型? 數(shù)組名[] = new 數(shù)據(jù)類型[長(zhǎng)度];

//靜態(tài)創(chuàng)建數(shù)組:聲明,創(chuàng)建,賦值一起寫完。
C:聲明,創(chuàng)建,并賦值
數(shù)據(jù)類型[] 數(shù)組名 = {數(shù)值1,數(shù)值2,數(shù)值3,數(shù)值4.。。。};
//=左邊聲明數(shù)組,=右邊,會(huì)先根據(jù){}中數(shù)據(jù)的個(gè)數(shù),然后再將{}中數(shù)據(jù),按照順序存儲(chǔ)進(jìn)去。

完成了幾件事:

1.先聲明:int[] c

2.根據(jù){}中數(shù)組值的個(gè)數(shù),開辟堆內(nèi)存

3.將{}中的數(shù)組值,依次按照順序存入數(shù)組中

D:聲明,創(chuàng)建,并賦值

數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[]{數(shù)值1,數(shù)值2,數(shù)值3,數(shù)值4.。。。}

3.4、數(shù)組的地址傳遞

Java中的數(shù)據(jù)分為兩大類:

基本類型:4類8種

操作的都是數(shù)值本身

引用類型:數(shù)組

操作的是地址

基本類型進(jìn)行賦值:數(shù)值

引用類型進(jìn)行賦值:地址

3.5、數(shù)組作為參數(shù)

數(shù)組是引用類型:傳遞的是地址。就是參數(shù)也會(huì)指向這塊內(nèi)存。當(dāng)方法結(jié)束的時(shí)候,參數(shù)就銷毀了
class Test5ArrayMethod
{
//設(shè)計(jì)一個(gè)方法,用于打印數(shù)組
public static void printArray(int[] arr){
//int[] arr = a;a的地址給了arr,那么arr和a指向同一塊內(nèi)存的數(shù)組
for(int e : arr){
System.out.print(e +"\t");
}
System.out.println();
}
public static void main(String[] args)
{
int[] a = {1,2,3,4,5};
//設(shè)計(jì)一個(gè)方法,用于打印數(shù)組
printArray(a);//將a的地址,傳遞給arr

}
}

3.6 可變參數(shù)

概念:一個(gè)方法可以接收的參數(shù)的數(shù)量不定(0-多個(gè)),但是類型固定。

語(yǔ)法:數(shù)據(jù)類型 ... 參數(shù)名,可變參數(shù)在方法中當(dāng)數(shù)組使用。

注意事項(xiàng):

1、如果參數(shù)列表中,除了可變參數(shù)還有其他的參數(shù),可變參數(shù)要寫在整個(gè)參數(shù)列表的最后。

? ? 2、一個(gè)方法最多只能有一個(gè)可變參數(shù)。

class Test6Array
{
//求一組int類型的數(shù)據(jù)的和
public static void getSum(int ... nums ){
int sum = 0;
for(int i = 0;i <nums.length;i++){
sum += nums[i];
}
System.out.println("結(jié)果:" + sum);
}
public static void main(String[] args)
{
/*
可變參數(shù):同一種類型的參數(shù),類型固定的,但是個(gè)數(shù)不固定。
語(yǔ)法的支持:
數(shù)據(jù)類型 ... 參數(shù)名
可變參數(shù),類型固定,個(gè)數(shù)可變。0-多個(gè)
在方法中可變參數(shù)當(dāng)數(shù)組使用
*/
getSum(1,2,3);
getSum(1,2,3,4,5,6,7,8,9,10);

}

}

3.7 數(shù)組的排序

排序:數(shù)組是存儲(chǔ)一組數(shù)據(jù),而且這些數(shù)據(jù)是有順序的。但是數(shù)值本身可能是無(wú)序的。通過(guò)算法來(lái)實(shí)現(xiàn)給數(shù)組進(jìn)行排序,升序(數(shù)值從小到大),降序(數(shù)值從大到小)。

1冒泡排序
1、冒泡排序:Bubble Sort

原理:比較相鄰的兩個(gè)數(shù),將較大的數(shù),向后移動(dòng)。
class Test7BubbleSort
{
public static void main(String[] args)
{
int[] arr = {15,23,8,10,7};
for(int i= 1; i<arr.length;i++){//控制輪數(shù):
for(int j = 0;j < arr.length - i;j++){
if(arr[j] > arr[j+1]){
//交換
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評(píng)論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,772評(píng)論 3 422
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,960評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,350評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,549評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,104評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,914評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,089評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,340評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,834評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,106評(píng)論 2 375

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