Java基本元素詳解
生活呆以是甜的,也可以是苦的,但不能是沒味的。你可以勝利,也可以失敗,但你不能屈服,以下是小編為大家搜索整理了Java基本元素詳解,希望能給大家?guī)?lái)幫助!更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
第二章 基本元素
第一章總結(jié):
一.Java平臺(tái)&JDK&JRE&JVM&API
Java平臺(tái):運(yùn)行在其他平臺(tái)之上的純軟件平臺(tái)。Java程序是借助與Java平臺(tái)去和硬件平臺(tái)交互的。
Java語(yǔ)言的工作方式: 源文件文件 運(yùn)行 JDK:包含Java運(yùn)行的基本類庫(kù)和開發(fā)命令,安裝JDK可以進(jìn)行完整的Java開發(fā)。 java.applet:創(chuàng)建Java小程序
java.io:輸入/輸出
java.net:Java的網(wǎng)絡(luò)開發(fā)
java.util:Java的工具包
java.lang:Java的語(yǔ)言包(不需要導(dǎo)包)
java.swing & java.awt:Java圖形化界面的開發(fā)
JRE:Java Runtime Environment 包含Java運(yùn)行的基本類庫(kù)和一些運(yùn)行命令,安裝JRE可以運(yùn)行編譯好的Java程序。
JVM:包括類裝載器、class文件檢驗(yàn)器、解釋器。Java語(yǔ)言內(nèi)部運(yùn)行的核心。 JDK中包含JRE,JRE中又包含JVM,JVM不能單獨(dú)下載安裝。
API:Application Program Interface 應(yīng)用編程接口及Java的類庫(kù) 二.環(huán)境變量
JAVA_HOME: 指向JDK的安裝路徑 jdk的路徑
classpath:Java在編譯和運(yùn)行時(shí)要找的class所在的路徑 jdk下lib及l(fā)ib下tools,jar的路徑
系統(tǒng)找字節(jié)碼的作用:1.先在當(dāng)前包下找 2. jdk1.6.0_01\jre\lib \rt.jar包下找
3.在classpath中所指向的路徑下找。
path:系統(tǒng)執(zhí)行命令時(shí)要搜尋的路徑 jdk下bin包的路徑
三.Java程序的兩種類型: Application:Java應(yīng)用程序 可以獨(dú)立運(yùn)行。
保存 —HelloWorld.java
編譯 — javac
javac HelloWorld.java 產(chǎn)生HelloWorld.class 文件
解釋執(zhí)行 — java
java HelloWorld (不要再寫上.class)
Applet:Java小程序 被嵌入到Web頁(yè)中,由Java兼容瀏覽器控制執(zhí)行
編寫applet類源代碼 HelloApplet.java
編譯applet類所在的源文件 javac HelloApplet.java
編寫嵌入applet的網(wǎng)頁(yè)文件 appletviewer index.html
作業(yè):當(dāng)java文件帶包時(shí)怎么用命令?
1.javac命令: 就像是沒有包一樣 進(jìn)到源文件在的那個(gè)目錄下,然后用javac xxx.java編譯
2.java命令:在源文件目錄下,建立一個(gè)和包名一樣的文件夾,把編譯好的class文件放入該文件夾中,然后用 java 包名.class文件名
3.javadoc命令:和沒有包一樣 進(jìn)到源文件在的那個(gè)目錄下,然后用javadoc -d help xxx.java 將文檔生成到指定的文件夾下
4.jar命令: 編寫文本文件(Main-Class:包名.文件名.java) 然后用jar -cvmf 文本文件名.后綴 要生成jar包的名.jar
學(xué)習(xí)目標(biāo): 同ppt
Java其實(shí)和英語(yǔ)或漢語(yǔ)的一樣,都是由基本元素構(gòu)成(字母,單詞,短語(yǔ),句子,文章)。Java中標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符、數(shù)據(jù)類型是英語(yǔ)中的字母;變量、常量是單詞;表達(dá)式是短語(yǔ);語(yǔ)句是句子;程序是文章。
注意:編程的時(shí)候所有的標(biāo)點(diǎn)符號(hào)必須在英文狀態(tài)下輸入。
Java文檔及jar包的生成:
Java文檔的生成
1.javadoc 源文件.java 生成的文檔在當(dāng)前路徑下
2.javadoc –d 生成文檔的路徑(可以不存在) 源文件.java 生成的文檔在指定的路徑下
jar包
1.編寫一個(gè)文本文件 hello.txt 內(nèi)容:Main-Class:com.HelloTest.java
2.jar –cvmf hello.txt hello.jar
java.lang包下的類使用時(shí)不用導(dǎo)入也不用完整包名。其他包下的類使用時(shí)要么導(dǎo)入要么使用完整包名。
標(biāo)識(shí)符: 概念:標(biāo)識(shí)符就是用來(lái)標(biāo)識(shí)類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列,并且標(biāo)識(shí)符不能是關(guān)鍵字。
標(biāo)識(shí)符的組成:
1.由字母、數(shù)字、下劃線和$組成
2.第一個(gè)字符不能是數(shù)字
3.區(qū)分大小寫
4.不能是關(guān)鍵字
5.字母包含英語(yǔ)字符和漢字(Java中采用unicode編碼)
6.標(biāo)識(shí)符的長(zhǎng)度沒有明顯規(guī)定
練習(xí):3boy _hello $a dog Dog he&test a*b a@#%b length a b 貓貓 (可以使用,但是不推薦,以后不要用)
代碼習(xí)慣:
1. 類名每個(gè)單詞以大寫字母開始,其他字母小寫
2. 接口名同類名
3. 方法名第一個(gè)單詞小寫,其他單詞首字母大寫,其他字母小寫
4. 變量名同方法名
5. 常量所有單詞的所有字母大寫,而且單詞與單詞間用下劃線連接。
6. 包名所有字母都小寫。
關(guān)鍵字:Java已經(jīng)使用并且有特殊含義。
基本數(shù)據(jù)類型:
unicode: 兩個(gè)字節(jié)保留一個(gè)字符。Java中采用unicode編碼(對(duì)漢字編碼) ASCII: 一個(gè)字節(jié)保留一個(gè)字符。 ASCII碼的取值范圍小與unicode碼。 兩種分類:
1. 按類型分:
整型: byte short int long
浮點(diǎn)型: float double
布爾類型:boolean
字符型: char(可以存一個(gè)漢字)
2. 按有效位分:
1位: boolean
8位: byte
16位:short char
32位:int float
64位: long double
詳細(xì)解析:
boolean: 值只有true或false兩種 ,與C++中的布爾類型不同
byte: 8位整形 取值范圍:
注意:byte b = 122; 涉不涉及122為int類型再?gòu)?qiáng)轉(zhuǎn)為byte類型? 不涉及 short:16位整形 取值范圍:
int: 32位整形 取值范圍:
,給任意一個(gè)該范圍內(nèi)的整數(shù)都默認(rèn)為int類型。
注意:
byte b = 128;//錯(cuò)
short s = 32768;//錯(cuò)
long: 64位整形 取值范圍:,以“l”或”L”結(jié)尾
long l =2147483648; //錯(cuò) ,其實(shí)等號(hào)右邊是int類型,然后賦值給l的時(shí)候再進(jìn)行自動(dòng)轉(zhuǎn)換。
long l1 = 2147483648L; //對(duì),等號(hào)左邊和右邊都是long類型。
char: 可以看作是無(wú)符號(hào)16
位整形,漢字占一個(gè)字節(jié),取值范圍:
在進(jìn)行運(yùn)算的時(shí)候會(huì)被自動(dòng)轉(zhuǎn)換成int類型再去
運(yùn)算。
字符的存儲(chǔ)方式:
字符整數(shù)編碼二進(jìn)制
char n = 128;//輸出亂碼;
char a = ‘b’;
char b = 97;
char c = ‘\u0060’;
float: 用于存儲(chǔ)小數(shù),取值范圍:,必須以“F”或”f”結(jié)尾。
float f = 9.9; //錯(cuò) 等號(hào)右邊的默認(rèn)為double類型,不能自動(dòng)轉(zhuǎn)換為float。
float f = (float)9.9; //對(duì) double強(qiáng)制轉(zhuǎn)換為float。
double:用于存儲(chǔ)小數(shù),取值范圍:,以“D”或”d”結(jié)尾。 給任意一個(gè)該范圍內(nèi)的小數(shù)都默認(rèn)為double類型。
注意: 整型值隱含boolean數(shù)組含義 如:
飛機(jī)航班的班期: 1.boolean數(shù)組
2.byte s:
對(duì)應(yīng)位上為1表示有班期,為0表示無(wú)班期 if(s&2的3次方 != 0)表示周三有航班 if(s&(1 << w)!=0)表示周w有航班
數(shù)據(jù)類型的存儲(chǔ)方式:
1.精確存儲(chǔ):存儲(chǔ)的.值與其存儲(chǔ)的狀態(tài)一一對(duì)應(yīng)
如 整型
2. 近似存儲(chǔ):所存儲(chǔ)的值和存儲(chǔ)狀態(tài)不一定一一對(duì)應(yīng),有可能一個(gè)存儲(chǔ)狀態(tài)對(duì)應(yīng)多個(gè)值。
如 浮點(diǎn)型(float double)
比較兩個(gè)實(shí)數(shù)是否相同是沒有意義的。
類型轉(zhuǎn)換:
自動(dòng)類型轉(zhuǎn)換:
精度損失:
4. 強(qiáng)制類型轉(zhuǎn)換也可能會(huì)引起數(shù)據(jù)精度的丟失
強(qiáng)制類型轉(zhuǎn)換:
float f = (float) 9.9;
long l = (long) 9;
強(qiáng)制類型轉(zhuǎn)換并不是沒有限制的,要求只有類型的性質(zhì)相同才能轉(zhuǎn)換。 強(qiáng)制類型轉(zhuǎn)換基本用在:
1. 除boolean之外的七種基本類型之間的相互轉(zhuǎn)換
2. 父子類之間
3. 接口和實(shí)現(xiàn)類之間
基本類型運(yùn)算規(guī)則:
如果兩個(gè)參與運(yùn)算的數(shù)都能夠自動(dòng)轉(zhuǎn)換為int,則結(jié)果為int類型,否則結(jié)果根據(jù)自動(dòng)類型轉(zhuǎn)換規(guī)則,結(jié)果為高精度類型。
變量和常量
變量是Java語(yǔ)言中的基本存儲(chǔ)單位。變量是在程序運(yùn)行過(guò)程中值可以改變即可以多次賦值。定義一個(gè)變量需要一個(gè)類型,一個(gè)標(biāo)識(shí)符,如果需要,還可以加上一個(gè)初值。
編碼習(xí)慣:變量名第一個(gè)單詞小寫,其他單詞首字母大寫,其他字母小寫
細(xì)節(jié):變量的什么可以改變?什么不能改變? 值可以改變,類型不能變 舉例:
int i;
int l = 123;
l = 456;
常量:在Java中,使用關(guān)鍵字final來(lái)表示。與變量不同,常量在程序運(yùn)行過(guò)程中其值不能改變,只能有一次賦值的過(guò)程。
規(guī)則:
有final修飾
只能賦一次值 定義的時(shí)候賦值或定義完之后賦值
編碼習(xí)慣:常量所有單詞的所有字母大寫,而且單詞與單詞間用下劃線連接。 舉例: double PI = 3.14;
PI = 3.1415;//錯(cuò)誤,常量只能賦一次值 int CONSTANT; CONSTANT = 123;//正確,第一次賦值
運(yùn)算符:
概念:用來(lái)表示各種運(yùn)算的符號(hào)叫做運(yùn)算符。運(yùn)算符一定有自己的運(yùn)算對(duì)象。
針對(duì)一定的運(yùn)算符,都有規(guī)定的數(shù)據(jù)類型,同時(shí)運(yùn)算結(jié)果也有確定的數(shù)據(jù)類型。每個(gè)運(yùn)算符都有自己特定的運(yùn)算規(guī)則。當(dāng)表達(dá)式中出現(xiàn)運(yùn)算符時(shí)則必須考慮運(yùn)算符的優(yōu)先級(jí)。同時(shí),運(yùn)算符還有結(jié)合性。
分類:算術(shù)運(yùn)算符,關(guān)系運(yùn)算符,邏輯運(yùn)算符,遞增遞減運(yùn)算符,位運(yùn)算符,賦值運(yùn)算符和復(fù)合賦值運(yùn)算符,條件運(yùn)算符。
算術(shù)運(yùn)算符:
常見的算術(shù)運(yùn)算有:加,減,乘,除,取模,取正,取負(fù),對(duì)應(yīng)符號(hào)分別為:+,-,*,/,%,+,-,其中只有取正或取負(fù)是單目運(yùn)算符(即只有一個(gè)操作數(shù)),其他的都是雙目運(yùn)算符(即一個(gè)運(yùn)算符對(duì)應(yīng)兩個(gè)操作數(shù))。
關(guān)系運(yùn)算符:
關(guān)系運(yùn)算符可以用來(lái)比較兩個(gè)數(shù)值型數(shù)據(jù)的大小,也可以比較兩個(gè)字符型數(shù)據(jù)的大小。關(guān)系運(yùn)算符的處理結(jié)果是邏輯值,若為真用true表示,若為假用false表示。
關(guān)系運(yùn)算符主要有:>、>=、<、<=、==、!= 即 大于、大于等于、小于、小于等于、等于、不等于。
== 操作元是對(duì)象時(shí)判斷地址是否相同,是基本類型時(shí)判斷值是否相同。 邏輯運(yùn)算符:
邏輯運(yùn)算符運(yùn)算對(duì)象是數(shù)值型或字符型等。結(jié)果只能是true或false。
&&: 只能是boolean表達(dá)式1&&boolean表達(dá)式2, 當(dāng)boolean表達(dá)式1為false時(shí),不再執(zhí)行boolean表達(dá)式2,結(jié)果為false;當(dāng)boolean表達(dá)式1為true時(shí),執(zhí)行boolean表達(dá)式2,boolean表達(dá)式為false,結(jié)果為false,否則結(jié)果為true。 ||: 只能是boolean表達(dá)式1||boolean表達(dá)式2,當(dāng)boolean表達(dá)式1為true時(shí),不再執(zhí)行boolean表達(dá)式2,結(jié)果為true;當(dāng)boolean表達(dá)式1為false時(shí),執(zhí)行boolean表達(dá)式2,boolean表達(dá)式為true,結(jié)果為true,否則結(jié)果為false。
&: 只能是boolean表達(dá)式1&boolean表達(dá)式2,不管boolean表達(dá)式1的值為true還是false都會(huì)執(zhí)行boolean表達(dá)式2,只有當(dāng)boolean表達(dá)式1的值和boolean表達(dá)式2的值都為true時(shí)結(jié)果才為true,否則結(jié)果為false。
|: 只能是boolean表達(dá)式1&boolean表達(dá)式2,不管boolean表達(dá)式1的值為true 還是false都會(huì)執(zhí)行boolean表達(dá)式2,只有當(dāng)boolean表達(dá)式1的值和boolean表達(dá) 式2的值都為false時(shí)結(jié)果才為false,否則結(jié)果為true。
!:只能是!boolean表達(dá)式,boolean表達(dá)式的值為false,結(jié)果為true,boolean表達(dá)式為true,結(jié)果為false。
自增自減運(yùn)算符:
自增和自減在前置和后置的時(shí)候效果不一樣。
舉例:
前置自增:int a = 3; int b = ++a;相當(dāng)于:int a = 3;a = a + 1; int b = a;//a = 4 b = 4
后置自增:int a = 3; int b = a++;相當(dāng)于:int a = 3; int b = a; a = a +
1;// a = 4 b = 3
進(jìn)行賦值運(yùn)算,再進(jìn)行自加運(yùn)算。
前置自減:int a = 3; int b = --a;相當(dāng)于:int a = 3;a = a - 1; int b = a;//a
= 2 b = 2
后置自減:int a = 3; int b = a--;相當(dāng)于:int a = 3; int b = a; a = a -
1;// a = 2 b = 3
前置自減時(shí),先進(jìn)行自減運(yùn)算,再進(jìn)行賦值運(yùn)算,后置時(shí),剛好相反,即先
進(jìn)行賦值運(yùn)算,再進(jìn)行自減運(yùn)算。
位運(yùn)算符:
正負(fù)數(shù)在內(nèi)存中的存儲(chǔ)形式:正數(shù):原碼,反碼,補(bǔ)碼都相同
負(fù)數(shù):原碼的符號(hào)位不變,其他各位取反 則得到反碼
反碼+1 = 補(bǔ)碼
正數(shù)在內(nèi)存中用原碼表示,負(fù)數(shù)在內(nèi)存中用補(bǔ)碼表示。
概念:位運(yùn)算符是一種對(duì)運(yùn)算對(duì)象按二進(jìn)制位進(jìn)行操作的運(yùn)算。
特點(diǎn):1.位運(yùn)算不允許只操作其中的某一位,而是對(duì)整個(gè)數(shù)據(jù)按二進(jìn)制位進(jìn)行運(yùn)算。
2.位運(yùn)算的對(duì)象只能是整型數(shù)據(jù)(包括字符型),運(yùn)算結(jié)果仍是整形數(shù)據(jù)。 運(yùn)算符:
1.按位與運(yùn)算: 雙目運(yùn)算符 功能:參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相與。
只有對(duì)應(yīng)的兩個(gè)二進(jìn)位均為1時(shí),結(jié)果位才為1,否則為0;
2.按位或運(yùn)算: 雙目運(yùn)算符 功能:參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相或。
只有對(duì)應(yīng)的兩個(gè)二進(jìn)位有一個(gè)或兩個(gè)為1時(shí),結(jié)果位就為1,否則為0;
3.按位異或運(yùn)算: 雙目運(yùn)算符 功能:參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相異
或。
4.求反運(yùn)算: 單目運(yùn)算符 功能:對(duì)參與運(yùn)算的數(shù)的各二進(jìn)位按位求反。
5.左移運(yùn)算: 雙目運(yùn)算符 功能:把”<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移
若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0.
如:a << 4 指把a(bǔ)的各二進(jìn)位向左移動(dòng)4位。如 a = 00000011(十進(jìn)制
的3),左移4位后為00110000(十進(jìn)制48);a左移四位相當(dāng)于是計(jì)算四次a
= a*2;
6. 右移運(yùn)算: 雙目運(yùn)算符 功能:把“>>”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右
移若干位,”>>”右邊的數(shù)指定移動(dòng)的位數(shù)。 低位丟棄,高位補(bǔ)移出
位。
byte b = 15; (byte) (b << 1) (byte) (b >> 1)
b: 0000 1111
內(nèi)存中存儲(chǔ)的形式:0000 1111
先擴(kuò)充為int類型:0000 0000 0000 0000 0000 0000 0000 1111
左移1位: 0000 0000 0000 0000 0000 0000 0001 1110
截取為byte類型: 0001 1110 30
右移1位: 0000 0000 0000 0000 0000 0000 0000 0111
截取為byte類型: 0000 0111 7
b = -15
b: 1000 1111
內(nèi)存中存儲(chǔ)的形式:原碼:1000 1111 反碼:1111 0000 補(bǔ)碼: 1111 0001
先擴(kuò)充為int類型:1111 1111 1111 1111 1111 1111 1111 0001
補(bǔ)碼左移1位:1111 1111 1111 1111 1111 1111 1111 0010
截取為byte類型:1111 0010 反碼: 1111 0001 原碼: 1000 1110 -30
補(bǔ)碼右移1位:1111 1111 1111 1111 1111 1111 1111 1000
截取為byte類型:1111 1000 反碼:1111 0111 原碼:1000 1000 -8
b = 127
b: 0111 1111
內(nèi)存中存儲(chǔ)的形式:0111 1111
先擴(kuò)充為int類型:0000 0000 0000 0000 0000 0000 0111 1111
左移1位: 0000 0000 0000 0000 0000 0000 1111 1110
截取為byte類型: 1111 1110 反碼:1111 1101 原碼:1000 0010 -2 右移1位: 0000 0000 0000 0000 0000 0000 0011 1111
截取為byte類型: 0011 1111 63
b = -127
b: 1111 1111
內(nèi)存中存儲(chǔ)的形式:原碼:1111 1111 反碼:1000 0000 補(bǔ)碼: 1000 0001
先擴(kuò)充為int類型:1111 1111 1111 1111 1111 1111 1000 0001
補(bǔ)碼左移1位:1111 1111 1111 1111 1111 1111 0000 0010
截取為byte類型:0000 0010 2
補(bǔ)碼右移1位:1111 1111 1111 1111 1111 1111 1100 0000
截取為byte類型:1100 0000 反碼:1011 1111 原碼:1100 0000 -64
7. 無(wú)符號(hào)右移:>>> 移出去的不管,移進(jìn)來(lái)的補(bǔ)0;
注意:移位運(yùn)算不能把有效位均移出去 。int a<< 33 相當(dāng)于 a<<(33%32)
賦值運(yùn)算符:
=
復(fù)合賦值運(yùn)算符:
+= ,-=,*= ,/= ,%=,|=, &=,^=
區(qū)分:
== 關(guān)系運(yùn)算符
= 賦值運(yùn)算符
條件運(yùn)算符:
唯一的一個(gè)三目運(yùn)算符。
格式:
boolean表達(dá)式1?表達(dá)式2:表達(dá)式3
含義:
先判斷boolean表達(dá)式1的值,為true時(shí)執(zhí)行表達(dá)式2,為false
時(shí)執(zhí)行表達(dá)式3。
注意:
boolean表達(dá)式1一定會(huì)執(zhí)行,表達(dá)式2和表達(dá)式3一定并且只能執(zhí)
行其中的一個(gè)。
條件表達(dá)式在作非此即彼的條件判斷時(shí)非常地簡(jiǎn)潔有效,條件表達(dá)式完全可以用以后學(xué)的if?else語(yǔ)句替代,但是,這一點(diǎn)是if?else語(yǔ)句所不能及的。
表達(dá)式和語(yǔ)句:
表達(dá)式是運(yùn)算符、操作數(shù)以及方法調(diào)用的序列,用來(lái)說(shuō)明某個(gè)計(jì)算過(guò)程并計(jì)算結(jié)果,有一個(gè)唯一類型的值。如:1+1
Java語(yǔ)言中的語(yǔ)句用于向計(jì)算機(jī)發(fā)出操作指令。一個(gè)為實(shí)現(xiàn)特定目的的程序應(yīng)該包含若干語(yǔ)句。
語(yǔ)句 = 表達(dá)式+“;”
例如: int area = length * width;
語(yǔ)句:
1. 方法調(diào)用語(yǔ)句
input();
2. 表達(dá)式語(yǔ)句
i = 3;(賦值語(yǔ)句)
3. 復(fù)合語(yǔ)句。
{i= 3;
System.out.println(i);}
4. 控制語(yǔ)句
包括分支、循環(huán)、跳轉(zhuǎn)
5. pakage 和 import語(yǔ)句
類:類的全限定名: 包名.類名
package 定義當(dāng)前類所在的包
import 導(dǎo)入用到API中的類
導(dǎo)入的是類 import java.util.Random;
import java.util.* 表示導(dǎo)入java.util包中的所有類
注釋:
a) 單行注釋: //
b) 多行注釋: /* */
c) 文檔注釋: /** */
總結(jié): 1.本章講述了Java標(biāo)識(shí)符與關(guān)鍵字概念,學(xué)習(xí)的重點(diǎn)是要了解Java的四類八種基
本數(shù)據(jù)類型使用,以及變量和常量的定義。
2.熟悉幾種運(yùn)算符的使用,熟練運(yùn)用Java表達(dá)式和語(yǔ)句的書寫規(guī)范。
3.特別需要重點(diǎn)對(duì)待的注釋,同學(xué)們?cè)趯W(xué)習(xí)的過(guò)程中一定要養(yǎng)成寫注釋的好習(xí)慣。
編程:
1:輸入兩個(gè)數(shù)字,輸出最大的數(shù)字。
2:輸入一個(gè)年份,判斷這年是平年還是閏年,并且輸出。
String judge = year%400 == 0 ? "閏年":year % 4 == 0 && year % 100 !=0?"閏年":"
平年";
【Java基本元素詳解】相關(guān)文章: