【自學(xué)java】 語言入門(一)學(xué)前班 基礎(chǔ)語法

(當(dāng)年0基礎(chǔ)時(shí),學(xué)習(xí) java 記的筆記剑鞍,還挺有趣的。許多話十分不嚴(yán)謹(jǐn)爽醋!重要內(nèi)容專題重寫蚁署。)

1.1 環(huán)境搭建

1.1.1 java跨平臺(tái)語言

眾所周知,java是跨平臺(tái)語言(在不同操作系統(tǒng)下運(yùn)行)蚂四。*面試題:為什么 java 跨平臺(tái)光戈?為什么說 java 是半解釋型半編譯語言? *

需要先了解一下遂赠,java 程序的 windows下的開發(fā)過程:
1.編寫可閱讀代碼久妆,保存為 .java 文件。
2.jvm編譯.java文件跷睦,生成 .class 文件镇饺。(字節(jié)碼)
3.jvm解釋.class文件,生成 .exe 文件送讲。(機(jī)器碼)
這里提到的 jvm 是 java 虛擬機(jī)奸笤,包含于 jre下(java運(yùn)行環(huán)境),而 jre 又包含于 jdk(java開發(fā)套件)哼鬓。所以监右,java 程序沒有跟操作系統(tǒng)關(guān)聯(lián),不同平臺(tái)對應(yīng)不同的jdk异希,所以 java 程序具有跨平臺(tái)性健盒。類比window下的可執(zhí)行文件.exe,不具備跨平臺(tái)執(zhí)行能力。

經(jīng)常會(huì)有面試將 java 與 c++ 對比:都是面向?qū)ο笳Z言扣癣,但c++是編譯型語言惰帽,直接將代碼編譯成為二進(jìn)制代碼(可以講,exe文件就是二進(jìn)制文件父虑,將exe文件還原成你能看懂的代碼就是逆向工程)该酗,而且C++面向?qū)ο蟛粔颉凹冋保孟癫粚懺陬惱镆部梢詧?zhí)行士嚎。我個(gè)人認(rèn)為java更友好一點(diǎn)呜魄, 雖然速度慢,但沒有指針啊莱衩,不用手動(dòng)垃圾回收釋放內(nèi)存啊爵嗅,沒有奇怪的功能(goto、自動(dòng)強(qiáng)制類型轉(zhuǎn)換)笨蚁,還具有平臺(tái)無關(guān)性睹晒。

其他:
java 寫一個(gè) helloworld 要比其他語言費(fèi)勁多了, 好幾行括细!好像有一本很出名的書寫道:“java語言寫起來的復(fù)雜程度伪很,證明了這種語言的設(shè)計(jì)缺陷。世界上流行的語言都會(huì)向更快的方向發(fā)展勒极,(一些腳本語言是掰,python ruby )…”這我還是不敢茍同的虑鼎,java語言這種純面向?qū)ο笕枘洌瑢τ诠こ躺蟻碚f是非常嚴(yán)謹(jǐn)?shù)木⒆埃髮W(xué)就知道了晴竞。

1.1.2 環(huán)境搭建與相關(guān)名詞

安裝jdk :Oracle官網(wǎng)
環(huán)境變量的配置:略院峡, 參考百度(win10 , 只需要配置兩個(gè)環(huán)境變量了萎庭。 環(huán)境變量只是添加一些 exe 文件的尋址路徑)

javac.exe -> 編譯器
java.exe -> 解釋器

在完成第一個(gè)程序之前悠夯,需要了解一下dos的基本操作命令:

命令 功能
cd 切換操作目錄
dir 查看目錄下文件
d 切換到盤符d
cls 清屏
cd.. 返回上級目錄
copy 復(fù)制
move 移動(dòng)
del 刪除
ipconfig 查看ip
ping 鏈接某ip

1.1.3 HelloWorld

1烛芬、打開記事本惶洲,鍵入以下代碼:

public class HelloWorld{
  public class void main (String[] args){
      System.out.println(“HelloWorld!”);
  }
}

2抓督、保存為HelloWorld.java杉允,

