激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

最新java面試題及答案

時(shí)間:2024-11-01 23:49:43 偲穎 JAVA認證 我要投稿
  • 相關(guān)推薦

2024年最新java面試題及答案

  無(wú)論是身處學(xué)校還是步入社會(huì ),我們最少不了的就是試題了,借助試題可以為主辦方提供考生某方面的知識或技能狀況的信息。什么類(lèi)型的試題才能有效幫助到我們呢?下面是小編為大家整理的2024年最新java面試題及答案,僅供參考,大家一起來(lái)看看吧。

2024年最新java面試題及答案

  面試題及答案1:

  一、問(wèn)答題(共兩題每題5分)

  1、在軟件開(kāi)發(fā)的形式中,有單獨開(kāi)發(fā)和團隊開(kāi)發(fā),請您分析兩種開(kāi)發(fā)形式的利弊?

  2、除了工資還有什么福利對你具有吸引力?

  二、案例分析(共四題每題5分)

  1、案例一:項目經(jīng)理陳經(jīng)理所在的項目組接到總監分配的一項緊急任務(wù),要求在2天內完成A項目,陳經(jīng)理馬上召集其下屬工程師小張和小黃進(jìn)行工作分配并分析項目要點(diǎn)和各個(gè)要點(diǎn)的主要做法2017年Java工程師面試題2017年Java工程師面試題。時(shí)間已經(jīng)過(guò)去了1天半,工程師小張發(fā)現,根據陳經(jīng)理對項目要點(diǎn)的主要做法行不通,但時(shí)間已經(jīng)所剩不多了。

  問(wèn)題一:如果你是小張,你會(huì )怎么做?為什么?

  問(wèn)題二:由于項目做法的問(wèn)題導致項目的進(jìn)度無(wú)法按總監的要求在2天內完成,總監怪罪下來(lái),你認為這是誰(shuí)的責任,為什么?

  2、案例二:工程師小李和工程師小陳分別在同一個(gè)項目組負責軟件開(kāi)發(fā)工作,他倆是同時(shí)進(jìn)入公司的,而且被分配在鄰座,因此關(guān)系非常好。工程師小李最近發(fā)現小陳經(jīng)常在上班時(shí)間做一些與本公司業(yè)務(wù)無(wú)關(guān)的工作,并且在一次偶然的機會(huì )讓小李發(fā)現,小陳的薪資比自己的薪資要高一倍多。

  問(wèn)題一:如果你是小李,你會(huì )怎么做,為什么?

  問(wèn)題二:如果你是小陳,你發(fā)現做的事情被小李發(fā)現了,你會(huì )怎么做,為什么?

  技術(shù)題

  一、基礎題,共十題每題2分

  1、GC是什么?為什么要有GC?

  2、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?Byte a=1,b=1,bye c=a+b有什么錯?Short a=1,b=1,Short c=a+b有什么錯(答對一個(gè)給0.5分)

  3、Java有沒(méi)有g(shù)oto?

  4、數組有沒(méi)有length()這個(gè)方法? String有沒(méi)有length()這個(gè)方法?

  5、Overload和Override的區別。Overloaded的方法是否可以改變返回值的類(lèi)型?(答對第一句話(huà)即可得滿(mǎn)分,或者意思差不多的即可)

  6、List, Set, Map是否繼承自Collection接口?

  7、構造器Constructor是否可被override?

  8、當一個(gè)線(xiàn)程進(jìn)入一個(gè)對象的一個(gè)synchronized方法后,其它線(xiàn)程是否可進(jìn)入此對象的其它方法?

  9、當一個(gè)對象被當作參數傳遞到一個(gè)方法后,此方法可改變這個(gè)對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?(答對第一句即可得滿(mǎn)分)

  10、EJB中LocalHome的作用是什么?

  二、程序測試題(共四小題每題5分)

  1、談?wù)勀銓σ韵鲁绦虻目捶ā?/p>

  class MyString extends String{

  public static int i = 0;

  private char[] chars = {‘a(chǎn)’,’b’,’c’};

  public MyString(){}

  static{

  System.out.println( “i = ” + ( i++ ) );

  }

  public String getString(){

  String s = “”;

  for( char c : chars ){

  s += c;

  }

  Return s;

  }

  }

  2、請寫(xiě)出以下程序的輸出2017年Java工程師面試題JAVA認證。

  class B {

  private int radius = 10;

  public void draw() {

  System.out.println(“B.draw(), radius = ” + radius);

  }

  public B() {

  System.out.println(“B constructor”);

  draw();

  }

  }

  public class A extends B {

  private int radius = 1;

  public void draw() {

  System.out.println(“A.draw(), radius = ” + radius);

  }

  public A(int radius) {

  this.radius = radius;

  System.out.println(“A constructor”);

  }

  public static void main(String[] args) {

  A a = new A(5);

  }

  }

  3、寫(xiě)出下列程序運行結果。

  public class Test {

  static Test st=new Test();

  static int x ;

  static int y=0 ;

  public Test(){

  x++;

  y++;

  }

  public Test(int x,int y){

  this.x=x;

  this.y=y;

  }

  public static Test getInstance(){ return st ;}

  static{

  int i=0;

  System.out.println(“i=”+i);

  }

  void test() {

  Inner inner2 = new Inner2();

  inner2.display();

  }

  public static void main(String[] args) {

  Test test1=Test.getInstance();

  test1.test();

  System.out.println(“test1:x=” + test1.x+”;y=”+test1.y);

  面試題及答案2:

  1. 下面哪些是Thread類(lèi)的方法()

  A start() B run() C exit() D getPriority()

  答案:ABD

  解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System類(lèi)的方法,如System.exit(0)。

  2. 下面關(guān)于java.lang.Exception類(lèi)的說(shuō)法正確的是()

  A 繼承自Throwable B Serialable CD 不記得,反正不正確

  答案:A

  解析:Java異常的基類(lèi)為java.lang.Throwable,java.lang.Error和java.lang.Exception繼承 Throwable,RuntimeException和其它的Exception等繼承Exception,具體的RuntimeException繼承RuntimeException。

  擴展:錯誤和異常的區別(Error vs Exception)

  1) java.lang.Error: Throwable的子類(lèi),用于標記嚴重錯誤。合理的應用程序不應該去try/catch這種錯誤。絕大多數的錯誤都是非正常的,就根本不該出現的。

  java.lang.Exception: Throwable的子類(lèi),用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運行條件,而非嚴重錯誤,并且鼓勵用戶(hù)程序去catch它。

  2) Error和RuntimeException 及其子類(lèi)都是未檢查的異常(unchecked exceptions),而所有其他的Exception類(lèi)都是檢查了的異常(checked exceptions).

  checked exceptions: 通常是從一個(gè)可以恢復的程序中拋出來(lái)的,并且最好能夠從這種異常中使用程序恢復。比如FileNotFoundException, ParseException等。檢查了的異常發(fā)生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過(guò)。

  unchecked exceptions: 通常是如果一切正常的話(huà)本不該發(fā)生的異常,但是的確發(fā)生了。發(fā)生在運行期,具有不確定性,主要是由于程序的邏輯問(wèn)題所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。從語(yǔ)言本身的角度講,程序不該去catch這類(lèi)異常,雖然能夠從諸如RuntimeException這樣的異常中catch并恢復,但是并不鼓勵終端程序員這么做,因為完全沒(méi)要必要。因為這類(lèi)錯誤本身就是bug,應該被修復,出現此類(lèi)錯誤時(shí)程序就應該立即停止執行。 因此,面對Errors和unchecked exceptions應該讓程序自動(dòng)終止執行,程序員不該做諸如try/catch這樣的事情,而是應該查明原因,修改代碼邏輯。

  RuntimeException:RuntimeException體系包括錯誤的類(lèi)型轉換、數組越界訪(fǎng)問(wèn)和試圖訪(fǎng)問(wèn)空指針等等。

  處理RuntimeException的原則是:如果出現 RuntimeException,那么一定是程序員的錯誤。例如,可以通過(guò)檢查數組下標和數組邊界來(lái)避免數組越界訪(fǎng)問(wèn)異常。其他(IOException等等)checked異常一般是外部錯誤,例如試圖從文件尾后讀取數據等,這并不是程序本身的錯誤,而是在應用環(huán)境中出現的外部錯誤。

  3. 下面程序的運行結果是()

  String str1 = "hello";

  String str2 = "he" + new String("llo");

  System.err.println(str1 == str2);

  答案:false

  解析:因為str2中的llo是新申請的內存塊,而==判斷的是對象的地址而非值,所以不一樣。如果是String str2 = str1,那么就是true了。

  4. 下列說(shuō)法正確的有()

  A. class中的constructor不可省略。

  B. constructor必須與class同名,但方法不能與class同名。

  C. constructor在一個(gè)對象被new時(shí)執行。

  D.一個(gè)class只能定義一個(gè)constructor。

  答案:C

  解析:這里可能會(huì )有誤區,其實(shí)普通的類(lèi)方法是可以和類(lèi)名同名的,和構造方法唯一的區分就是,構造方法沒(méi)有返回值。

  5. 具體選項不記得,但用到的知識如下:

  String []a = new String[10];

  則:a[0]~a[9] = null

  a.length = 10

  如果是int []a = new int[10];

  則:a[0]~a[9] = 0

  a.length = 10

  6. 下面程序的運行結果:()

  public static void main(String args[]) {

  Thread t = new Thread() {

  public void run() {

  pong();

  }

  };

  t.run();

  System.out.print("ping");

  }

  static void pong() {

  System.out.print("pong");

  }

  #FormatImgID_0#

  A pingpong B pongping C pingpong和pongping都有可能 D 都不輸出

  答案:B

  解析:這里考的是Thread類(lèi)中start()和run()方法的區別了。start()用來(lái)啟動(dòng)一個(gè)線(xiàn)程,當調用start方法后,系統才會(huì )開(kāi)啟一個(gè)新的線(xiàn)程,進(jìn)而調用run()方法來(lái)執行任務(wù),而單獨的調用run()就跟調用普通方法是一樣的,已經(jīng)失去線(xiàn)程的特性了。因此在啟動(dòng)一個(gè)線(xiàn)程的時(shí)候一定要使用start()而不是run()。

  7. 下列屬于關(guān)系型數據庫的是()

  A. Oracle B MySql C IMS D MongoDB

  答案:AB

  解答:IMS(Information Management System )數據庫是IBM公司開(kāi)發(fā)的兩種數據庫類(lèi)型之一;

  一種是關(guān)系數據庫,典型代表產(chǎn)品:DB2;

  另一種則是層次數據庫,代表產(chǎn)品:IMS層次數據庫。

  非關(guān)系型數據庫有MongoDB、memcachedb、Redis等。

  8. GC線(xiàn)程是否為守護線(xiàn)程?()

  答案:是

  解析:線(xiàn)程分為守護線(xiàn)程和非守護線(xiàn)程(即用戶(hù)線(xiàn)程)。

  只要當前JVM實(shí)例中尚存在任何一個(gè)非守護線(xiàn)程沒(méi)有結束,守護線(xiàn)程就全部工作;只有當最后一個(gè)非守護線(xiàn)程結束時(shí),守護線(xiàn)程隨著(zhù)JVM一同結束工作。

  守護線(xiàn)程最典型的應用就是 GC (垃圾回收器)

  9. volatile關(guān)鍵字是否能保證線(xiàn)程安全?()

  答案:不能

  解析:volatile關(guān)鍵字用在多線(xiàn)程同步中,可保證讀取的可見(jiàn)性,JVM只是保證從主內存加載到線(xiàn)程工作內存的值是最新的讀取值,而非cache中。但多個(gè)線(xiàn)程對

  volatile的寫(xiě)操作,無(wú)法保證線(xiàn)程安全。例如假如線(xiàn)程1,線(xiàn)程2 在進(jìn)行read,load 操作中,發(fā)現主內存中count的值都是5,那么都會(huì )加載這個(gè)最新的值,在線(xiàn)程1堆count進(jìn)行修改之后,會(huì )write到主內存中,主內存中的count變量就會(huì )變?yōu)?;線(xiàn)程2由于已經(jīng)進(jìn)行read,load操作,在進(jìn)行運算之后,也會(huì )更新主內存count的變量值為6;導致兩個(gè)線(xiàn)程及時(shí)用volatile關(guān)鍵字修改之后,還是會(huì )存在并發(fā)的情況。

  10. 下列說(shuō)法正確的是()

  A LinkedList繼承自L(fǎng)ist

  B AbstractSet繼承自Set

  C HashSet繼承自AbstractSet

  D WeakMap繼承自HashMap

  答案:AC

  解析:下面是一張下載的Java中的集合類(lèi)型的繼承關(guān)系圖,一目了然。

  #FormatImgID_1#

  11. 存在使i + 1 < i的數嗎()

  答案:存在

  解析:如果i為int型,那么當i為int能表示的最大整數時(shí),i+1就溢出變成負數了,此時(shí)不就

  擴展:存在使i > j || i <= j不成立的數嗎()

  答案:存在

  解析:比如Double.NaN或Float.NaN,感謝@BuilderQiu網(wǎng)友指出。

  12. 0.6332的數據類(lèi)型是()

  A float B double C Float D Double

  答案:B

  解析:默認為double型,如果為float型需要加上f顯示說(shuō)明,即0.6332f

  13. 下面哪個(gè)流類(lèi)屬于面向字符的輸入流( )

  A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader

  答案:D

  解析:Java的IO操作中有面向字節(Byte)和面向字符(Character)兩種方式。

  面向字節的操作為以8位為單位對二進(jìn)制的數據進(jìn)行操作,對數據不進(jìn)行轉換,這些類(lèi)都是InputStream和OutputStream的子類(lèi)。

  面向字符的操作為以字符為單位對數據進(jìn)行操作,在讀的時(shí)候將二進(jìn)制數據轉為字符,在寫(xiě)的時(shí)候將字符轉為二進(jìn)制數據,這些類(lèi)都是Reader和Writer的子類(lèi)。

  總結:以InputStream(輸入)/OutputStream(輸出)為后綴的是字節流;

  以Reader(輸入)/Writer(輸出)為后綴的是字符流。

  14. Java接口的修飾符可以為()

  A private B protected C final D abstract

  答案:CD

  解析:接口很重要,為了說(shuō)明情況,這里稍微啰嗦點(diǎn):

  (1)接口用于描述系統對外提供的所有服務(wù),因此接口中的成員常量和方法都必須是公開(kāi)(public)類(lèi)型的,確保外部使用者能訪(fǎng)問(wèn)它們;

  (2)接口僅僅描述系統能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;

  (3)接口不涉及和任何具體實(shí)例相關(guān)的細節,因此接口沒(méi)有構造方法,不能被實(shí)例化,沒(méi)有實(shí)例變量,只有靜態(tài)(static)變量;

  (4)接口的中的變量是所有實(shí)現類(lèi)共有的,既然共有,肯定是不變的東西,因為變化的東西也不能夠算共有。所以變量是不可變(final)類(lèi)型,也就是常量了。

  (5) 接口中不可以定義變量?如果接口可以定義變量,但是接口中的方法又都是抽象的,在接口中無(wú)法通過(guò)行為來(lái)修改屬性。有的人會(huì )說(shuō)了,沒(méi)有關(guān)系,可以通過(guò) 實(shí)現接口的對象的行為來(lái)修改接口中的屬性。這當然沒(méi)有問(wèn)題,但是考慮這樣的情況。如果接口 A 中有一個(gè)public 訪(fǎng)問(wèn)權限的靜態(tài)變量 a。按照Java的語(yǔ)義,我們可以不通過(guò)實(shí)現接口的對象來(lái)訪(fǎng)問(wèn)變量 a,通過(guò) A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類(lèi)中是可以這樣做的,那么實(shí)現接口 A 的所有對象也都會(huì )自動(dòng)擁有這一改變后的 a 的值了,也就是說(shuō)一個(gè)地方改變了 a,所有這些對象中 a 的值也都跟著(zhù)變了。這和抽象類(lèi)有什么區別呢,怎么體現接口更高的抽象級別呢,怎么體現接口提供的統一的協(xié)議呢,那還要接口這種抽象來(lái)做什么呢?所以接口中 不能出現變量,如果有變量,就和接口提供的統一的抽象這種思想是抵觸的。所以接口中的屬性必然是常量,只能讀不能改,這樣才能為實(shí)現接口的對象提供一個(gè)統 一的屬性。

  通俗的講,你認為是要變化的東西,就放在你自己的實(shí)現中,不能放在接口中去,接口只是對一類(lèi)事物的屬性和行為更高層次的抽象。對修改關(guān)閉,對擴展(不同的實(shí)現 implements)開(kāi)放,接口是對開(kāi)閉原則的一種體現。

  所以:

  接口的方法默認是public abstract;

  接口中不可以定義變量即只能定義常量(加上final修飾就會(huì )變成常量)。所以接口的屬性默認是public static final 常量,且必須賦初值。

  注意:final和abstract不能同時(shí)出現。

  15. 不通過(guò)構造函數也能創(chuàng )建對象嗎()

  A 是 B 否

  答案:A

  解析:Java創(chuàng )建對象的幾種方式(重要):

  (1) 用new語(yǔ)句創(chuàng )建對象,這是最常見(jiàn)的創(chuàng )建對象的方法。

  (2) 運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類(lèi)的newInstance()實(shí)例方法。

  (3) 調用對象的clone()方法。

  (4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。

  (1)和(2)都會(huì )明確的顯式的調用構造函數 ;(3)是在內存上對已有對象的影印,所以不會(huì )調用構造函數 ;(4)是從文件中還原類(lèi)的對象,也不會(huì )調用構造函數。

  坐完筆試后,很多人都希望能提前預知面試題目,最好的方法就是整理一些經(jīng)典的面試題,java面試的專(zhuān)業(yè)性比較強,如果你的基礎不夠扎實(shí),那么最好找些經(jīng)典的java面試題及答案分析,提前參透一下吧!

  java面試題1、說(shuō)說(shuō)HashMap和Hashtable的差別

  答案分析:

  都屬于Map接口的類(lèi),實(shí)現了將惟一鍵映射到特定的值上。

  HashMap類(lèi)沒(méi)有分類(lèi)或排序。他允許一個(gè)null鍵和多個(gè)null值。

  Hashtable類(lèi)似于HashMap,不過(guò)不允許null鍵和null值。他也比HashMap慢,因為他是同步的。

  java面試題2、Anonymous Inner Class (匿名內部類(lèi))是否能extends(繼承)其他類(lèi),是否implements(實(shí)現)interface(接口)?

  答案分析:

  匿名的內部類(lèi)是沒(méi)有名字的內部類(lèi)。不能extends(繼承)其他類(lèi),但一個(gè)內部類(lèi)能作為一個(gè)接口,由另一個(gè)內部類(lèi)實(shí)現。

  java面試題3、STRING與STRINGBUFFER的區別是什么?

  答案分析:

  STRING的長(cháng)度是不可變的,STRINGBUFFER的長(cháng)度是可變的。如果你對字符串中的內容經(jīng)常進(jìn)行操作,特別是內容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。

  java面試題4、什么時(shí)候用assert

  答案分析:

  斷言是個(gè)包含布爾表達式的語(yǔ)句,在執行這個(gè)語(yǔ)句時(shí)假定該表達式為true。如果表達式計算為false,那么系統會(huì )報告一個(gè)AssertionError,他用于調試目的。

  java面試題5、Set里的元素是不能重復的,那么用什么方法來(lái)區分重復和否呢?是用==還是equals()?他們有何差別?

  答案分析:

  Set里的元素是不能重復的,那么用iterator()方法來(lái)區分重復和否。equals()是判讀兩個(gè)Set是否相等。

  equals()和==方法決定引用值是否指向同一對象equals()在類(lèi)中被覆蓋,為的是當兩個(gè)分離的對象的內容和類(lèi)型相配的話(huà),返回真值。

  java面試題6、List, Set, Map是否繼承自Collection接口?

  答案分析:

  List,Set是

  Map不是

【最新java面試題及答案】相關(guān)文章:

java面試題2017及答案03-06

Java main方法面試題及答案03-14

NIIT認證Java面試題及答案03-30

高級Java面試題及答案201602-26

2017年java面試題及答案03-09

2017年經(jīng)典的JAVA面試題及答案03-29

Java工程師面試題及答案10-25

2016年java多線(xiàn)程面試題及答案03-31

2017年java常見(jiàn)面試題及答案03-29

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频