java語言基礎,面試經常問到的簡答題。

初識java

(1)舉列說明什麼是程序。
答:1.通常指完成某些事物的一種既定方式和過程。
答:2.計算機程序:爲了讓計算機執行某些操作或解決某個問題而編寫的一系列有序
(2)開發java應用程序有哪些步驟?
答:《1》編寫源程序 《2》編譯 《3》運行
(3)java應用程序的入口是什麼?
答:一個程序只能有一個main()方法。
答:public static void main(String[] args){ }
(4)、寫出java領域的相關技術。
答:java是前sum公司(現甲骨文股份有限公司)於1995年推出的高級編程語言。
1.java SE 標準版:桌面開發
2.java EE 企業版
3.java ME 微小型:消費產品和嵌入式設備
(5)、簡述java程序中註釋的作用及類型。
答:編寫java程序要符合java編程規範,爲程序編寫註釋可大大增加程序的可讀性。
1.在java中,常用的註釋有兩種:單行註釋和多行註釋。
2.單行註釋 //註釋
3.多行註釋 /內容/
(6)、寫出在MyEclipse中開發一個java程序的步驟。
1.創建Java項目:“FileàNewàProjectàJava Project”
2.創建Java源程序:“FileàNewàOtheràClass”
3.編譯Java源程序:“ProjectàBuild Project”
4.運行Java程序:使用“RunàRun AsàJava Application”菜單運行,在控制檯(Console)中查看運行結果
(7)、使用記事本編寫java程序,並運行輸出結果,具體的步驟是什麼?請詳細說明並寫出必要的命令。
步驟:
使用記事本編輯源文件→使用javac命令來編譯源文件生成字節碼文件→使用Java命令來解釋運行字節碼文件
一、 使用記事本編輯源文件
首先,新建一個txt文本,然後修改爲 項目名稱.java
此處如果沒有後綴名顯示,則需要在計算機的菜單欄中找到 工具→文件夾選項→查看,找到一項“隱藏已知文件類型擴展名”,去掉對鉤,確定即可
二、 使用javac命令來編譯源文件
先在命令提示符中切換到源文件所在的目錄;
然後再輸入 java 項目名稱.java 回車運行(此時源文件所在目錄會生成一個 .class類型的字節碼文件)
三、 使用java命令來解釋運行字節碼文件
在命令提示符中輸入 java 項目名稱 回車運行,即可(此處,在執行字節碼文件的時候,不能跟上字節碼文件的後綴名)

變量、數據類型和運算符

(1)java常見的數據類型有哪些?
int 整型 double 雙精度 char 字符型 String 字符串
(2)如何聲明一個變量?
數據類型 變量名;
String name;
變量名 = 值;
name = “張三”;
數據類型 變量名 = 值;
String name = “張三”;
(3)關係運算符的作用是什麼?
關係運算符是用來做比較運算符的,而比較的結果是一個boolean類型的值,要麼是真(true)要麼是假(false)。
(4)boolean類型的變量可以取哪些值?
true false
(5)簡述java中變量的命名規則。
1.變量名必須以字母、下劃線“—”或“$”符開頭。
變量名可以包含數字,但不能以數字開頭。
除了“—”或“¥”符號以外,變量名不能包含任何特殊字符。
不能使用java語言的關鍵字,如int、class、public等。
(6)舉列說明在什麼情況下會發生自動類型轉換。
小向大會發生自動轉換,當然不是一定會轉換,是要在一定的情況下才會發生的.如float會自動轉換成double,發生這種情況的前提是:當數據位數超過了32位,就會自動轉換成double的,這樣纔會有效的使數據不被輕易丟失.大向小如:使double轉換成float的就只能用強制類型轉換!

選擇結構(1)

(1)if—else選擇結構的語法和執行順序是什麼?
1.是先執行後判斷;
2.如果不爲真就ELSE;
3.如果爲真就執行IF後面的語句;
4.只是分節點的選擇, 不可能都執行。
(2)if選擇結構書寫規範有哪些?
1: 爲了使if結構更加清晰,應該把每個if或else包含的代碼塊用大括號括起來。
2:相匹配的一對if和else應該左對齊。
3:內層的if結構相對於外層的if結構要有一定的縮進。

