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

Java工程師面試題及答案

時(shí)間:2024-10-25 09:27:55 秀雯 JAVA認證 我要投稿

Java工程師面試題及答案

  在學(xué)習和工作的日常里,我們最不陌生的就是試題了,試題可以幫助參考者清楚地認識自己的知識掌握程度。一份什么樣的試題才能稱(chēng)之為好試題呢?下面是小編整理的Java工程師面試題及答案,歡迎大家借鑒與參考,希望對大家有所幫助。

Java工程師面試題及答案

  Java工程師面試題及答案 1

  1. 如何判斷一個(gè)數是2的冪。

  個(gè)人認為,數字轉化為二進(jìn)制,符號位為0,余下部分有且只有最左邊一位是1,其余位都是0,才是2的冪。原理是 乘二則向左進(jìn)一位。

  2.陷阱面試題:

  在Java中,Throwable是一個(gè)接口還是抽象類(lèi)?

  3.Javascript 題目

  4. 二進(jìn)制算法以及思維陷阱題

  現有一千瓶藥水,其中九百九十九瓶是完全一樣的,只有一瓶里面是毒藥,但是外觀(guān)上分辨不出來(lái)。毒藥如果給小白鼠喝一點(diǎn),一星期后這只小白鼠會(huì )突然死亡,但之前一點(diǎn)癥狀也沒(méi)有,F需要在一星期內找出哪瓶是毒藥,問(wèn)至少需要幾只小白鼠?

  5.Java數據范圍

  在Java中, 有一個(gè)數字,比如100億,可以使用 int 來(lái)存儲嗎?

  100億 * 100億呢,可以用什么類(lèi)型來(lái)存儲?

  這樣計算, int 類(lèi)型是32位,4個(gè)字節,2的10次方是 1024,大約是1K,2^20 = 1M,約100萬(wàn), 2^30= 1G,大約是10億,所以整數只能存大約40億個(gè)數字,正數22E個(gè),所以 100億可以使用long來(lái)存儲,但不能使用 int來(lái)存儲。

  long是64位,因為 32位存放不下100億,所以64位也存放不下 100億 * 100億,只能使用特殊的類(lèi)型啦,比如K神所說(shuō)的 BigInteger,或者 BigDecimal來(lái)存放。

  一個(gè)測試程序:

  6. Java面試題: 如何在一個(gè)interface 中執行一些操作

  7.MySQL中UUID做主鍵如何變得有序呢?

  返回的.結果如下所示:

  8.為什么JSON定義的標準中,屬性名需要用引號引起來(lái)呢,像下面的name一樣?

  應該考慮到各種系統,各種關(guān)鍵字以及標識符的組成不同,而且會(huì )有Map等情況

  9.關(guān)于JVM

  有個(gè)萬(wàn)(wu)能(lai) 的面試技巧,你可以問(wèn)求職者,這個(gè)背后的思想是什么,你理解他的原理嗎,為什么要這樣實(shí)現,如果讓你自己寫(xiě),多長(cháng)時(shí)間做一個(gè)基礎版本出來(lái)?

  GC 有哪幾種, 每個(gè)JDK版本中有什么區別, 哪幾種算法比較好, 適合什么情況, 其回收的思想是什么,怎么實(shí)現的,優(yōu)缺點(diǎn)是什么,你要如何調優(yōu)。。

  10.面試題: Java 中, 下面的這種用法有什么問(wèn)題?

  Date nextMonth = new Date(newDate().getTime() + 30*24*60*60*1000);

  當然,這種用法是很不好的,加一個(gè)月應該使用的是Calendar 類(lèi),Calendar是Java的標準工具類(lèi),在 java.util 包下面.

  Date today = new Date();

  Calendar cal = Calendar.getInstance();

  cal.setTime(today);

  cal.add(Calendar.MONTH, 1); // 加一個(gè)月

  cal.add(Calendar.DATE, -1); // 減一天

  //

  Date nextM = cal.getTime();

  System.out.println(nextM);

  更坑的在這里:

  long n = 30*24*60*60*1000;

  long nl = 30*24*60*60*1000L;

  System.out.println("n="+n);

  System.out.println("nl="+nl);

  可以參考下面的輸出結果:

  n=-1702967296

  nl=2592000000

  提示: int 值可以放下多大的值?

  Java工程師面試題及答案 2

  第一,談?wù)刦inal, finally, finalize的區別。

  final?修飾符(關(guān)鍵字)如果一個(gè)類(lèi)被聲明為final,意味著(zhù)它不能再派生出新的子類(lèi),不能作為父類(lèi)被繼承。因此一個(gè)類(lèi)不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載

  finally?再異常處理時(shí)提供 finally 塊來(lái)執行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì )執行,然后控制就會(huì )進(jìn)入 finally 塊(如果有的話(huà))。

  finalize?方法名。Java 技術(shù)允許使用 finalize 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒(méi)有被引用時(shí)對這個(gè)對象調用的。它是在 Object類(lèi)中定義的,因此所有的類(lèi)都繼承了它。子類(lèi)覆蓋 finalize 方法以整理系統資源或者執行其他清理工作。finalize 方法是在垃圾收集器刪除對象之前對這個(gè)對象調用的。

  第二,HashMap和Hashtable的區別。

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

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

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

  第三,String s = new String("xyz");創(chuàng )建了幾個(gè)String Object?

  兩個(gè)對象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對象s。

  第四,sleep 和 wait 有什么區別? 搞線(xiàn)程的最?lèi)?ài)

  sleep方法是使線(xiàn)程停止一段時(shí)間的方法。在sleep 時(shí)間間隔期滿(mǎn)后,線(xiàn)程不一定立即恢復執行。這是因為在那個(gè)時(shí)刻,其它線(xiàn)程可能正在運行而且沒(méi)有被調度為放棄執行,除非(a)“醒來(lái)”的線(xiàn)程具有更高的優(yōu)先級

  (b)正在運行的線(xiàn)程因為其它原因而阻塞。

  wait是線(xiàn)程交互時(shí),如果線(xiàn)程對一個(gè)同步對象x 發(fā)出一個(gè)wait調用,該線(xiàn)程會(huì )暫停執行,被調對象進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間到。

  第五,short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?

  short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型?尚薷臑閟1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。

  第六,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類(lèi)型?

  方法的重寫(xiě)Overriding和重載Overloading是Java多態(tài)性的不同表現。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現,重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數,我們說(shuō)該方法被重寫(xiě) (Overriding)。子類(lèi)的對象使用這個(gè)方法時(shí),將調用子類(lèi)中的定義,對它而言,父類(lèi)中的定義如同被“屏蔽”了。如果在一個(gè)類(lèi)中定義了多個(gè)同名的`方法,它們或有不同的參數個(gè)數或有不同的參數類(lèi)型,則稱(chēng)為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類(lèi)型。

  第七,Set里的元素是不能重復的,那么用什么方法來(lái)區分重復與否呢? 是用==還是equals? 它們有何區別?

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

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

  第八,error和exception有什么區別?

  error 表示恢復不是不可能但很困難的情況下的一種嚴重問(wèn)題。比如說(shuō)內存溢出。不可能指望程序能處理這樣的情況。

  exception 表示一種設計或實(shí)現問(wèn)題。也就是說(shuō),它表示如果程序運行正常,從不會(huì )發(fā)生的情況。

  第九,給我一個(gè)你最常見(jiàn)到的runtime exception。

  ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,

  ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

  第十,Set里的元素是不能重復的,那么用什么方法來(lái)區分重復與否呢? 是用==還是equals? 它們有何區別?

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

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

【Java工程師面試題及答案】相關(guān)文章:

java面試題2017及答案03-06

Java高級工程師面試題及答案03-24

Java工程師面試題03-29

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

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

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

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

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

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

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