3邑贴、CMD中切換到該目錄下,執(zhí)行:
javac HelloWorld.java
java HelloWorld

1.1.4 集成開發(fā)環(huán)境IDE

主流:intellij

記事本:Notepad++ 叔磷、Sublime

操作系統(tǒng):CentOS 7 拢驾、Ubuntu 18.4

注:收回我的推薦,idea是真好用改基,誰用誰知道

1.1.5 其他

在《java程序員面試筆試寶典》中繁疤,關(guān)于main方法面試題 :如何在main 方法前輸出某語句 ?
其實(shí), main 就是這個(gè)程序的入口 稠腊, 凡是程序總要有個(gè)入口躁染。 public static void main 不能改動(dòng),String[] args 就是執(zhí)行 java XXXX ...(參數(shù))...后面的參數(shù) 架忌。至于加什么其他關(guān)鍵字吞彤,synchronized 、final 鳖昌、加 static 塊都是可以的备畦。

1.2 變量與數(shù)據(jù)類型

1.2.1 命名規(guī)則

文件命名規(guī)則:

類名首字母大寫;運(yùn)行類名與文件名相同许昨。如果public修飾懂盐,必須相同。所以糕档,一個(gè).java文件中只能有一個(gè)public修飾的類莉恼。

變量命名規(guī)則:

首字母小寫,使用駝峰命名法速那,望文生義俐银。避免java內(nèi)部的關(guān)鍵字與標(biāo)識(shí)符。
例如:int a; int a=1,b,c,d;同時(shí)聲明多個(gè)變量端仰,并初始化 a捶惜。

注:這里面有一個(gè)有趣的點(diǎn),聲明一個(gè)變量a 荔烧,是否分配內(nèi)存空間吱七?
答:對于基本類型變量聲明卻沒有賦值,jvm是沒有分配內(nèi)存空間鹤竭,而是在賦值的時(shí)候分配內(nèi)存空間踊餐。而引用類型變量是一個(gè)地址指向了堆內(nèi)存(即分配了一個(gè)地址空間),new肯定是開辟了內(nèi)存空間的臀稚。(網(wǎng)上也有其他答案吝岭,我比較認(rèn)同這個(gè))

1.2.2 變量

1、 變量 : 簡言之就是來標(biāo)識(shí)一塊內(nèi)存吧寺,代表內(nèi)存的一塊空間窜管。不同數(shù)據(jù)類型,需求的內(nèi)存空間大小不同稚机。

例如 a = a+10; //取出a內(nèi)存空間的值+10 后再放入a內(nèi)存空間幕帆。

2、變量可以重新賦值抒钱,不能重復(fù)定義蜓肆。

3颜凯、變量的作用域 :{} 表示作用域,變量只在最近的作用域內(nèi)有效仗扬。

4症概、使用變量前必須初始化并且賦值。

1.2.3 計(jì)算機(jī)基礎(chǔ) : 進(jìn)制簡介

1早芭、
十進(jìn)制(0-9):正常輸入即可
八進(jìn)制(0-7):數(shù)字開頭0
十六進(jìn)制(0-9 ABCDEF):數(shù)字開頭0X
二進(jìn)制(0,1):數(shù)字開頭0B

2彼城、x進(jìn)制,即逢x進(jìn)1

3退个、不同進(jìn)制轉(zhuǎn)換募壕,通用思路:借助十進(jìn)制橋梁 (逐位*10^n;除2取余數(shù))

4语盈、java進(jìn)制:采用二進(jìn)制補(bǔ)碼方式表示數(shù)字舱馅。(32位)
補(bǔ)碼:想表示負(fù)數(shù),相當(dāng)于在數(shù)軸上將值域折半左移刀荒。原理:1打頭二進(jìn)制數(shù)字代嗤,表示負(fù)數(shù),即第一位位符號位(注意1000表示 -8)缠借。轉(zhuǎn)換規(guī)則:逐位取反加1 干毅。

范圍:-2^(n-1) ~ 2^(n-1)-1

推理得出:int的最大值+1 ,變成了int的最小值泼返。