選擇結構(2)

(1)switch選擇結構的語法和執行順序是什麼?
1.語法:
switch(表達式){
case 常量 1:
//代碼塊1;
break;
case 常量 2:
//代碼塊2;
break;
default:
//代碼塊n;
break;
}
2.switch語句是由一個控制表達式和case標籤組成的,和 if 語句不同的是 ,switch語句後面控制表達式的數據類型只能是整型,不能是boolean型,·case 標籤後面緊跟一個代碼塊。case作爲這個代碼塊的表示。
3.將表達式的值與case比較,哪一個符合就執行哪一個,之後跳出整個分支。如何沒有break語句,則會從符合的值的地方一直順序執行,直到最後。
(2)switch選擇結構和多重if選擇結構在使用上有什麼區別?
1: 相同點:
都可以判斷多分支條件的結構:
2:不通點;
switch選擇結構 多用於判斷等值判斷 條件必須是 整型和字符型變量:。
if選擇結構 多用於範圍性判斷 沒有switch選擇結構條件的限制(適合某個變量處於某個連續區間時的情況)。
3:if選擇結構
基本if選擇結構: 處理單一或組合條件的情況。
If-else選擇結構:處理簡單的條件分支情況。
多重if選擇結構:處理複雜的條件分支情況。
嵌套if選擇結構:用於較爲複雜的流程控制。
4:switch選擇結構
多重分支並且條件判斷是等值判斷的情況。
處理系統異常(用戶輸入異常)。
Scanner對象的hasNextInt()方法,可以判斷用戶從鍵盤輸入的字符是否是合法的數字(int類型數字)。
(3)說明什麼情況下可以使用switch選擇結構代替多重if選擇結構。
1.判斷條件必須是字符型、整形這種能判斷是不是相等的~因爲switch判斷時候只有case 1:,沒有case >1之類的.樓上說的很對.其實你能不能用switch想想就知道.沒什麼深奧的

循環結構(1)

(1)while循環結構的語法和執行順序是什麼?
1.聲明並初始化循環變量。
2.判斷循環條件是否滿足,如果滿足則執行循環操作:否則退出循環。
3.執行完循環操作後,再次判斷循環條件,決定繼續執行循環或退出循環。
▲while循環結構如果第一次判斷循環條件就不滿足,則會直接跳出循環,循環操作一遍都不會執行。這是while循環結構的一個特點:先判斷,後執行。
(2)do—while循環結構的語法和執行順序是什麼?
1.聲明並初始化循環變量。
2.執行一遍循環操作。
3.判斷循環條件,如果循環條件滿足,則循環繼續執行,否則退出循環。
do—while循環的特點是先執行,再判斷。
(3)利用循環結構解決問題的一般步驟是什麼?
答:分析循環條件和循環操作套用循環的語法寫出代碼檢查循環能否退出

循環結構(2)

預習並回答以下問題
(1)for循環結構的語法和執行順序是什麼?
1.for循環結構:先執行初始化部分,在進行條件判斷,然後執行循環體,最後進行迭代部分的計算。如果條件不成立,跳出循環。
(2)什麼情況下適合使用for循環結構?
1.適用情況不同。
在解決問題時,對於循環次數確定的情況,通常選用for循環結構;對於循環次數不確定的情況,通常選用while和do—while循環結構。
(3)說明在循環結構中break語句和continue語句大的區別。
1.break語句用於終止某個循環,程序跳轉到循環體外的下一條語句。
2.continue語句用於跳出本次循環,進入下次一循環的語句。

循環結構綜合學習

(1)java中的基本數據類型有哪些?

  1. 整型:byte、short、int、long。
  2. 浮點型(雙精度):double、float。
  3. 字符型:char。
  4. 布爾型:boolean。
  5. 字符串:String。

(2)java運算符有哪幾類?其作用分別是什麼?
1.算術運算符:+ - * / %
2.關係運算符(比較運算符):> >= < <= != ==
3.賦值運算符:=
(3)簡述選擇結構有哪幾種形式,每種形式的特點是什麼?

