(當(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ù)端蛆。
定義方式:
- 同一維數(shù)組
int[][] arr = new int[2][3];
-
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)行操作呆躲。
- 數(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ù)
- 數(shù)組的擴(kuò)容:
a = Arrays.copyOf(a,2*a.length);//new了一個(gè)新內(nèi)存空間
a 數(shù)組擴(kuò)容兩倍長度异逐,復(fù)制給a。本質(zhì)是 這個(gè)方法新開辟了新的內(nèi)存空間插掂。
數(shù)組的位置插入一個(gè)元素:
a[index] = 123;
String 就是多個(gè) char 組成的一維數(shù)組
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ù));
注:
- 方法定義參數(shù)是形參脐供,方法調(diào)用是實(shí)參
- 通常方法名要小寫浑塞,在 main下面并列位置
- 函數(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)存空間劃分:
- 程序計(jì)數(shù)器 : 線程私有辽慕,cpu 切換時(shí)候找到上次執(zhí)行位置
- 本地方法棧 : c++調(diào)用本地方法
- 虛擬機(jī)棧:所有方法運(yùn)行時(shí)進(jìn)入地方(main方法 壓棧運(yùn)行)
- 虛擬機(jī)堆:儲(chǔ)存 容器 和 對象,實(shí)際存放對象的內(nèi)存空間赦肃。
- 方法區(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ù)列表