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