1.◆基本if選擇結構:可以處理單一或組合條件的情況。
if(條件){
	//代碼塊
}
2.◆if—else選擇結構:可以處理簡單的條件分支情況。這種形式結構簡單,但在實際開發中使用非常頻繁。
if(條件){
	//代碼塊1
}else{
	//代碼塊2
}
3.◆多重if選擇結構:可以處理複雜的條件分支情況。多重if選擇結構在解決需要判斷的條件是連續的區間時有很大的優勢。
if(條件1){
	//代碼塊1
}else if(條件2){
	//代碼塊2
}else{
	//代碼塊3
}
4.◆嵌套if選擇結構:在if選擇結構中又包含一個或多個if選擇結構的情況,這種結構一般用於較爲複雜的流程控制中。if選擇結構嵌套的形式很多。
if(條件1){
	if(條件2){
		//代碼塊1
	}else{
		//代碼塊2
	}
}else{
	if(條件3){
		//代碼塊3
	 }else{
		//代碼塊4
	 }
}
5.◆當需要多重分支並且條件判斷是等值判斷的情況下,使用switch選擇結構代替多重if選擇結構會更簡單,代碼結構更清晰易讀。
switch(表達式){
	case 常量 1:
		//代碼塊1;
		break;
	case 常量 2:
		//代碼塊2;
		break;
	......
	default:
		//代碼塊n;
		break;
}

(4)簡述循環結構有哪幾種形式,每種形式的特點是什麼?
1.◆while循環結構:先進行條件判斷,再執行循環體。如果條件不成立,退出循環。
while(<條件>){
//循環體
}
2.◆do—while循環結構:先執行循環體,在進行條件判斷,循環體至少執行一次。
do{
//循環體
}while(<條件>);
3.◆for循環結構:先執行初始化部分,再執行條件判斷,然後執行循環體,最後進行迭代部分的計算。如果條件不成立,跳出循環。

數組

(1)數組的基本數據類型有哪些?

數據類型 初始值
int 0
double 0.0
char ‘\u0000’
boolean false

(2)數組有什麼好處?
數組的好處:
特點:相當於用於保存一組元素的容器
好處:
  1、提高代碼的簡潔性和擴展性,且同時開闢多個空間,提高了效率
  2、分類存儲,且空間是連續的,容易查找

(3)數組的基本要素有哪些?
▲數組的動態初始化

1、聲明
  數據類型[] 數組名;或
  數據類型 數組名[];
2、開闢空間
  數組名 = new 數據類型[長度];//長度必不可少
3、手動賦值
  數組名[下標] = 值;
4、使用(打印、運算、判斷等)
  System.out.println(數組名[下標]);
▲數組的靜態初始化

1、聲明並初始化
  數據類型[] 數組名 = new 數據類型[]{值,值,值};
  或 數據類型[] 數組名 = {值,值,值};
    int[] arr = {3,4,5,6,100};
    int[] arr2 = new int[] {3,4,5,6,100};
2、使用
  for(int i=0;i<數組名.length;i++){
    //每一個元素表示爲:數組名[i]
  }

▲注意事項
①數組的元素如果不賦值,也有默認值
  int 0
  double 0.0
  char \u0000
  boolean false
  引用類型 null
②訪問數組的元素時,下標必須在0—長度-1 的範圍內,否則報數組下標越界的異常
③數組的長度,可以通過 數組名.length表示,提高代碼的維護性
④數組的賦值和使用,往往可以通過搭配for循環一起操作
  for(int i=0;i<數組名.length;i++){
    //每一個元素表示爲:數組名[i]
  }

循環結構進階

(1)請寫出至少三種二重循環的形式。

//while與while循環嵌套
while(循環條件1){
	//循環操作1
	while(循環條件2){
		//循環操作2
	}
}

//do—while與do—while循環嵌套
do{
	//循環操作1
	do{
		//循環操作2
	}while(循環條件2);
}while(循環條件1);

//for循環與for循環嵌套
for(循環條件1){
	//循環操作1
	for(循環條件2){
		//循環操作2
	}
}

//while與for循環嵌套
while(循環條件1){
	//循環操作1
	for(循環條件2){
		//循環操作2
	}
}

(2)什麼是二重循環?在內層循環中使用continue和break語句,程序如何跳轉?
1.簡單地說,二重循環就是一個循環體內包含另一個完整的循環結構。
2.continue語句是跳出本次循環,進入下一次循環。break是跳出本層循環,即提前結束本層循環,執行循環下面的語句。