1.2.4 數(shù)據(jù)類型

1硝逢、 知識(shí)儲(chǔ)備:

A B
1byte字節(jié) 8bit 位
1kb 1024 byte
1m 1024 kb
1gb 1024m
1tb 1024gb

2、八種數(shù)據(jù)類型:

類型 空間 范圍 其他
byte 1 byte -128 ~ 127 8位
short 2 byte -32768 ~ 32767 不使用
int 4 byte -2147483648 ~ 2147483647 整型
long 8 byte 太長 64位 長整型
float 4 byte 3.402823e+38 ~ 1.401298e-45 浮點(diǎn)
double 8 byte 1.797693e+308~ 4.9000000e-324 雙精度浮點(diǎn)
char 2 byte 0~65535 字符(無符號)
boolean 1 byte --- 邏輯變量TF

詳情見數(shù)據(jù)類型專題绅喉。

1.2.5 其他

1.java中整數(shù)**默認(rèn)int **渠鸽,小數(shù)默認(rèn)double
2.long a = 100000000000L;//結(jié)尾加L
3.計(jì)算機(jī)中浮點(diǎn)數(shù)不能做精確運(yùn)算,精確運(yùn)算用其他方法霹疫。

1.2.6 類型轉(zhuǎn)換

小范圍到大范圍自動(dòng)完成轉(zhuǎn)換拱绑,大范圍到小范圍強(qiáng)制類型轉(zhuǎn)換综芥,并丟失精度 丽蝎。 例如(int)10.5

1.3 基本語法

1.3.1 運(yùn)算符

1、常規(guī)運(yùn)算符

\+ 加    兩數(shù) 相加
\+ 連接符  字符串之間連接
- 減 相減
* 乘 乘積
/ 除 相除 整數(shù)相除 取整數(shù)部分
% 取模    整數(shù)相除取整數(shù)膀藐、浮點(diǎn)相除取浮點(diǎn)
++ 自增   區(qū)別 a++ 與++a
-- 自減   同上
< 小于    返回布爾
\> 大于   返回布爾
== 等于   返回布爾
= 賦值    右邊賦值給左邊
&& 與    返回布爾
|| 或    返回布爾
! 非 返回布爾
+=  a=a+5 表示為 a+=5

注意: 如果a = 10 , 表達(dá)式 a++ 值 10屠阻;表達(dá)式 ++a 值 11。不論如何额各,此條語句過后a都自增国觉,a的值是 11 。

2虾啦、未介紹運(yùn)算符:<=小等于麻诀、 >=大等于痕寓、!= 不等于、(條件表達(dá)式)蝇闭?(真呻率,結(jié)果1):(假,結(jié)果2);條件運(yùn)算符呻引,也叫三元運(yùn)算符礼仗。

邏輯運(yùn)算符注意事項(xiàng):注意"短路"操作!
例如,&&的第一條件為F逻悠,則第二條件 (表達(dá)式)不執(zhí)行元践!同理,|| 童谒。

3 单旁、移位運(yùn)算:

>> 有符號右移 , >>>無符號右移
int a = 10; a = a>>2 ;表示 10的二進(jìn)制1010右移兩位,0010饥伊,a值為2 慎恒。 右移一位相當(dāng)于除以2取整 。

符號問題:對于負(fù)數(shù)撵渡,>> 運(yùn)算補(bǔ)位補(bǔ)1 融柬。>>>無符號移位 : 補(bǔ)0。<<左移趋距,末位均補(bǔ)0粒氧。

中位數(shù)寫法:a > b , mid = b + (a - b)>>1;

4、很少使用的位運(yùn)算符:& ^ | 位與节腐、 異或 外盯、位非 ,用于一些算法題的特殊場合翼雀。注意異或這是一個(gè)可逆操作饱苟。

1.3.2 條件語句

條件語句屬于程序的分支結(jié)構(gòu)。程序運(yùn)行有三種結(jié)構(gòu):順序結(jié)構(gòu)狼渊、分支結(jié)構(gòu)箱熬、循環(huán)結(jié)構(gòu)。

