目錄:
一棍现、Java 概述
1. Java體系
2. 常用的DOS命令
3. JDK调煎、JRE、跨平臺己肮、Java平臺
4. Java代碼的編寫執(zhí)行過程
5. 注釋
6. 關(guān)鍵字士袄、標(biāo)識符
7. Java中的數(shù)據(jù)類型
8. Java中的常量
二、變量和運算符
1. 變量和計算機(jī)存儲單元
2. 數(shù)據(jù)類型和常量
3. 數(shù)據(jù)類型轉(zhuǎn)換
4. 運算符 和 優(yōu)先級
三谎僻、引用數(shù)據(jù)類型娄柳、流程控制語句 和 數(shù)組
1. 引用數(shù)據(jù)類型
2. 流程控制語句
3. 數(shù)組
四、方法
1. 引入
2. 語法格式
3. 方法調(diào)用
4. 注意事項
5. 方法重載
6. 可變參數(shù)列表
一艘绍、Java 概述
1. Java體系
java是一個體系赤拒,包含:
java語言
運行在各種平臺上的虛擬機(jī)
class字節(jié)碼文件格式
java api(jdk中提供的api),類庫
商業(yè)的或者三方優(yōu)秀開源類庫
Java體系
2. 常用的DOS命令
常用的DOS命令
3. JDK诱鞠、JRE挎挖、跨平臺、Java平臺
- JDK:它是Java開發(fā)運行環(huán)境航夺,在程序員的電腦上當(dāng)然要安裝JDK蕉朵;
JDK = JRE + 開發(fā)工具集(例如Javac編譯工具等)
- JRE:Java Runtime Environment它是Java運行環(huán)境,如果你不需要開發(fā)只需要運行Java程序阳掐,那么你可以安裝JRE
JRE = JVM + JavaSE標(biāo)準(zhǔn)類庫
JDK 包含 JRE 包含 JVM
跨平臺特性
平臺指的是操作系統(tǒng) (Windows始衅,Linux,Mac)缭保。
Java程序可以在任意操作系統(tǒng)上運行汛闸,一次編寫到處運行
實現(xiàn)跨平臺需要依賴Java的虛擬機(jī) JVM (Java Virtual Machine)
為什么可以跨平臺?因為JAVA程序運行依賴虛擬機(jī)艺骂,而針對不同操作系統(tǒng)有不同版本的虛擬機(jī)Java語言是跨平臺的诸老,Java虛擬機(jī)不是跨平臺的
Java平臺
Java SE (桌面程序)標(biāo)準(zhǔn)版
Java EE (Web程序)企業(yè)版
Java ME(移動設(shè)備)微型版 -- Android,IOS興起后就很少使用了
4. Java代碼的編寫執(zhí)行過程
- 源文件:編寫Java源文件(我們也稱之為源代碼文件)彻亲,它的擴(kuò)展名為.java孕锄;
-
編譯:然后通過編譯器把源文件編譯成字節(jié)碼文件,字節(jié)碼文件擴(kuò)展名為.class苞尝;
為什么要編譯?JAVA程序是由虛擬機(jī)運行的,我們所寫的代碼虛擬機(jī)不認(rèn)識宦芦,我們要把自己寫的代碼翻譯成虛擬機(jī)所認(rèn)識的語言 - 運行:最后使用解釋器來運行字節(jié)碼文件宙址。
Java代碼的編寫執(zhí)行過程
5. 注釋
定義:用來解釋和說明程序的文字,注釋是不會被執(zhí)行的
分類:
單行注釋: //注釋內(nèi)容
多行注釋: /注釋內(nèi)容/
文檔注釋: /*注釋內(nèi)容/
注意:
對于單行和多行注釋调卑,被注釋的文字抡砂,不會被JVM解釋執(zhí)行
對于文檔注釋大咱,可以被JDK提供的工具 javadoc 所解析,生成一套以網(wǎng)頁文件形式體現(xiàn)的該程序的說明文檔
單行注釋可以嵌套使用注益,多行注釋不能嵌套使用
6. 關(guān)鍵字碴巾、標(biāo)識符
關(guān)鍵字
定義:是被Java語言賦予特殊含義,具有專門用途的單詞丑搔,比如之前接觸的class厦瓢,int,double均為Java已經(jīng)預(yù)設(shè)好的
特點:字母全部小寫, 注意String不是關(guān)鍵字
注意事項:goto 與 const 是Java中的保留字啤月,即沒有賦予特殊含義卻仍被Java占用的單詞
標(biāo)識符
定義:就是給類,接口,方法,變量等起名字時使用的字符序列
組成規(guī)則(只能包含下面的內(nèi)容,不能有其它內(nèi)容):
英文大小寫字母
數(shù)字字符
$和_
注意事項:
數(shù)字不能開頭
不可以使用關(guān)鍵字
嚴(yán)格區(qū)分大小寫煮仇,不限制長度
起名時,盡量達(dá)到見名知意
標(biāo)識符中常見的命名規(guī)則(這些規(guī)定是不受語法約束的):
包名:多單詞組成時所有字母均小寫谎仲,使用.連接,域名反寫 aaa.bbb.ccc
類名&接口名:大駝峰式 Aaa AaaBbbCcc
變量名&方法名:小駝峰式 aaa aaaBbbCcc
常量名:多單詞組成是所有字母均大寫浙垫,使用_連接 AAA_BBB_CCC
7. Java中的數(shù)據(jù)類型
為什么有數(shù)據(jù)類型?
Java語言是強(qiáng)類型語言,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型
Java中數(shù)據(jù)類型的分類
基本數(shù)據(jù)類型: 基本數(shù)據(jù)類型是Java語言中內(nèi)置的類型郑诺,分別是整數(shù)類型夹姥、小數(shù)類型、字符類型辙诞、布爾類型辙售。這四類基本類型是最簡單、最基礎(chǔ)的類型倘要。
引用數(shù)據(jù)類型: 是強(qiáng)大的數(shù)據(jù)類型圾亏,它是基于基本數(shù)據(jù)類型創(chuàng)建的。
JavaSE中提供了一個超級類庫封拧,類庫中包含了近萬種引用數(shù)據(jù)類型志鹃。
基本類型:類 接口 數(shù)組 枚舉
8. Java中的常量
- 定義:常量就是不變的數(shù)據(jù)量, 在程序執(zhí)行的過程中其值不可以發(fā)生改變
- 整形常量默認(rèn)是 int類型
在Java中,定義長整形數(shù)據(jù)如果值超過int取值范圍后面要+
L
泽西,否則是錯誤的
- 小數(shù)常量默認(rèn)是 double類型
D
后綴為double曹铃,F
后綴為float
定義float類型的數(shù)據(jù)后面要 +f
,否則默認(rèn)是double
常量分類:
整數(shù)類型
十進(jìn)制表示方式:正常數(shù)字。 如 13捧杉、25等
二進(jìn)制表示方式:以
0b(0B)
開頭陕见。 如0b1011 、0B1001十六進(jìn)制表示方式:以
0x(0X)
開頭味抖。 數(shù)字以0-9及A-F組成 如0x23A2评甜、0xa、0x10八進(jìn)制表示方式:以
0
開頭仔涩。 如01忍坷、07、0721小數(shù)類型:如1.0、-3.15佩研、3.168等
布爾類型:true柑肴、false ,注意嚴(yán)格區(qū)分大小寫
字符類型:
如 'a','A', '0', '家'
字符必須使用
''
包裹旬薯,并且其中只能且僅能包含一個字符字符串類型:
字符串String類型是一種引用類型晰骑,我們先了解作為常量類型的使用方式
如 "我愛Java","0123"绊序,""硕舆,"null"
字符串必須使用
""
包裹,任意長度在計算機(jī)內(nèi)政模,有符號數(shù)有3種表示法:原碼岗宣、反碼和補(bǔ)碼。所有數(shù)據(jù)的運算都是采用 補(bǔ)碼 進(jìn)行的
原碼: +8: 0 000 1000 -8: 1 000 1000
就是二進(jìn)制定點表示法淋样,即最高位為符號位耗式,0表示正,1表示負(fù)趁猴,其余位表示數(shù)值的大小刊咳。
- 反碼: +8: 0 000 1000 -8: 1111 0111
正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對其原碼逐位取反儡司,但符號位除外娱挨。
- 補(bǔ)碼: +8: 0 000 1000 -8: 1111 1000
正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加 1
二捕犬、變量和運算符
1. 變量和計算機(jī)存儲單元
變量是內(nèi)存中裝載數(shù)據(jù)的小盒子跷坝,你只能用它來存數(shù)據(jù)和取數(shù)據(jù)
變量名是標(biāo)識符,這說明只要是合法的標(biāo)識符都可以用來做變量名碉碉。
變量使用的注意事項
變量定義后可以不賦值柴钻,使用時再賦值。不賦值不能使用
變量使用時有作用域的限制垢粮。(局部變量和全局變量)
變量不可以重復(fù)定義
計算機(jī)存儲單元
計算機(jī)中儲存和運算的最小單位:一個字節(jié)贴届,也就是1個字節(jié)(byte)
常用儲存單位1B(字節(jié)) = 8bit(比特位)
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
2. 數(shù)據(jù)類型和常量
- 四類八種
byte: 1個字節(jié) : -128~127 (數(shù)據(jù)表示范圍)
short: 2個字節(jié): -32768~32767
int: 4個字節(jié): -2147483648~2147483648
long: 8個字節(jié): -263~263-1
float: 4個字節(jié): -3.403E38~3.403E38
double: 8個字節(jié): -1.798E308~1.798E308
char: 2個字節(jié): 表示一個字符,如('a'蜡吧,'A'毫蚓,'0','家')
boolean: 1個字節(jié): 只有兩個值true與false
- 變量必須要有明確的類型昔善,什么類型的變量裝載什么類型的數(shù)據(jù)
- 數(shù)據(jù)類型范圍從小到大排序:
byte < char < short < int < long < float < double,
布爾類型boolean不能參與類型轉(zhuǎn)換
3. 數(shù)據(jù)類型轉(zhuǎn)換
-
自動類型轉(zhuǎn)換:表示范圍小的數(shù)據(jù)類型轉(zhuǎn)換成范圍大的數(shù)據(jù)類型元潘,這種方式稱為自動類型轉(zhuǎn)換
自動類型轉(zhuǎn)換格式:范圍大的數(shù)據(jù)類型 變量 = 范圍小的數(shù)據(jù)類型值;
默認(rèn)轉(zhuǎn)換:byte、short君仆、char —> int —> long —> float —> double
byte柬批、short啸澡、char 相互之間不轉(zhuǎn)換袖订,他們參與運算首先轉(zhuǎn)換為 int類型
- 強(qiáng)制類型轉(zhuǎn)換:表示范圍大的數(shù)據(jù)類型轉(zhuǎn)換成范圍小的數(shù)據(jù)類型氮帐,這種方式稱為強(qiáng)制類型轉(zhuǎn)換
強(qiáng)制類型轉(zhuǎn)換格式:
范圍小的數(shù)據(jù)類型 變量 = (范圍小的數(shù)據(jù)類型) 范圍大的數(shù)據(jù)類型值;
4. 運算符 和 優(yōu)先級
算數(shù)運算符
+ - * / % ++ --
+: 正號、加洛姑、連接字符串
++上沐,--運算符后置時,先使用變量a原有值參與運算操作楞艾,運算操作完成后参咙,變量a的值自增1或者自減1;
++硫眯,--運算符前置時蕴侧,先將變量a的值自增1或者自減1,然后使用更新后的新值參與運算操作两入。
注意事項:
加法運算符在連接字符串時要注意净宵,只有直接與字符串相加才會轉(zhuǎn)成字符串。
除法當(dāng)兩邊為整數(shù)時裹纳,取整數(shù)部分择葡,舍余數(shù)。當(dāng)其中一邊為浮點型時剃氧,按正常規(guī)則相除敏储。
% 為整除取余符號,小數(shù)取余沒有意義朋鞍。結(jié)果符號與被取余符號相同已添。
整數(shù)做被除數(shù),0不能做除數(shù)滥酥,否則報錯更舞。
小數(shù)做被除數(shù),整除 0 結(jié)果為 Infinity恨狈,對 0 取模結(jié)果為 NaN
賦值運算符
*+= -= = /= %=
- *+=, -=, =, /=這樣的賦值運算符包含了一個 強(qiáng)制轉(zhuǎn)換 的操作疏哗,會將左右兩邊運算后的結(jié)果,強(qiáng)制類型轉(zhuǎn)換后賦值給左邊
- 注意:賦值運算符左邊必須是變量
int n = 10;
byte by = 20;
by += n; // 運算完畢后禾怠,by的值為byte類型30返奉, 相當(dāng)于代碼 by = (byte)(by + n);
比較運算符
== != < > <= >=
- 結(jié)果只能是true 和 false
- 字符間的比較,比較的是其 ASCII 值
- 浮點數(shù) 與 整數(shù) 比較吗氏,只要值相等芽偏,就返回 true
邏輯運算符
&與-----false&true-----False
|或-----false|true-----True
異或-----trueflase-----True
!非-----!true-----Flase
&&短路與-----false&&true-----False
||短路或-----false||true-----True
-
&& : 又叫短路運算符,A&&B弦讽,如果A為假污尉,不會去計算B的值膀哲,直接得到結(jié)果為 false
& : A & B,即使A為假被碗,也會計算B的值某宪。 -
|| : 也是短路運算符,A || B锐朴,如果A為真兴喂,不會去計算B的值,直接得到結(jié)果為 true
| : A | B焚志,即使A為真衣迷,也會計算 B 的值。 - 異或^ : 左右兩邊條件結(jié)果相同酱酬,結(jié)果就為false壶谒,左右兩邊條件結(jié)果不同,結(jié)果就為true膳沽;
三目運算符
- 語法:
布爾表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2
- 當(dāng)布爾表達(dá)式的值為true汗菜,則返回表達(dá)式1的值,否則返回表達(dá)式2的值
運算符優(yōu)先級
優(yōu)先級 描述 運算符
1 括號 ()贵少、[]
2 正負(fù)號 +呵俏、-
3 自增自減,非 ++滔灶、--普碎、!
4 乘除,取余 录平、/麻车、%
5 加減 +、-
6 移位運算 <<斗这、>>动猬、>>>
7 大小關(guān)系 >、>=表箭、<赁咙、<=
8 相等關(guān)系 ==、!=
9 按位與 &
10 按位異或 ^
11 按位或 |
12 邏輯與 &&
13 邏輯或 ||
14 條件運算 ?:
15 賦值運算 =免钻、+=彼水、-=、=极舔、/=凤覆、%=
16 位賦值運算 &=、|=拆魏、<<=盯桦、>>=慈俯、>>>=
位運算符
位運算符
位運算是直接對 二進(jìn)制 進(jìn)行運算
在位運算中,操作數(shù)必須是 整型
位異或運算符的特點:
一個數(shù)據(jù)對另一個數(shù)據(jù)位異或兩次拥峦,該數(shù)本身不變贴膘。
任何數(shù)和自身異或,結(jié)果為0
任何數(shù)和0異或事镣,結(jié)果為本身
<< 左移一位步鉴,相當(dāng)于乘以2: 3 << 2 = 12 --> 322=12
>> 右移一位,相當(dāng)于除以2: 3 >> 1 = 1 --> 3/2=1
3 >>> 1 = 1 --> 3/2=1
同樣的運算璃哟,位運算的效率高于算術(shù)運算
三、引用數(shù)據(jù)類型喊递、流程控制語句 和 數(shù)組
1. 引用數(shù)據(jù)類型
引用數(shù)據(jù)類型的變量定義及賦值格式:
數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型();
調(diào)用該類型實例的功能:
變量名.方法名();
Scanner類:
導(dǎo)包:
import java.util.Scanner;
創(chuàng)建對象實例:
Scanner sc = new Scanner(System.in);
調(diào)用方法:
int i = sc.nextInt(); //用來接收控制臺錄入的數(shù)字
String s = sc.next(); //用來接收控制臺錄入的字符串
- 隨機(jī)數(shù)類Random
- 方法簡介
public int nextInt(int maxValue) //產(chǎn)生 [0,maxValue) 范圍的隨機(jī)整數(shù)随闪,包含0,不包含maxValue骚勘;
public double nextDouble() //產(chǎn)生 [0,1) 范圍的隨機(jī)小數(shù)铐伴,包含0.0,不包含1.0俏讹。
Random使用方式:
-
import導(dǎo)包:
import java.util.Random
-
創(chuàng)建實例格式:
Random 變量名 = new Random();
-
賦值:
a = 變量名.nextInt(maxValue);
2. 流程控制語句
1. if
2. if...else...
3. if...else if...else...
4. while
5. for
6. do...while...
7. switch case default break
//case 穿透性:如果多個case條件后面的執(zhí)行語句是一樣的当宴,則該執(zhí)行語句只需書寫一次即可,這是一種簡寫的方式
break語句
作用:跳出所在的循環(huán)體
使用方式
無法單獨使用泽疆,必須將break關(guān)鍵字置于 switch 或 循環(huán)語句 中
運行規(guī)律
不需要判斷任何條件户矢,只要遇到break變直接跳出執(zhí)行后續(xù)代碼。會完全跳出選擇或者循環(huán)結(jié)構(gòu)
只能跳出 最近的 代碼塊殉疼,不能跨越多級代碼塊
標(biāo)記
當(dāng)break語句出現(xiàn)在嵌套循環(huán)中的內(nèi)層循環(huán)時梯浪,它只能跳出內(nèi)層循環(huán),如果想使用break語句跳出外層循環(huán)則需要對外層循環(huán)添加標(biāo)記
使用方式:在外層循環(huán)外的某行前邊使用瓢娜,后邊跟有冒號:的標(biāo)識符挂洛,即定義完畢。
使用時當(dāng)在內(nèi)層循環(huán)使用 break 或 continue 時后邊緊跟之前定義的標(biāo)號即可
itcast: for (i = 1; i <= 9; i++) { // 外層循環(huán),itcast是標(biāo)記
for (j = 1; j <= i; j++) { // 內(nèi)層循環(huán)
if (i > 4) { // 判斷i的值是否大于4
break itcast; // 跳出外層循環(huán)
}
}
continue語句
- 作用:提前結(jié)束本次循環(huán)眠砾,繼續(xù)進(jìn)行下次循環(huán)
- 使用方式: 無法單獨使用虏劲,必須將continue關(guān)鍵字置于 循環(huán)語句 中
- 運行規(guī)律: 不需要判斷任何條件,只要遇到continue變直接跳出本輪循環(huán)進(jìn)行下次循環(huán)
return 褒颈、break柒巫、continue 跳出控制語句的區(qū)別
- break:結(jié)束當(dāng)前整個循環(huán),執(zhí)行當(dāng)前循環(huán)下邊的語句哈肖。
- continue:結(jié)束本次循環(huán)吻育,繼續(xù)進(jìn)行下次循環(huán)
- return: 用于結(jié)束一個方法,返回給上層調(diào)用者淤井,如果位于main方法內(nèi)布疼,相當(dāng)于結(jié)束了程序摊趾。
return也可以用于結(jié)束循環(huán),因為return用于結(jié)束一個方法游两,如果方法中有循環(huán)的話砾层,不管return嵌套于多少層循環(huán)之內(nèi),循環(huán)都結(jié)束贱案。
不會再執(zhí)行循環(huán)后面的語句
3. 數(shù)組
一維數(shù)組
概述:長度不可變肛炮、元素類型相同
一組數(shù)據(jù)的集合,數(shù)組中的每個數(shù)據(jù)被稱作'元素'
在數(shù)組中可以存放'任意類型'的元素
但'同一個數(shù)組'里存放的元素類型必須一致宝踪。
數(shù)組是'恒定, 定長的
數(shù)組的定義1
格式:
數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[長度]; int[] x = new int[100];
使用屬性:
數(shù)組名.length
數(shù)組的最小索引是
0
, 最大索引是數(shù)組.length-1
數(shù)組的定義2
數(shù)組初始化:在定義數(shù)組時只指定數(shù)組的長度侨糟,由系統(tǒng)自動為元素 賦初值 的方式稱作動態(tài)初始化。
格式:
數(shù)據(jù)類型[] 數(shù)組名 = new 類型[長度]; int[] arr = new int[4];
類型[] 數(shù)組名 = new 類型[]{元素瘩燥,元素秕重,……}; int[] arr = new int[]{1,2,3,4};
類型[] 數(shù)組名 = {元素,元素厉膀,元素溶耘,……}; int[] arr = { 1, 2, 3, 4 };
JVM內(nèi)存劃分
- 寄存器:內(nèi)存和CUP之間
- 本地方法棧: JVM調(diào)用了系統(tǒng)中的功能
- 方法和數(shù)據(jù)共享: 運行時期class文件進(jìn)入的地方
- 方法棧:所有的方法運行的時候進(jìn)入內(nèi)存
- 堆:存儲的是容器和對象
數(shù)組中常見的異常
- 數(shù)組的索引越界異常
- 空指針異常
二維數(shù)組
- 定義格式
//第一種定義格式
//相當(dāng)于定義了一個3*4的二維數(shù)組,即二維數(shù)組的長度為3服鹅,二維數(shù)組中的每個元素又是一個長度為4的數(shù)組
- int[][] arr = new int[3][4];//不推薦
//第二種定義格式
//第二種方式和第一種類似凳兵,只是數(shù)組中每個元素的長度不確定,必須要new:arr[0] = new int[5];...
int[][] arr = new int[3][];
//第三種定義格式
//二維數(shù)組中定義了三個元素,這三個元素都是數(shù)組企软,分別為{1,2}庐扫、{3,4,5,6}、{7,8,9}
int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
二維數(shù)組內(nèi)存
- 比如:
int[][] arr = new int[3][2];
- 外層數(shù)組長在內(nèi)存開辟連續(xù)的3個大的內(nèi)存空間,每一個內(nèi)存空間都對應(yīng)的有地址值
- 每一個大內(nèi)存空間里又開辟連續(xù)的兩個小的內(nèi)存空間.
打印數(shù)組
//打印一維數(shù)組五種方法
Arrays.toString(arr)
for(int n: arr)
System.out.println(n+", ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ", ");
}
System.out.println(Arrays.asList(arr));
Arrays.asList(arr).stream().forEach(s -> System.out.println(s));//java8
//打印二維數(shù)組三種
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println(); //換行
}
for(int[] a:arr) {
for(int b:a){
System.out.print(b+" ");
}
System.out.println();//換行
}
for(int i=0;i<arr.length;i++)
System.out.println(Arrays.toString(arr[i]));
//打印三維數(shù)組三種
int [][][] arrays=new int[4][3][2];//在椑骄耄空間創(chuàng)建一個空間
for(int i=0;i<arrays.length;i++) {
for(int i1=0;i1<arrays[i].length;i1++) {
for(int i2=0;i2<arrays[i][i1].length;i2++) {
System.out.print(arrays[i][i1][i2]);
}
System.out.println();//二維換行
}
System.out.println();//三維換行
}
四聚蝶、方法
1. 引入
為什么要有方法:提高代碼的復(fù)用性
什么是方法:完成特定功能的代碼塊
2. 語法格式
- 訪問修飾符:方法允許被訪問的權(quán)限范圍。( public藻治,protected碘勉,private,無修飾符 )
- 返回類型:void桩卵、任何數(shù)據(jù)類型
- 方法名:同變量名規(guī)則验靡。小寫;多個單詞雏节,第一個單詞首字母小寫胜嗓,其余首字母大寫 。myMethod
- 參數(shù)列表:可以省略钩乍。參數(shù)類型 + 參數(shù)名辞州,...
3. 方法調(diào)用
可以使用 對象名 調(diào)用方法,靜態(tài)方法是使用 類名 調(diào)用的
方法包括在類中,調(diào)用時先創(chuàng)建包含方法的類的對象寥粹,然后用對象再去調(diào)用方法变过。
創(chuàng)建對象:類名 對象名 = new 類名();
調(diào)用:對象名.方法名();
4. 注意事項
- 方法參數(shù)是 基本類型 埃元,傳遞的是值。(包含String類型)媚狰,形式參數(shù)的改變對實際參數(shù)不影響
- 方法參數(shù)是 引用類型岛杀,傳遞的是內(nèi)存地址值。(String類型除外)崭孤,形式參數(shù)的改變對實際參數(shù)有影響
- 方法的定義只能放在類里面类嗤,不能嵌套定義。故而不能在主方法內(nèi)直接定義方法
- 方法返回值是void辨宠,方法中可以省略return
- 方法一般在主方法的前面定義
- 調(diào)用方法的時候遗锣,返回值是void, 不能寫在輸出語句中
5. 方法重載
方法的重載:在同一個類中,方法名相同彭羹,參數(shù)列表不同黄伊。與返回值類型無關(guān)。
參數(shù)列表不同:
參數(shù)個數(shù)不同
參數(shù)類型不同
參數(shù)的順序不同(算重載,但是在開發(fā)中不用)派殷,注意:必須是不同數(shù)據(jù)類型。相同類型不存在順序不同
方法重載注意事項
重載和參數(shù)變量名無關(guān)
重載和返回值類型無關(guān)如void method(int x)與int method(int y)不是方法重載墓阀,不能同時存在
重載和修飾符無關(guān)
重載看 方法名 和 參數(shù)列表
6. 可變參數(shù)列表
- 例:
public void sum(int... n){}
- 參數(shù)列表中如果有兩個以上的參數(shù)毡惜,可變參數(shù)一定在最后
- 可以將數(shù)組傳遞給可變參數(shù)列表
- 數(shù)組作為參數(shù)時,不能將多個值傳遞給數(shù)組的
- 一個方法的形式參數(shù)列表斯撮,只能有一個可變參數(shù)列表
- 方法名相同经伙,一個參數(shù)是可變參數(shù),一個參數(shù)是一維數(shù)組勿锅,這兩個方法不是重載帕膜,因為 一個可變參數(shù)等價于相應(yīng)類型的一維數(shù)組
就可以對可變參數(shù)列表,進(jìn)行相應(yīng)的數(shù)組操作溢十,比如求長度 - 可變參數(shù)列表所在的方法垮刹,是最后被執(zhí)行訪問的
- 方法重載的時候,既可以定義有可變參數(shù)的同名方法张弛,也可以定義有確定參數(shù)個數(shù)的方法荒典,jvm調(diào)用方法時,會優(yōu)先調(diào)用 有確定參數(shù)個數(shù) 的方法