- 相關(guān)推薦
Java語(yǔ)言的開(kāi)發(fā)環(huán)境
Java是一種簡(jiǎn)單的,跨平臺(tái)的,面向?qū)ο蟮模植际降模忉尩模训陌踩模Y(jié)構(gòu)的中立的,可移植的,性能很優(yōu)異的多線程的,動(dòng)態(tài)的語(yǔ)言。當(dāng)1995年SUN推出Java語(yǔ)言之后,全世界的目光都被這個(gè)神奇的語(yǔ)言所吸引。Java語(yǔ)言的開(kāi)發(fā)環(huán)境分享給大家,歡迎大家閱讀!
Java語(yǔ)言的開(kāi)發(fā)環(huán)境
1)JDK是什么?
JDK(JavaDevelopmentKit)Java開(kāi)發(fā)工具包。包括了JRE,是開(kāi)發(fā)Java的人員必備的開(kāi)發(fā)運(yùn)行Java程序的工具。
2)JRE是什么?
JRE(JavaRuntimeEnvironment)Java運(yùn)行環(huán)境,運(yùn)行JAVA程序所必須的環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)及Java核心類庫(kù)。
3)JVM是什么?
JVM(JavaVirtualMachine)Java虛擬機(jī),它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。
5)需要配置的相關(guān)環(huán)境變量?path:用于搜索外部命令,例如編譯程序的javac命令,執(zhí)行程序的java命令classpath:用于搜索類,即class文件,例如可以在不同的位置執(zhí)行類文件
6)
配置環(huán)境變量的方式?
有兩種:臨時(shí)配置和持久配置
臨時(shí)配置:在命令行下用set變量名=變量值,僅在當(dāng)前命令行窗口有效持久配置:在我的電腦——屬性中配置,持久有效
8)
Java文件的類型?有兩種:
擴(kuò)展名為java的文件:是Java源文件,屬于編譯之前的純文本文件,存儲(chǔ)java源代碼。擴(kuò)展名為class的文件:是Java類文件,屬于編譯之后的二進(jìn)制文件,存儲(chǔ)字節(jié)碼。
9)
Java的編譯運(yùn)行原理?
首先編寫(xiě)java源文件,然后編譯成class類文件,然后通過(guò)虛擬機(jī)解釋成機(jī)器碼到硬件執(zhí)行。
10)
Java是編譯型語(yǔ)言還是解釋型的語(yǔ)言?
既不是完全編譯型,也不是完全解釋型,是半編譯半解釋的。
Java程序的基本結(jié)構(gòu)
1)Java語(yǔ)言區(qū)分大小寫(xiě)嗎?
區(qū)分,不管是數(shù)據(jù)還是標(biāo)識(shí)符或者關(guān)鍵字都區(qū)分大小寫(xiě),例如public不能寫(xiě)成Public,“abc”不能寫(xiě)成“ABC”,inti不能寫(xiě)成INTI等等。
2)main方法是作什么用處的?
這是程序的入口方法,是由虛擬機(jī)自動(dòng)調(diào)用的。
3)語(yǔ)句必須用分號(hào)結(jié)束嗎?
必須的,但是代碼塊{}可以用分號(hào)結(jié)束,也可以不用分號(hào)結(jié)束
4)Java中有幾種注釋,各自的功能
有三種:
單行注釋//:加在行首只能注釋一行
多行注釋/**/:注釋多行,但不能嵌套使用
文檔注釋/***/:用于生成HTML形式的文檔,需要配合javadoc命令實(shí)現(xiàn)
5)Java語(yǔ)言的數(shù)據(jù)類型是強(qiáng)類型還是弱類型?
是強(qiáng)類型,意味著每一個(gè)變量都必須明確聲明數(shù)據(jù)類型。
6)Java語(yǔ)言中數(shù)據(jù)類型的劃分?有什么區(qū)別?分成基本類型和引用類型兩大類。
基本類型:有8種,只能存儲(chǔ)單一的值,不以對(duì)象的形式存在
引用類型:除了基本類型之外其他的都是引用類型,能夠存儲(chǔ)復(fù)雜數(shù)據(jù)類型,以對(duì)象的形式存在
7)基本類型都有哪8種類型?
布爾類型:boolean占1字節(jié)字符類型:char占2字節(jié)
整型:byte占1字節(jié)short占2字節(jié)int占4字節(jié)long占8字節(jié)
浮點(diǎn)型:float占4字節(jié)double占8字節(jié)
8)布爾值可不可以用0或者非0數(shù)代替?
不可以,布爾值只能是true和false,不能使用數(shù)字,這和C語(yǔ)言是不一樣的。
9)直接寫(xiě)個(gè)整數(shù)10默認(rèn)是什么類型的?
整型的直接量例如10,100等默認(rèn)的數(shù)據(jù)類型都是int型
10)如何讓一個(gè)整型的直接量變成long型的?
在直接量后面加大寫(xiě)L后者小寫(xiě)l,例如10L
11)整型數(shù)據(jù)在程序中直接使用可以使用什么進(jìn)制?
10進(jìn)制,8進(jìn)制,16進(jìn)制,但不能使用二進(jìn)制
12)浮點(diǎn)運(yùn)算在Java中有沒(méi)有誤差?
有誤差,所以精密運(yùn)算請(qǐng)使用BigDecimal類
13)直接寫(xiě)一個(gè)3.14的直接量是什么數(shù)據(jù)類型的?
是double型,如果想表示是float的3.14必須寫(xiě)成3.14F或者3.14f,double型的3.14也可以寫(xiě)成3.14D
14)char型采取的是什么類型的字符集?
是Unicode全球統(tǒng)一編碼,支持任何世界上官方的語(yǔ)言中的字符
15)常見(jiàn)的轉(zhuǎn)義字符有哪些?
轉(zhuǎn)義序列
名稱
退格 制表 換行 回車”雙引號(hào)\’單引號(hào)\
反斜杠
16)常見(jiàn)的Unicode字符對(duì)應(yīng)的編碼?大寫(xiě)的A到Z是對(duì)應(yīng)65到90,小寫(xiě)的a到z是對(duì)應(yīng)97到122,字符0到9是對(duì)應(yīng)48到57
17)空字符是不是用’’(兩個(gè)并列的單引號(hào))來(lái)表示?
不是,空字符用’u0000’來(lái)表示,兩個(gè)并列的單引號(hào)什么也不是。
18)點(diǎn),分號(hào),花括號(hào)的各自的作用?
點(diǎn)的作用有兩個(gè):一個(gè)是使用類或?qū)ο笾械某蓡T,用對(duì)象.成員,再一個(gè)就是包名和子包名之間的分隔符,例如頂層包名.子包名分號(hào)的作用是表示語(yǔ)句結(jié)束花括號(hào)的作用是代表一個(gè)語(yǔ)句塊
19)語(yǔ)句和關(guān)鍵字之間可以有任意的空白嗎?
可以的,例如System.out.println(100);就是正確的語(yǔ)句,但是關(guān)鍵字本身不能加空白或換行
20)標(biāo)識(shí)符是什么?
標(biāo)識(shí)符就是指在程序中給包,類,接口,方法,變量起的名字
21)標(biāo)識(shí)符有什么起名規(guī)則?
1.應(yīng)以字母、下劃線、美元符開(kāi)頭2.后跟字母、下劃線、美元符或數(shù)字3.不能用關(guān)鍵字和保留字4.嚴(yán)格區(qū)分大小寫(xiě)5.名稱長(zhǎng)度沒(méi)有限制
22)中文的變量名可以嗎?
是可以的,例如int數(shù)字=10;這個(gè)語(yǔ)句是正確的。因?yàn)閖ava中采取Unicode字符集,所以任何的Unicode中的字符都可以作為標(biāo)識(shí)符的名稱,但考慮字符集的支持問(wèn)題推薦還是使用英文字母命名。
23)關(guān)鍵字和保留字有區(qū)別嗎?
在1.5后沒(méi)有區(qū)別,都被稱作關(guān)鍵字,但是1.5之前認(rèn)為關(guān)鍵字是在Java中有特殊用途的不允許編程人員擅自改作其他用途,而保留字是在Java中沒(méi)有特殊用途但不允許編程人員擅自改作其他用途,按此說(shuō)法goto和const應(yīng)該是此意義上的保留字。
24)true,false,null可以用作標(biāo)識(shí)符命名嗎?
不可以,這3個(gè)雖然不是關(guān)鍵字,但都是有特殊用途的值,也不能作為標(biāo)識(shí)符命名
25)一條聲明語(yǔ)句可以聲明多個(gè)變量嗎?
可以的,例如以下聲明都是正確的
inti;
inti,j;
inti=10,j;
inti,j=10;
inti=10,j=20;
26)變量在沒(méi)有賦值的情況下可以使用嗎?
不可以,變量沒(méi)有賦值使用會(huì)報(bào)出變量未初始化的編譯錯(cuò)誤。
27)常量有什么特點(diǎn)?
在聲明變量的時(shí)候加上final修飾符即為常量,表示這個(gè)變量只能被賦一次值。
28)算數(shù)運(yùn)算符有哪些?
基本算數(shù)運(yùn)算符有+-*/%++--
29)單目運(yùn)算符,雙目運(yùn)算符,三目運(yùn)算符都是什么意思?
其實(shí)也有叫一元運(yùn)算符,雙元操作符,三元操作符的,指的是有幾個(gè)操作數(shù)形成一個(gè)完整表達(dá)式,例如++就是一個(gè)單目運(yùn)算符,只需要一個(gè)操作數(shù)就可以形成表達(dá)式,像i++,而+運(yùn)算符就是雙目運(yùn)算符,需要兩個(gè)操作數(shù)形成表達(dá)式,例如5+3,還有三目運(yùn)算符,例如5>3?0:-1
30)++和--放在前面和放在后面有什么區(qū)別?
如果是在一個(gè)表達(dá)式中,那++放后面表示先運(yùn)算表達(dá)式,然后再進(jìn)行自增運(yùn)算,如果在一個(gè)表達(dá)式中,++放前面,則表示先進(jìn)行自增運(yùn)算然后在運(yùn)算表達(dá)式。--同樣道理。例如:
inti=10;
intj=i++;//先進(jìn)行賦值運(yùn)算然后再進(jìn)行自增運(yùn)算j的結(jié)果是10
inti=10;
intj=++i//先進(jìn)行自增運(yùn)算然后再進(jìn)行賦值運(yùn)算
j的結(jié)果是11
31)-5%2等于幾,5%-2等于幾?
-5%2等于-1,5%-2等于1,運(yùn)算得到是正數(shù)還是負(fù)數(shù)取決于第一個(gè)操作數(shù)的符號(hào)
32)5/2結(jié)果是不是2.5?
不是,是2,因?yàn)?和2都是int類型,所以不可能得到double型的結(jié)果。
33)比較運(yùn)算符有哪些?
有><>=<===!=六項(xiàng)基本比較運(yùn)算
34)任何數(shù)據(jù)類型都可以使用><>=<=運(yùn)算符嗎?
不是所有數(shù)據(jù)類型,例如true>false這個(gè)表達(dá)式就是編譯錯(cuò)誤,布爾類型和引用類型的表達(dá)式只能用==和!=兩個(gè)比較運(yùn)算,例如”abc”<=”xyz”這個(gè)表達(dá)式也是編譯錯(cuò)誤的
35)’a’>’b’這個(gè)表達(dá)式編譯正確嗎?
編譯正確,’a’和’b’是字符類型,內(nèi)部用Unicode編碼表示的話a是97,b是98,所以實(shí)際上比較的是97>98,結(jié)果為false
36)邏輯運(yùn)算符有哪些?
有&邏輯與,|邏輯或,!邏輯非,^異或,&&短路與,||短路或7
37)邏輯與,邏輯或和短路與,短路或有什么區(qū)別?
邏輯與和短路與的區(qū)別是:
如果是邏輯與&,不管第一個(gè)表達(dá)式是true還是false,都會(huì)執(zhí)行第二個(gè)表達(dá)式,例如a>b&xb為false,也會(huì)執(zhí)行x>y
如果是短路與&&,如果第一個(gè)表達(dá)式為false,將不會(huì)執(zhí)行第二個(gè)表達(dá)式例如a>b&&xb為false,就不會(huì)執(zhí)行x>y
以此類推,邏輯或和短路或的區(qū)別是:
如果是邏輯或|,不管第一個(gè)表達(dá)式是true還是false,都會(huì)執(zhí)行第二個(gè)表達(dá)式如果是短路或||,如果第一個(gè)表達(dá)式為true,將不會(huì)執(zhí)行第二個(gè)表達(dá)式
38)與或非三個(gè)邏輯運(yùn)算符的優(yōu)先級(jí)是怎么排列的?
“非”優(yōu)先級(jí)最高,“與”其次,“或”優(yōu)先級(jí)最低
39)原碼,反碼,補(bǔ)碼分別是什么意思?
原碼:將數(shù)字轉(zhuǎn)換為二進(jìn)制,第一位為符號(hào)位,正數(shù)為0,負(fù)數(shù)為1例如:12的原碼是00001100-12的原碼是10001100
反碼:正數(shù)的反碼和原碼相同,負(fù)數(shù)的'反碼將原碼符號(hào)位之外的位逐位取反例如:12的反碼是00001100-12的反碼是11110011
補(bǔ)碼:正數(shù)的補(bǔ)碼和原碼相同,負(fù)數(shù)的補(bǔ)碼將反碼加1例如:12的補(bǔ)碼是00001100-12的補(bǔ)碼是11110100最后強(qiáng)調(diào)一點(diǎn),計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)用補(bǔ)碼形式來(lái)存儲(chǔ)。
40)位運(yùn)算符都有哪些?
&與|或^異或~非>>右移<<左移>>>無(wú)符號(hào)右移
41)1<<35怎么理解?
1是int類型是32位,所以需要把35%32=3,所以事實(shí)上是和執(zhí)行1<<3等價(jià)的
42)數(shù)據(jù)類型轉(zhuǎn)換需要遵循什么原則?
小類型向大類型轉(zhuǎn)換,是自動(dòng)轉(zhuǎn)換的,或者說(shuō)隱式轉(zhuǎn)換的大類型向小類型轉(zhuǎn)換,是需要強(qiáng)制轉(zhuǎn)換的,或者說(shuō)顯式轉(zhuǎn)換例如:byteb=1;shorts=b;//自動(dòng)轉(zhuǎn)換b=(byte)s;//強(qiáng)制轉(zhuǎn)換
43)byteb=10這個(gè)語(yǔ)句是正確的,為什么10是int型比byte大還不需要強(qiáng)制轉(zhuǎn)換呢?
因?yàn)樵趈ava中做了特殊處理,其中規(guī)定byte,short,char類型可以直接賦予int類型的直接量,例如:byteb=10;shorts=10;charc=10;
以上賦值語(yǔ)句都是正確的。
但是不能超出超出類型的范圍,例如以下賦值就是錯(cuò)誤的:byteb=128;如果超出范圍,必須得作強(qiáng)制轉(zhuǎn)換,例如以下語(yǔ)句是正確的:byteb=(byte)128;
需要強(qiáng)調(diào)的是,必須是int類型的直接量,以下語(yǔ)句就是錯(cuò)誤的:byteb=10L;
10L不是int類型的直接量。
44)byteb=(byte)300;強(qiáng)制轉(zhuǎn)換后的結(jié)果是44,是按照什么規(guī)律得出來(lái)的?
是先把300轉(zhuǎn)換成二進(jìn)制,然后根據(jù)byte類型的大小截取了后8個(gè)位300的補(bǔ)碼是00000000000000000000000100101100
b的結(jié)果是:00000000000000000000000100101100結(jié)果為44
45)byteb=(byte)true;這個(gè)轉(zhuǎn)換成立嗎?
不成立,布爾值和數(shù)字是不兼容的,不能作任何轉(zhuǎn)換。
46)inti=(int)“100”;這個(gè)轉(zhuǎn)換成立嗎?
不成立,引用類型和基本類型是不能直接強(qiáng)制轉(zhuǎn)換的,需要用包裝類的方法來(lái)轉(zhuǎn)換。
47)char型和short型哪個(gè)比較大?
不能說(shuō)哪個(gè)大,哪個(gè)小,這兩個(gè)類型char的取值是從0~65535,而short類型的取值是-32768~32767,這個(gè)兩個(gè)類型之間的轉(zhuǎn)換都需要強(qiáng)制轉(zhuǎn)換。
48)字符串是不是基本類型?
不是,String是java.lang包中的一個(gè)類,是引用類型的,8種基本類型中沒(méi)有一個(gè)是String類型。
49)空字符串用什么來(lái)表示?
用””(兩個(gè)并列的雙引號(hào))表示,代表0個(gè)長(zhǎng)度的字符串對(duì)象。
50)Strings=“”;和Strings=null;有什么區(qū)別?
第一個(gè)表示s被賦值,指向了一個(gè)字符串對(duì)象,第二個(gè)表示s沒(méi)有指向任何對(duì)象實(shí)例,是真空
51)兩個(gè)字符串用什么運(yùn)算符可以連成一個(gè)字符串?
用+運(yùn)算符,例如”abc”+“xyz”最后的結(jié)果就是“abcxyz”
52)數(shù)學(xué)運(yùn)算符加法和字符串連接符都是+,怎么區(qū)分?
是通過(guò)運(yùn)算符兩邊的操作數(shù)來(lái)判斷的,如果兩邊的操作數(shù)都是數(shù)字型的基本類型,則進(jìn)行數(shù)學(xué)運(yùn)算,如果兩邊的操作數(shù)有一個(gè)是字符串,則把另一個(gè)操作數(shù)也轉(zhuǎn)換為則進(jìn)行字符串連接運(yùn)算。例如:
5+4的結(jié)果是9“5”+4的結(jié)果是54
53)判斷字符串內(nèi)容相同用什么方法?
用equals方法判斷內(nèi)容相同,==只能判斷引用是否相同
54)提供用戶輸入使用哪個(gè)類
使用javav.util.Scanner類
55)if語(yǔ)句可以用if(-1)形式判斷嗎?
不可以,數(shù)字不能代替布爾值
56)if語(yǔ)句和循環(huán)語(yǔ)句的花括號(hào)什么時(shí)候可以省略?
當(dāng)執(zhí)行的語(yǔ)句只有一句的時(shí)候
57)switch語(yǔ)句有哪些規(guī)則?
表達(dá)式expr的返回值必須是下述幾種類型之一:int,byte,char,short或枚舉常量;
case子句中的值必須是常量,且所有case子句中的值應(yīng)是不同的,也必須是下述幾種類型之一:int,byte,char,short或枚舉常量default子句是任選的;
break語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后使程序跳出switch語(yǔ)句塊;
58)對(duì)于退出循環(huán)break和continue有什么區(qū)別?
break是退出整個(gè)循環(huán)
continue是退出當(dāng)前循環(huán)繼續(xù)下一次循環(huán)
59)聲明數(shù)組創(chuàng)建數(shù)組的方法?
以下聲明都是合法的:int[]a;inta[];String[]a;
以下創(chuàng)建數(shù)組對(duì)象都是合法的:int[]a=newint[3];int[]a={1,2,3};
int[]a=newint[]{1,2,3};
60)int[]x和String[]s這兩個(gè)數(shù)組對(duì)象,哪個(gè)是基本類型,哪個(gè)是引用類型?
兩個(gè)都是數(shù)組對(duì)象,都是引用類型的
61)數(shù)組元素下標(biāo)最小是多少,最大是多少,超出范圍會(huì)怎么樣?
最小是0,最大是數(shù)組元素個(gè)數(shù)減一,超出范圍將會(huì)出現(xiàn)下標(biāo)越界異常
62)得到數(shù)組長(zhǎng)度用length屬性還是length()方法?
是length屬性,得到字符串長(zhǎng)度才有l(wèi)ength方法
63)聲明int[][]a=newint[3][],a是一個(gè)二維數(shù)組,a[0]本身是什么類型的?
二維數(shù)組的元素都是一維數(shù)組,a[0]是int[]類型的
64)數(shù)組的大小一經(jīng)創(chuàng)建可不可以改變大小了?
不可以,數(shù)組是定長(zhǎng)的,一經(jīng)創(chuàng)建就不能再改變大小了
65)可以把2個(gè)int型,3個(gè)double型,4個(gè)String型的值放到一個(gè)數(shù)組中嗎?
不可以,數(shù)組的元素類型必須是相同類型的。
66)java中的多維數(shù)組必須是要形成矩陣排列嗎?不一定,也可以是不規(guī)則的。
67)操作數(shù)組比較方便的實(shí)用類?
java.util.Arrays類提供了很多關(guān)于數(shù)組的實(shí)用方法。
【Java語(yǔ)言的開(kāi)發(fā)環(huán)境】相關(guān)文章:
Linux環(huán)境下java的開(kāi)發(fā)環(huán)境07-15
Java程序開(kāi)發(fā)與運(yùn)行環(huán)境05-07
Java程序開(kāi)發(fā)與運(yùn)行環(huán)境09-22
Java構(gòu)建JSE開(kāi)發(fā)環(huán)境教程06-17
如何搭建Java程序開(kāi)發(fā)環(huán)境09-01
windows下JAVA敏捷開(kāi)發(fā)環(huán)境搭建步驟09-19
Java和.NET開(kāi)發(fā)語(yǔ)言的不同點(diǎn)08-10
C++、C語(yǔ)言和JAVA開(kāi)發(fā)的區(qū)別06-28