if(條件1){
  code;
}else if(條件2){
  code;
}else{
  code;
}

注 :
1狈邑、如果代碼只有一行城须,可以不寫{}。
2米苹、If 與三元運(yùn)算符的轉(zhuǎn)換問題:三元運(yùn)算符糕伐,必須有結(jié)果返回。而 If 只為分支語句 蘸嘶, 可以沒結(jié)果良瞧。也就是說陪汽,if可以控制流程,三目運(yùn)算符要有返回值褥蚯,所以其常在 return 使用掩缓。

分支結(jié)構(gòu)中的 Switch 選擇結(jié)構(gòu)

switch(表達(dá)式)
{
  case 1 :
    ....;
    break;
  case 2 :
    ....;
    break;
  default:
    ...;
    break;
}

break關(guān)鍵字:跳出swtich 大括號;如果case中沒有break遵岩,就會(huì)順序執(zhí)行下一個(gè)case你辣。
default 最多只能出現(xiàn)一次,可以出現(xiàn)在和 case 并列的任意位置尘执,無論如何都會(huì)執(zhí)行default 代碼舍哄。

面試題:
1.switch中允許的數(shù)據(jù)類型:byte,short誊锭,int表悬,char,enum(枚舉)丧靡,String
2.switch的簡化:case執(zhí)行結(jié)果相同蟆沫,語句可以省略,只寫一次温治。

case 1: // 穿透性饭庞,沒遇到break,往下執(zhí)行熬荆。
case 2:
  System.out.println(“ccc”);
  break;

1.3.3 循環(huán)語句

1舟山、for循環(huán):for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體;}

執(zhí)行順序:執(zhí)行表達(dá)式1,判斷表達(dá)式2卤恳,t就執(zhí)行循環(huán)體累盗,執(zhí)行表達(dá)式3,判斷表達(dá)式2...開始循環(huán)突琳。
常用格式:for(初始化若债;條件;增量){循環(huán)體}

注:
continue:結(jié)束本次循環(huán)拆融,執(zhí)行下一次(跳出循環(huán)體蠢琳,執(zhí)行第三個(gè)表達(dá)式)
break:結(jié)束整個(gè)循環(huán)

注:
1)雙重for和嵌套for,能不用就少用 冠息,復(fù)雜度過高
2)break 在多重循環(huán)中挪凑,只能先跳出最近的for結(jié)構(gòu)孕索。
3)如何跳出最外層for逛艰,利用了label 標(biāo)簽 outer:

outer:for(...){
  for(...){
    break outer;
  }
} //使用不多

4)foreach 用的很多,與迭代器一起說搞旭。

2散怖、while循環(huán):while(條件){循環(huán)體}

執(zhí)行順序:條件真菇绵,執(zhí)行循環(huán)體;假镇眷,退出循環(huán)咬最。

常用結(jié)構(gòu):
while(n!=0){...}
while(true){...}

注:
1)如果用 do-while 循環(huán)體, 循環(huán)體最少都要執(zhí)行一次欠动。
2)無限循環(huán)(死循環(huán)):
while(true){}
for(;true;){}

1.4 數(shù)組

1.4.1 基本概念

數(shù)組:存數(shù)據(jù)用的“容器”永乌,一堆相同類型數(shù)據(jù)的集合

定義:數(shù)據(jù)類型[] 變量名=new 數(shù)據(jù)類型[存儲(chǔ)大小];

數(shù)組編號:index 索引 具伍,也稱下標(biāo)

訪問數(shù)組元素:數(shù)組名[索引]

例如:

int[] scores = {99,67,81} ;
System.out.println (score[0]); // 得到元素99

數(shù)組在內(nèi)存中原理:
初始化時(shí)翅雏,scores 指向了一個(gè)連續(xù)堆內(nèi)存空間, scores 含有這個(gè)數(shù)組的地址人芽,我們稱為“scores 引用了這個(gè)數(shù)組”望几。所以數(shù)組是引用數(shù)據(jù)類型不是值數(shù)據(jù)類型。而且數(shù)據(jù)開辟的是堆內(nèi)存萤厅,所以需要 jvm 垃圾回收機(jī)制橄抹,來收回空間。在強(qiáng)調(diào)一下惕味,數(shù)組是開辟了一塊連續(xù)內(nèi)存楼誓,在 java 中是屬于引用數(shù)據(jù)類型,這點(diǎn)可能有別于其他語言 名挥, 如 golang慌随。

數(shù)組屬性:數(shù)組的長度 = 數(shù)組名.length
數(shù)組遍歷:索引方式取出所有元素,for 循環(huán)躺同。

例如:

for(int i = 0 ; i <= scores.length ; i++){
  System.out.println(scores[i]);
}

數(shù)組很重要的幾個(gè)點(diǎn):
1阁猜、數(shù)組是堆內(nèi)存中一塊連續(xù)的內(nèi)存空間。
2蹋艺、因?yàn)槠溥B續(xù)性剃袍,對數(shù)組元素的查找速度是O(1)。
3捎谨、聲明變量是個(gè)引用民效,指向首地址。

1.4.2 數(shù)組常見異常

1.索引越界異常
2.空指針異常:不合適地把數(shù)組名存放的地址釋放
雖然 java 中聲稱沒有指針涛救,其實(shí)在數(shù)組處理中是有指針?biāo)枷氲奈沸稀Mㄟ^函數(shù)的形參指向?qū)崊⒌耐粋€(gè)數(shù)組,所以對數(shù)組操作的方法不需要返回值检吆,直接操作原數(shù)組舒萎。

1.4.3 數(shù)組的排序

排序三種基本方法:
1)選擇排序:
從第一個(gè)元素開始,每個(gè)元素與后面的元素比較蹭沛,選出最小的方法在前面臂寝。

public static void sort(int[] a) {
        /*選擇排序*/
        int i,j,t;
        for ( i = 0; i < a.length; i++) {
            for ( j = i + 1; j < a.length; j++) {
                if (a[j]<a[i]) {
                    t = a[i];
                    a[i] = a[j] ; 
                    a[j] = t ;
                }
            }
        }
    }

2)冒泡排序:
相鄰兩個(gè)元素比較章鲤,最大的放在末位,每次循環(huán)少比較一個(gè)元素咆贬。

public static void sort2(int[] a) {
        /*冒泡排序*/
        int i,j,t;
        for ( i = 0; i < a.length-1; i++) {
            for ( j = 0; j < a.length-1-i; j++) {
                if (a[j] > a[j+1]) {
                    t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                }
            }
        }
    }

3)插入排序:
原理是在一個(gè)排好序的數(shù)列中插入一個(gè)元素败徊。被插入的元素從后往前,逐一與已排好序的最末位元素比較掏缎。

public static void sort3(int[] a ) {
        /*插入排序*/
        int i,j,t;
        for (i = 1;  i < a.length; i++) {
            t = a[i];
            for ( j = i-1; j >= 0 && t < a[j]; j--) {
                a[j+1] = a[j];
            }
            a[j+1] = t ;
        }
    }

注:
數(shù)組中提供的排序API: Arrays.sort(a);
其他排序方法:希爾排序皱蹦,快速排序等
效率問題:冒泡排序性能比較差,自帶排序算法效率最高眷蜈,插入排序略優(yōu)于冒泡

1.4.4 多維數(shù)組

二維數(shù)組:是由多個(gè)一維數(shù)組組成根欧,每一個(gè)一維數(shù)組都是二維數(shù)組的元素。二維數(shù)組的長度就是其中一維數(shù)組的個(gè)數(shù)端蛆。

定義方式:

  1. 同一維數(shù)組 int[][] arr = new int[2][3];
  2. int[][] = {{1,2},{42,56,8},{10,5,11}}; 這個(gè)二維數(shù)組長度是3 凤粗。

二維數(shù)組的遍歷:嵌套 for 循環(huán)
二維數(shù)組變量名依然存放地址 :遵循引用數(shù)據(jù)類型原則

