本文目錄一覽:
- 1、Java基礎面試題都有哪些?
- 2、java練習題求完整代碼
- 3、java題?
- 4、java題..
Java基礎面試題都有哪些?
1.java異常機制的原理與應用\x0d\x0a答:每當程序出現異常之後,如果程序沒有進行相應的處理,則程序會出現中斷現象。\x0d\x0a實際上,產生了異常之後,JVM會拋出一個異常類的實例化對象,如果此時使用了try語句捕獲的話,則可以進行異常的處理,否則,交給JVM進行處理。當try語句捕獲異常之後,將與catch語句的異常類型進行匹配,如果匹配成功則執行catch內的語句。簡單的應用:在所以throws語句的地方加入try-catch。標準應用:try-catch-finally-throw-throws一起使用。 \x0d\x0a\x0d\x0a2. 垃圾回收機制的優點\x0d\x0a答:釋放無用的對象所佔用的空間。方式:自動回收,手動回收。使用System.gc(),實際上調用Runtime.getRuntime().gc()\x0d\x0a\x0d\x0a3. Error與Exception區別\x0d\x0a答:Error是jvm進行處理,是jvm出錯\x0d\x0aexception是可以由程序處理的,可以用try-catch捕獲的\x0d\x0a\x0d\x0a4. final,finally,finallize\x0d\x0a答:final定義的變量的值不能改變,定義的方法不能被覆蓋,定義的類不能被繼承\x0d\x0afinally是異常的統一出口,finallize是垃圾回收前的收尾工作,是Object類定義的\x0d\x0a\x0d\x0a5. Anonymous Inner Class是否可以extends,是否可以implements Interface\x0d\x0a答:允許繼承和實現,因為匿名內部類就是在抽象類和接口的基礎上發展起來的\x0d\x0a\x0d\x0a6. Static Nested Class 與Inner Class的區別\x0d\x0a答:使用Static定義的Class就是外部類,可以通過外部類. 內部類直接訪問\x0d\x0a而Inner Class是不能被外部訪問的,只能通過外部類的實例再找到內部類實例。\x0d\x0a\x0d\x0a7. HashMap and HashTable?\x0d\x0a答:HashMap:1) released in jdk 1.2,new Class 2)採用異步處理方式,性能較高,是非線程安全的 3)允許null\x0d\x0aHashTable:\x0d\x0a1)released in jdk 1.0 ,old Class \x0d\x0a2)採用同步處理方式,性能低,是線程安全的\x0d\x0a3)不允許null\x0d\x0a\x0d\x0a8. assert代表什麼?\x0d\x0a答:asserts是jdk 1.4之後發布的新關鍵字,表示斷言,即程序執行到某個地方肯定是預計的值,一般開發很少使用。要使用assert,必須加上 -ea參數\x0d\x0a\x0d\x0a9. gc是什麼?\x0d\x0a答:gc是garbage collection,垃圾回收,使用gc可以進行垃圾空間的釋放\x0d\x0a\x0d\x0a10. String s = new String(“xyz”)產生了幾個對象?\x0d\x0a答:一個匿名對象xyz,在棧空間內。一個new實例化的對象,在堆空間內。\x0d\x0a\x0d\x0a11. sleep() and wait()?\x0d\x0a答:sleep()是Thread類定義方法,表示線程的休眠,可以自動喚醒\x0d\x0await()方法是Object類定義的方法,需要手動notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源\x0d\x0a\x0d\x0a12. Overload與Override的區別\x0d\x0a答:Overload:重載\x0d\x0a |- 在一個類中定義的若干方法\x0d\x0a |- 所有的方法名相同,但參數類型或個數不同\x0d\x0a |- 只有參數有關,與返回類型無關\x0d\x0aOverride:覆寫\x0d\x0a |- 在繼承的關係中\x0d\x0a |- 子類定義了父類同名的方法,參數類型或個數最好完全一樣。\x0d\x0a |- 訪問權限不能更嚴格\x0d\x0a\x0d\x0a13. abstract class 和 interface有什麼區別?\x0d\x0a答:抽象類:\x0d\x0a |-由抽象方法和常量、變量、全局常量、構造方法、普通方法組成\x0d\x0a |-使用abstract聲明\x0d\x0a |-子類要通過extends繼承抽象類,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法\x0d\x0a |-存在單繼承的局限\x0d\x0a |-抽象類可以實現若干個接口\x0d\x0a接口:\x0d\x0a |-由抽象方法和全局常量組成\x0d\x0a |-使用interface關鍵字\x0d\x0a |-子類要通過implements實現接口,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法\x0d\x0a |-一個子類可以實現多個接口\x0d\x0a |-接口不能繼承一個抽象類,但允許繼承多個接口
java練習題求完整代碼
按照題目要求編寫的用javaBean規範設計的學生類Student的Java程序如下
需要創建user.java.test包,把Student.java文件和Test.java文件放入包中,編譯Student.java文件並且編譯運行Test.java文件得到運行結果
Student.java文件代碼如下
package user.java.test;
import java.io.Serializable;
public class Student implements Serializable{
private static final long serialVersionUID = 1L;
private String no;
private String name;
private double score;
public Student(){}
public Student(String no,String name,double score){
this.no=no;
this.name=name;
this.score=score;
}
public String getNo(){ return no;}
public void setNo(String no){ this.no=no;}
public String getName(){ return name;}
public void setName(String name){ this.name=name;}
public double getScore(){ return score;}
public void setScore(double score){ this.score=score;}
public String toString(){
return “學號:”+no+”,姓名:”+name+”,成績:”+score;
}
public static double getAvg(Student[] sArray){
double sum=0,avg;
for(int i=0;isArray.length;i++){
sum=sum+sArray[i].getScore();
}
avg=sum/sArray.length;
return avg;
}
}
Test.java文件代碼如下
package user.java.test;
public class Test{
public static void main(String[] args){
Student[] sArray=new Student[5];
sArray[0]=new Student(“001″,”張三”,89.5);
sArray[1]=new Student(“002″,”李四”,82.5);
sArray[2]=new Student(“003″,”王五”,93);
sArray[3]=new Student(“004″,”趙六”,73.5);
sArray[4]=new Student(“005″,”孫七”,66);
System.out.println(“這些學生的平均分:”+Student.getAvg(sArray));
for(int i=0;isArray.length;i++){
System.out.println(sArray[i].toString());
}
}
}
java題?
/**
*Person.java
*僅供參考
*/
public class Person{
private String id;//考慮到最後一位可能是X所以不能用long
private String name;
private boolean isFemale;
private int age;
private String hometown;//籍貫
private String address;//住址
public Person(){
this(“111111111111111101″,”張三”,true,24,”未知”,”未知”);
}
public Person(String id,String name,boolean isFemale,int age,String hometown,String address){
this.id=id;
this.name=name;
this.isFemale=isFemale;
this.age=age;
this.hometown=hometown;
this.address=address;
}
public void eating(String food){
System.out.println(name+”在吃”+food);
}
public void shopping(String goods){
System.out.println(name+”在買”+goods);
}
public void sleeping(int time){
System.out.println(name+”睡了”+time+”分鐘”);
}
public void setName(String aName){
if(“”.equals(aName))return;//姓名不能為空
name=aName;
}
public void setName(int aAge){
if(aAge0)return;//年齡不能是負的
age=aAge;
}
public void printPerson(){
System.out.println(“姓名:”+name+”\n身份證號碼:”+id+”\n性別:”+
(isFemale?’女’:’男’)+”\n年齡:”+age+”\n籍貫:”+hometown+”\n住址:”+address);
}
}
java題..
package aa.bb;
import java.util.Scanner;
public class Student {
private String id;
private String name;
private char sex;
private boolean is_gb;
private double math;
private double chinese;
private double english;
private double total;
public Student(){}
Scanner sc = new Scanner(System.in);
public Student(String id,String name,char sex,boolean is_gb){
this.id= id;
this.name = name;
this.sex = sex;
this.is_gb = is_gb;
}
public double total(){
System.out.println(“請輸入數學成績”);
this.math = sc.nextDouble();
System.out.println(“請輸入語文成績”);
this.chinese = sc.nextDouble();
System.out.println(“請輸入外語成績”);
this.english = sc.nextDouble();
this.total = math+chinese+english;
System.out.println(“總分為:”+total);
return total;
}
public void pj(){
System.out.println(“平均分為:”+(total/3));
}
}
package cc;
import aa.bb.Student;
public class Test {
public static void main(String[] args) {
Student s = new Student(“1″,”a”,’男’,false);
s.total();
s.pj();
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/282823.html