類和對象

(1)簡述類和對象的關係。
1.類和對象的關係是抽象和具體的關係。類是對象的類型,對象是類的實列。
(2)如何定義一個類?
1.定義類名
2.編寫類的屬性
3.編寫類的方法
public class 類名{
}
語法:類名 對象名 = new 類名();
(3)簡述什麼是類和對象,以及二者之間的關係。
1.我們可以把身邊的任何事物看成對象,他具有自己的屬性和方法。
2.我們把具有相同的對象放在一起組成一個類。類是抽象的,而對象是真實存在的。
(4)面向對象程序設計的優點?
◆與人類的思維習慣一致。
◆隱藏信息,提高了程序的可維護性和安全性。
◆提高了程序的可重複性。
(5)使用類的步驟?
◆定義類,使用關鍵字class。
◆創建類的對象,使用關鍵字new。
◆使用類的屬性和方法:使用“ . ”操作符。

類的無參方法

(1)類的方法必須包含哪幾個部分?
◆方法的名稱。
◆方法的返回值類型。
◆方法的主體。
語法:public 返回值類型 方法名(){
//方法的主體
}
(2)成員變量和局部變量有什麼區別?
成員變量:
在類中定義,用來描述對象有什麼。
局部變量:
在類的方法中定義,在使用方法過程中需要臨時保存數據,而這些數據就是保存在局部變量中。(用來臨時保存數據)。
1.在Java中,有成員變量和局部變量,它們的作用域各不相同。
▲作用域不同
▲初始值不同
▲在同一個方法中
▲局部變量可以和成員變量同名。
區別
1、作用域不同
局部變量的作用域僅限定義它的方法(方法開始到方法結束)
成員變量的作用域在整個類內部都是可見的
2、初始值不同
java會給成員變量賦予一個初始值,默認的成員變量的初始值是0
java不會給局部變量賦予初始值

帶參數的方法

1:定義帶參方法
  語法:
     <訪問修飾符> 返回值類型 <方法名>(<參數類表>){
      //方法的主體
}

2:調試帶參方法:
   語法:
      對象名.方法名(參數1,參數2,……,參數n)
3:調用方法時,需要注意兩點:
      *先實例化對象,再調用方法.
      *實參的類型,數量,順序都要與形參一一對應.
4:調用帶參方法與調用無參方法的語法是相同的,但是在調用帶參方法時必須傳入實際的參數的值.
5:形參是在定義方法的時候對參數的稱呼,實參是在調用方法時傳遞給方法的實際的值.
6:Java中提供包來管理類.聲明包使用關鍵字package,導入包使用關鍵字import.

字符串

(1)請至少寫出四個String類操作字符串的方法。
◆獲取字符串長度:length()。
◆比較字符串:equals()。
◆連接字符串:concat()。
◆提取字符串:substring()。
◆拆分字符串:split()。
◆搜索字符串:indexOf。
(2)StringBuffer類與String類不同的方法有哪些?
◆轉換成String類型:toString()。
◆連接字符串:append()。
◆插入字符串:insert()。
(3)StringBuffer類與string類的區別

  1. StringBuffer的運行效率更快,因爲沒有產生中間垃圾對象,一直在原來的值上修改。而String會產生很多中間對象,我們只關心最後的結果,所以這些中間對象都是垃圾,產生了中間變量,導致運行效率低。
  2. StringBuffer用於生成字符串,String用於表示字符串。
  3. StringBuffer是“可變化的量”,也就是在運行時可以修改,不必產生中間對象。String是常量,不可修改,所以會產生中間對象。

(4)根據你的理解,簡要說明使用比較運算符(==)和equals()方法判斷兩個字符串是否相等有什麼區別。
答:1.用於比較引用和比較基本數據類型時具有不同的功能:
比較基本數據類型,如果兩個值相同,則結果爲true
而在比較引用時,如果引用指向內存中的同一對象,結果爲true
2.equals 方法(是String類從它的超類Object中繼承的)被用來檢測兩個對象是否相等,即兩個對象的內容是否相等,區分大小寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章