注:楊輝三角

              int[][] arr = new int[8][8];
        for (int i = 0; i < arr.length; i++) {
            arr[i][0] = 1;
            if (i >= 2 ) {
                for (int j = 1; j < arr[i].length; j++) {
                    arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
                }
            }
            if (i != 0) {
                arr[i][i] = 1 ;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0 ; j <= i ; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }

三維數(shù)組:(略)
同理,由多個(gè)二維數(shù)組組成今豆,長度就是二維數(shù)組的個(gè)數(shù)嫌拣。
例如:a[1][3][1] 第二個(gè)二維數(shù)組中的第四個(gè)一維數(shù)組的第二個(gè)元素。

1.4.5 其他

可以調(diào)用系統(tǒng)函數(shù)進(jìn)行操作呆躲。

  1. 數(shù)組的復(fù)制:
int[] a = {1,2,3,4};
int[] b = new int[a.length];
System.arraycopy(a,0,b,0,a.length);
// 參數(shù):源, 起始點(diǎn), 目的, 拷貝起始點(diǎn), 復(fù)制個(gè)數(shù)
  1. 數(shù)組的擴(kuò)容:
a = Arrays.copyOf(a,2*a.length);//new了一個(gè)新內(nèi)存空間

a 數(shù)組擴(kuò)容兩倍長度异逐,復(fù)制給a。本質(zhì)是 這個(gè)方法新開辟了新的內(nèi)存空間插掂。

  1. 數(shù)組的位置插入一個(gè)元素:a[index] = 123;

  2. String 就是多個(gè) char 組成的一維數(shù)組

  3. Scanner s = new Scanner(System.in); s.nextInt(); 鍵盤讀入

1.5 函數(shù)

1.5.1 綜述

在 java 中灰瞻, 函數(shù)也叫方法!
(在其他語言如 golang 中 函數(shù)和方法是有區(qū)別的8ㄉ)

函數(shù)存在的意義:
重復(fù)利用一段代碼 酝润。 每次使用的時(shí)候替換相應(yīng)變量(參數(shù))即可,達(dá)到減少代碼量重復(fù)使用的目的璃弄。

1.5.2 定義

1要销、 格式

修飾符 返回值類型 方法名(參數(shù)類型 參數(shù)名){
  內(nèi)容;return夏块;
}

例如:public static int XXX(int a,double b){}

2疏咐、 調(diào)用:
方法名(傳遞參數(shù));

注:

  1. 方法定義參數(shù)是形參脐供,方法調(diào)用是實(shí)參
  2. 通常方法名要小寫浑塞,在 main下面并列位置
  3. 函數(shù)遇到 return 就結(jié)束了,不會(huì)執(zhí)行后面的代碼

1.5.3 內(nèi)存空間與參數(shù)傳遞

1政己、 簡述 :內(nèi)存分為堆內(nèi)存和棧內(nèi)存酌壕,堆內(nèi)存通過垃圾回收器 gc 回收空間。棧內(nèi)存,先進(jìn)后出自動(dòng)釋放空間仅孩。即方法結(jié)束托猩,內(nèi)存自動(dòng)清理印蓖。

注:jvm 內(nèi)存空間劃分:

  1. 程序計(jì)數(shù)器 : 線程私有辽慕,cpu 切換時(shí)候找到上次執(zhí)行位置
  2. 本地方法棧 : c++調(diào)用本地方法
  3. 虛擬機(jī)棧:所有方法運(yùn)行時(shí)進(jìn)入地方(main方法 壓棧運(yùn)行)
  4. 虛擬機(jī)堆:儲(chǔ)存 容器 和 對象,實(shí)際存放對象的內(nèi)存空間赦肃。
  5. 方法區(qū):存放類信息和常量池

2 溅蛉、參數(shù)傳遞問題:
函數(shù)定義時(shí),接受的傳遞參數(shù)叫形式參數(shù)他宛。main方法調(diào)用函數(shù)的時(shí)候船侧,傳遞的參數(shù)叫做實(shí)際參數(shù)。形式參數(shù)只在函數(shù)內(nèi)部起作用厅各,即使與實(shí)參叫了同樣的名字也不會(huì)改變main中的實(shí)參(只是指的是 基本數(shù)據(jù)類型镜撩, 也就是值類型 )。這個(gè)問題產(chǎn)生的原因是队塘,方法進(jìn)棧內(nèi)存中運(yùn)行袁梗,而參數(shù)變量只是在棧內(nèi)存中開辟了相應(yīng)的內(nèi)存空間,方法調(diào)用完成后出棧憔古,方法內(nèi)部的形參和其他參數(shù)空間隨機(jī)被清理遮怜。

1.5.4 函數(shù)的遞歸

簡言之,在函數(shù)內(nèi)部調(diào)用自己鸿市。舉一個(gè)階乘運(yùn)算例子:

public class Test{
  public static void main(String[] args){
    System.out.println(func(10));
  }
  public static long func(int n){
    if (n==1)
      return 1;
    return func(n-1)*n;
  }
}

遞歸的內(nèi)存空間原理:利用還是棧的先進(jìn)后出原理锯梁,先壓棧存入10,次函數(shù)未結(jié)束未出棧焰情,再執(zhí)行函數(shù)存入9…直到return 1陌凳,得到返回值1,最里層1空間出棧内舟,12冯遂,12*3…直到返回10!谒获。

1.5.5 方法的重載

java 允許在一個(gè)類中定義多個(gè)同名的方法蛤肌,稱為方法的重載 。

要求:變量個(gè)數(shù)不同 批狱,或變量類型不同(用以區(qū)分)裸准,與返回值類型無關(guān)。

重載只看方法名和參數(shù)列表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赔硫,一起剝皮案震驚了整個(gè)濱河市炒俱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖权悟,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砸王,死亡現(xiàn)場離奇詭異,居然都是意外死亡峦阁,警方通過查閱死者的電腦和手機(jī)谦铃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榔昔,“玉大人驹闰,你說我怎么就攤上這事∪龌幔” “怎么了嘹朗?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诵肛。 經(jīng)常有香客問我屹培,道長,這世上最難降的妖魔是什么怔檩? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任褪秀,我火速辦了婚禮,結(jié)果婚禮上珠洗,老公的妹妹穿的比我還像新娘溜歪。我一直安慰自己,他們只是感情好许蓖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布蝴猪。 她就那樣靜靜地躺著,像睡著了一般膊爪。 火紅的嫁衣襯著肌膚如雪自阱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天米酬,我揣著相機(jī)與錄音沛豌,去河邊找鬼。 笑死赃额,一個(gè)胖子當(dāng)著我的面吹牛加派,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跳芳,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼芍锦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了飞盆?” 一聲冷哼從身側(cè)響起娄琉,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤次乓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后孽水,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體票腰,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年女气,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杏慰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡主卫,死狀恐怖逃默,靈堂內(nèi)的尸體忽然破棺而出鹃愤,到底是詐尸還是另有隱情簇搅,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布软吐,位于F島的核電站瘩将,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凹耙。R本人自食惡果不足惜姿现,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肖抱。 院中可真熱鬧备典,春花似錦、人聲如沸意述。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荤崇。三九已至拌屏,卻和暖如春匠襟,著一層夾襖步出監(jiān)牢的瞬間亭敢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工杯瞻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓣戚,地道東北人端圈。 一個(gè)月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像子库,于是被迫代替她去往敵國和親舱权。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型刚照。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一刑巧。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu)喧兄; ...
    朱森閱讀 3,444評論 3 44
  • Win7下如何打開DOS控制臺(tái)? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,598評論 4 12
  • 在C語言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,342評論 0 2
  • DAY 01 JAVA簡述 Java是由SUN公司在1995年推出的一門高級編程語言啊楚,是現(xiàn)今服務(wù)器端的首選編程語言...
    周書達(dá)閱讀 917評論 0 0
  • 感恩所有的遇見吠冤,你在我的生命中出現(xiàn),成為我最信任和認(rèn)可的那個(gè)人恭理。 有的人拯辙,他/她一定會(huì)到,成為我的確定性和安全感的...
    e50539ba93fa閱讀 223評論 0 1