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