高級(jí)java面試題及答案 (菁選2篇)
高級(jí)java面試題及答案1
1、現(xiàn)在有T1、T2、T3三個(gè)線程,你怎樣保證T2在T1執(zhí)行完后執(zhí)行,T3在T2執(zhí)行完后執(zhí)行?
這個(gè)線程問題通常會(huì)在第一輪或電話面試階段被問到,目的是檢測你對”join”方法是否熟悉。這個(gè)多線程問題比較簡單,可以用join方法實(shí)現(xiàn)。
2、在Java中Lock接口比synchronized塊的優(yōu)勢是什么?你需要實(shí)現(xiàn)一個(gè)高效的緩存,它允許多個(gè)用戶讀,但只允許一個(gè)用戶寫,以此來保持它的完整性,你會(huì)怎樣去實(shí)現(xiàn)它?
lock接口在多線程和并發(fā)編程中最大的優(yōu)勢是它們?yōu)樽x和寫分別提供了鎖,它能滿足你寫像ConcurrentHashMap這樣的高性能數(shù)據(jù)結(jié)構(gòu)和有條件的阻塞。Java線程面試的問題越來越會(huì)根據(jù)面試者的回答來**。我強(qiáng)烈建議在你去參加多線程的面試之前認(rèn)真讀一下Locks,因?yàn)楫?dāng)前其大量用于構(gòu)建電子交易終統(tǒng)的客戶端緩存和交易連接空間。
3、在java中wait和sleep方法的不同?
通常會(huì)在電話面試中經(jīng)常被問到的Java線程面試問題。最大的不同是在等待時(shí)wait會(huì)**鎖,而sleep一直持有鎖。Wait通常被用于線程間交互,sleep通常被用于暫停執(zhí)行。
4、用Java實(shí)現(xiàn)阻塞隊(duì)列。
這是一個(gè)相對艱難的多線程面試問題,它能達(dá)到很多的目的。第一,它可以檢測侯選者是否能實(shí)際的用Java線程寫程序;第二,可以檢測侯選者對并發(fā)場景的理解,并且你可以根據(jù)這個(gè)問很多問題。如果他用wait()和notify()方法來實(shí)現(xiàn)阻塞隊(duì)列,你可以要求他用最新的Java 5中的并發(fā)類來再寫一次。
5、用Java寫代碼來解決生產(chǎn)者——消費(fèi)者問題。
與上面的問題很類似,但這個(gè)問題更經(jīng)典,有些時(shí)候面試都會(huì)問下面的問題。在Java中怎么解決生產(chǎn)者——消費(fèi)者問題,當(dāng)然有很多解決方法,我已經(jīng)分享了一種用阻塞隊(duì)列實(shí)現(xiàn)的方法。有些時(shí)候他們甚至?xí)䥺栐趺磳?shí)現(xiàn)哲學(xué)家進(jìn)餐問題。
6、用Java編程一個(gè)會(huì)導(dǎo)致死鎖的程序,你將怎么解決?
這是我最喜歡的Java線程面試問題,因?yàn)榧词顾梨i問題在寫多線程并發(fā)程序時(shí)非常普遍,但是很多侯選者并不能寫deadlock free code(無死鎖代碼?),他們很掙扎。只要告訴他們,你有N個(gè)資源和N個(gè)線程,并且你需要所有的資源來完成一個(gè)操作。為了簡單這里的n可以替換為2,越大的數(shù)據(jù)會(huì)使問題看起來更復(fù)雜。通過避免Java中的死鎖來得到關(guān)于死鎖的更多信息。
7、什么是原子操作,Java中的原子操作是什么?
非常簡單的java線程面試問題,接下來的'問題是你需要同步一個(gè)原子操作。
8、Java中的volatile關(guān)鍵是什么作用?怎樣使用它?在Java中它跟synchronized方法有什么不同?
自從Java 5和Java內(nèi)存模型改變以后,基于volatile關(guān)鍵字的線程問題越來越流行。應(yīng)該準(zhǔn)備好回答關(guān)于volatile變量怎樣在并發(fā)環(huán)境中確保可見性、順序性和一致性。
高級(jí)java面試題及答案2
1、什么是競爭條件?你怎樣發(fā)現(xiàn)和解決競爭?
這是一道出現(xiàn)在多線程面試的高級(jí)階段的問題。大多數(shù)的面試官會(huì)問最近你遇到的競爭條件,以及你是怎么解決的。有些時(shí)間他們會(huì)寫簡單的代碼,然后讓你檢測出代碼的競爭條件?梢詤⒖嘉抑鞍l(fā)布的關(guān)于Java競爭條件的文章。在我看來這是最好的java線程面試問題之一,它可以確切的檢測候選者解決競爭條件的經(jīng)驗(yàn),or writing code which is free of data race or any other race condition。關(guān)于這方面最好的書是《Concurrency practices in Java》。
2、你將如何使用thread dump?你將如何分析Thread dump?
在UNIX中你可以使用kill -3,然后thread dump將會(huì)打印日志,在windows中你可以使用”CTRL+Break”。非常簡單和專業(yè)的線程面試問題,但是如果他問你怎樣分析它,就會(huì)很棘手。
3、為什么我們調(diào)用start()方法時(shí)會(huì)執(zhí)行run()方法,為什么我們不能直接調(diào)用run()方法?
這是另一個(gè)非常經(jīng)典的java多線程面試問題。這也是我剛開始寫線程程序時(shí)候的困惑,F(xiàn)在這個(gè)問題通常在電話面試或者是在初中級(jí)Java面試的第一輪被問到。這個(gè)問題的回答應(yīng)該是這樣的,當(dāng)你調(diào)用start()方法時(shí)你將創(chuàng)建新的線程,并且執(zhí)行在run()方法里的代碼。但是如果你直接調(diào)用run()方法,它不會(huì)創(chuàng)建新的線程也不會(huì)執(zhí)行調(diào)用線程的代碼。閱讀我之前寫的《start與run方法的區(qū)別》這篇文章來獲得更多信息。
4、 Java中你怎樣喚醒一個(gè)阻塞的線程?
這是個(gè)關(guān)于線程和阻塞的棘手的問題,它有很多解決方法。如果線程遇到了IO阻塞,我并且不認(rèn)為有一種方法可以中止線程。如果線程因?yàn)檎{(diào)用wait()、sleep()、或者join()方法而導(dǎo)致的阻塞,你可以中斷線程,并且通過拋出InterruptedException來喚醒它。我之前寫的《How to deal with blocking methods in java》有很多關(guān)于處理線程阻塞的信息。
5、在Java中CycliBarriar和CountdownLatch有什么區(qū)別?
這個(gè)線程問題主要用來檢測你是否熟悉JDK5中的并發(fā)包。這兩個(gè)的區(qū)別是CyclicBarrier可以重復(fù)使用已經(jīng)通過的障礙,而CountdownLatch不能重復(fù)使用。
6、 什么是不可變對象,它對寫并發(fā)應(yīng)用有什么幫助?
另一個(gè)多線程經(jīng)典面試問題,并不直接跟線程有關(guān),但間接幫助很多。這個(gè)java面試問題可以變的非常棘手,如果他要求你寫一個(gè)不可變對象,或者問你為什么String是不可變的。
7、你在多線程環(huán)境中遇到的共同的問題是什么?你是怎么解決它的?
多線程和并發(fā)程序中常遇到的有Memory-interface、競爭條件、死鎖、活鎖和饑餓。問題是沒有止境的,如果你弄錯(cuò)了,將很難發(fā)現(xiàn)和調(diào)試。這是大多數(shù)基于面試的,而不是基于實(shí)際應(yīng)用的Java線程問題。
高級(jí)java面試題及答案 (菁選2篇)擴(kuò)展閱讀
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展1)
——java高級(jí)面試題及答案3篇
java高級(jí)面試題及答案1
1)Java 中能創(chuàng)建 Volatile 數(shù)組嗎?
能,Java 中可以創(chuàng)建 volatile 類型數(shù)組,不過只是一個(gè)指向數(shù)組的引用,而不是整個(gè)數(shù)組。我的意思是,如果改變引用指向的數(shù)組,將會(huì)受到 volatile 的保護(hù),但是如果多個(gè)線程同時(shí)改變數(shù)組的元素,volatile 標(biāo)示符就不能起到之前的保護(hù)作用了。
2)volatile 能使得一個(gè)非原子操作變成原子操作嗎?
一個(gè)典型的例子是在類中有一個(gè)long 類型的成員變量。如果你知道該成員變量會(huì)被多個(gè)線程訪問,如計(jì)數(shù)器、價(jià)格等,你最好是將其設(shè)置為 volatile。為什么?因?yàn)?Java 中讀取 long 類型變量不是原子的,需要分成兩步,如果一個(gè)線程正在修改該 long 變量的值,另一個(gè)線程可能只能看到該值的一半(前 32 位)。但是對一個(gè) volatile 型的 long 或 double 變量的讀寫是原子。
3)volatile 修飾符的有過什么實(shí)踐?
一種實(shí)踐是用 volatile 修飾 long 和 double 變量,使其能按原子類型來讀寫。double 和 long 都是64位寬,因此對這兩種類型的讀是分為兩部分的,第一次讀取第一個(gè) 32 位,然后再讀剩下的 32 位,這個(gè)過程不是原子的,但 Java 中 volatile 型的 long 或 double 變量的讀寫是原子的。volatile 修復(fù)符的另一個(gè)作用是提供內(nèi)存屏障(memory barrier),例如在分布式框架中的應(yīng)用。簡單的說,就是當(dāng)你寫一個(gè) volatile 變量之前,Java 內(nèi)存模型會(huì)插入一個(gè)寫屏障(writebarrier),讀一個(gè) volatile 變量之前,會(huì)插入一個(gè)讀屏障(read barrier)。意思就是說,在你寫一個(gè) volatile 域時(shí),能保證任何線程都能看到你寫的值,同時(shí),在寫之前,也能保證任何數(shù)值的更新對所有線程是可見的,因?yàn)閮?nèi)存屏障會(huì)將其他所有寫的值更新到緩存。
4)volatile 類型變量提供什么保證?
volatile 變量提供順序和可見性保證,例如,JVM或者 JIT為了獲得更好的性能會(huì)對語句重排序,但是 volatile類型變量即使在沒有同步塊的情況下賦值也不會(huì)與其他語句重排序。 volatile 提供 happens-before 的保證,確保一個(gè)線程的修改能對其他線程是可見的。某些情況下,volatile 還能提供原子性,如讀 64 位數(shù)據(jù)類型,像 long 和 double 都不是原子的,但 volatile 類型的 double 和 long 就是原子的。
5) 10 個(gè)線程和 2 個(gè)線程的同步代碼,哪個(gè)更容易寫?
從寫代碼的角度來說,兩者的復(fù)雜度是相同的,因?yàn)橥酱a與線程數(shù)量是相互**的。但是同步策略的選擇依賴于線程的數(shù)量,因?yàn)樵蕉嗟木程意味著更大的競爭,所以你需要利用同步技術(shù),如鎖分離,這要求更復(fù)雜的代碼和專業(yè)知識(shí)。
6)你是如何調(diào)用 wait()方法的?使用 if 塊還是循環(huán)?為什么?
wait() 方法應(yīng)該在循環(huán)調(diào)用,因?yàn)楫?dāng)線程獲取到CPU 開始執(zhí)行的時(shí)候,其他條件可能還沒有滿足,所以在處理前,循環(huán)檢測條件是否滿足會(huì)更好。下面是一段標(biāo)準(zhǔn)的使用 wait 和 notify 方法的代碼:
// The standard idiom for using the waitmethodsynchronized (obj) {while (condition does not hold)
obj.wait(); // (Releases lock, andreacquires on wakeup)... // Perform action appropriate to condition}
參見 EffectiveJava 第 69 條,獲取更多關(guān)于為什么應(yīng)該在循環(huán)中來調(diào)用 wait 方法的內(nèi)容。
7)Java 中應(yīng)該使用什么數(shù)據(jù)類型來**價(jià)格?
如果不是特別關(guān)心內(nèi)存和性能的話,使用BigDecimal,否則使用預(yù)定義精度的 double 類型。
8)Java 中應(yīng)該使用什么數(shù)據(jù)類型來**價(jià)格?
如果不是特別關(guān)心內(nèi)存和性能的話,使用BigDecimal,否則使用預(yù)定義精度的 double 類型。
9)怎么將 byte 轉(zhuǎn)換為 String?
可以使用 String 接收 byte[] 參數(shù)的構(gòu)造器來進(jìn)行轉(zhuǎn)換,需要注意的點(diǎn)是要使用的正確的編碼,否則會(huì)使用*臺(tái)默認(rèn)編碼,這個(gè)編碼可能跟原來的編碼相同,也可能不同。
java高級(jí)面試題及答案2
1.什么是Java虛擬機(jī)?為什么Java被稱作是“*臺(tái)無關(guān)的編程語言”?
Java虛擬機(jī)是一個(gè)可以執(zhí)行Java字節(jié)碼的虛擬機(jī)進(jìn)程。Java源文件被編譯成能被Java虛擬機(jī)執(zhí)行的字節(jié)碼文件。
Java被設(shè)計(jì)成允許應(yīng)用程序可以運(yùn)行在任意的*臺(tái),而不需要程序員為每一個(gè)*臺(tái)單獨(dú)重寫或者是重新編譯。Java虛擬機(jī)讓這個(gè)變?yōu)榭赡,因(yàn)樗赖讓佑布?臺(tái)的指令長度和其他特性。
2.JDK和JRE的區(qū)別是什么?
Java運(yùn)行時(shí)環(huán)境(JRE)是將要執(zhí)行Java程序的Java虛擬機(jī)。它同時(shí)也包含了執(zhí)行applet需要的'瀏覽器插件。Java開發(fā)工具包(JDK)是完整的Java軟件開發(fā)包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調(diào)試器),可以讓開發(fā)者開發(fā)、編譯、執(zhí)行Java應(yīng)用程序。
3.”static”關(guān)鍵字是什么意思?Java中是否可以覆蓋(override)一個(gè)private或者是static的方法?
“static”關(guān)鍵字表明一個(gè)成員變量或者是成員方法可以在沒有所屬的類的實(shí)例變量的情況下被訪問。
Java中static方法不能被覆蓋,因?yàn)榉椒ǜ采w是基于運(yùn)行時(shí)動(dòng)態(tài)綁定的,而static方法是編譯時(shí)靜態(tài)綁定的。static方法跟類的任何實(shí)例都不相關(guān),所以概念上不適用。
4.是否可以在static環(huán)境中訪問非static變量?
static變量在Java中是屬于類的,它在所有的實(shí)例中的值是一樣的。當(dāng)類被Java虛擬機(jī)載入的時(shí)候,會(huì)對static變量進(jìn)行初始化。如果你的代碼嘗試不用實(shí)例來訪問非static的變量,編譯器會(huì)報(bào)錯(cuò),因?yàn)檫@些變量還沒有被創(chuàng)建出來,還沒有跟任何實(shí)例關(guān)聯(lián)上。
5.Java**的數(shù)據(jù)類型有哪些?什么是自動(dòng)拆裝箱?
Java語言**的8中基本數(shù)據(jù)類型是:
byte
short
int
long
float
double
boolean
char
自動(dòng)裝箱是Java編譯器在基本數(shù)據(jù)類型和對應(yīng)的對象包裝類型之間做的一個(gè)轉(zhuǎn)化。比如:把int轉(zhuǎn)化成Integer,double轉(zhuǎn)化成double,等等。反之就是自動(dòng)拆箱。
6.Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什么意思?
Java中的方法重載發(fā)生在同一個(gè)類里面兩個(gè)或者是多個(gè)方法的方法名相同但是參數(shù)不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數(shù)列表和返回類型。覆蓋者可能不會(huì)限制它所覆蓋的方法的訪問。
7.Java中,什么是構(gòu)造函數(shù)?什么是構(gòu)造函數(shù)重載?什么是復(fù)制構(gòu)造函數(shù)?
當(dāng)新對象被創(chuàng)建的時(shí)候,構(gòu)造函數(shù)會(huì)被調(diào)用。每一個(gè)類都有構(gòu)造函數(shù)。在程序員沒有給類提供構(gòu)造函數(shù)的情況下,Java編譯器會(huì)為這個(gè)類創(chuàng)建一個(gè)默認(rèn)的構(gòu)造函數(shù)。
Java中構(gòu)造函數(shù)重載和方法重載很相似?梢詾橐粋(gè)類創(chuàng)建多個(gè)構(gòu)造函數(shù)。每一個(gè)構(gòu)造函數(shù)必須有它自己唯一的參數(shù)列表。
Java不**像C++中那樣的復(fù)制構(gòu)造函數(shù),這個(gè)不同點(diǎn)是因?yàn)槿绻悴蛔约簩憳?gòu)造函數(shù)的情況下,Java不會(huì)創(chuàng)建默認(rèn)的復(fù)制構(gòu)造函數(shù)。
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展2)
——java面試題及答案3篇
java面試題及答案1
1、String 是最基本的數(shù)據(jù)類型嗎?
答:不是。Java中的基本數(shù)據(jù)類型只有8個(gè):byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type),剩下的都是引用類型(reference type),Java 5以后引入的枚舉類型也算是一種比較特殊的引用類型。
2、float f=3.4;是否正確?
答:不正確。3.4是雙精度數(shù),將雙精度型(double)賦值給浮點(diǎn)型(float)屬于下轉(zhuǎn)型(down-casting,也稱為窄化)會(huì)造成精度損失,因此需要**類型轉(zhuǎn)換float f =(float)3.4; 或者寫成float f =3.4F;。
3、short s1 = 1; s1 = s1 + 1;有錯(cuò)嗎?short s1 = 1; s1 += 1;有錯(cuò)嗎?
答:對于short s1 = 1; s1 = s1 + 1;由于1是int類型,因此s1+1運(yùn)算結(jié)果也是int 型,需要**轉(zhuǎn)換類型才能賦值給short型。而short s1 = 1; s1 += 1;可以正確編譯,因?yàn)閟1+= 1;相當(dāng)于s1 = (short)(s1 + 1);***隱含的**類型轉(zhuǎn)換。
4、Java有沒有g(shù)oto?
答:goto 是Java中的保留字,在目前版本的Java中沒有使用。(根據(jù)James Gosling(Java之父)編寫的《The Java Programming Language》一書的附錄中給出了一個(gè)Java關(guān)鍵字列表,***goto和const,但是這兩個(gè)是目前無法使用的關(guān)鍵字,因此有些地方將其稱之為保留字,其實(shí)保留字這個(gè)詞應(yīng)該有更廣泛的意義,因?yàn)槭煜語言的程序員都知道,在系統(tǒng)類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字)
5.Java 中,throw 和 throws 有什么區(qū)別?
答:throw 用于拋出 java.lang.Throwable 類的一個(gè)實(shí)例化對象,意思是說你可以通過關(guān)鍵字 throw 拋出一個(gè) Error 或者 一個(gè)Exception,如: throw new IllegalArgumentException(“size must be multiple of 2〃) 而throws 的作用是作為方法聲明和簽名的一部分,方法被拋出相應(yīng)的異常以便調(diào)用者能處理。Java 中,任何未處理的受檢查異常**在 throws 子句中聲明。
6.Java 中,Serializable 與 Externalizable 的區(qū)別?
答:Serializable 接口是一個(gè)序列化 Java 類的接口,以便于它們可以在網(wǎng)絡(luò)上傳輸或者可以將它們的狀態(tài)保存在磁盤上,是 JVM 內(nèi)嵌的默認(rèn)序列化方式,成本高、脆弱而且不安全。Externalizable 允許你**整個(gè)序列化過程,指定特定的二進(jìn)制格式,增加安全機(jī)制。
7.Java 中,DOM 和 SAX 解析器有什么不同?
答:”DOM 解析器將整個(gè) XML 文檔加載到內(nèi)存來創(chuàng)建一棵 DOM 模型樹,這樣可以更快的查找節(jié)點(diǎn)和修改 XML 結(jié)構(gòu),而 SAX 解析器是一個(gè)基于事件的解析器,不會(huì)將整個(gè) XML 文檔加載到內(nèi)存。由于這個(gè)原因,DOM 比 SAX 更快,也要求更多的內(nèi)存,不適合于解析大 XML 文件。
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展3)
——java高級(jí)工程師面試題及答案3篇
java高級(jí)工程師面試題及答案1
1. Hibernate中:不看數(shù)據(jù)庫,不看XML文件,不看查詢語句,怎么樣能知道表結(jié)構(gòu)?
解答:可以看與XML文件對應(yīng)的域模型。
2.目前幾種主流數(shù)據(jù)庫軟件的應(yīng)用特點(diǎn)、適用范圍各是什么?
解答:國際**的主導(dǎo)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)有SQL Server、ORACLE、SYBASE、INFORMIX和 DB2。本文從性能,可伸縮性和并行性,安全性,操作簡便,使用風(fēng)險(xiǎn),開放性,易維護(hù)性和價(jià)格,數(shù)據(jù)庫二次開發(fā)方面比較了SQL Server,Oracle、SYBASE、DB2、INFORMIX 數(shù)據(jù)庫:
1)性能
SQL Server:老版本多用戶時(shí)性能不佳,新版本的性能有了明顯的改善,各項(xiàng)處理能力都有了明顯的提高。保持了多項(xiàng)TPC-C(TPC-C值被廣泛用于衡量C/S環(huán)境下,由服務(wù)器和客戶端構(gòu)筑的整體系統(tǒng)的性能,它由事物處理性能委員會(huì)(TPC,Transaction Processing Corp)制定,TPC為非贏利性國際**。)紀(jì)錄。
Oracle :性能最高, 保持Windows NT下的TPC-C的世界記錄。
SYBASE :性能較高,**Sun、IBM、HP、Compaq和Veritas的集群設(shè)備的特性,實(shí)現(xiàn)高可用性。適應(yīng)于安全性要求極高的系統(tǒng)。
DB2 :適用于數(shù)據(jù)倉庫和在線事物處理,性能較高。 客戶端**及應(yīng)用模式。
INFORMIX :性能較高,**集群,實(shí)現(xiàn)高可用性。適應(yīng)于安全性要求極高的系統(tǒng),尤其是銀行,證券系統(tǒng)的應(yīng)用。
2)可伸縮性,并行性
SQL Server :以前版本SQL Server并行實(shí)施和共存模型并不成熟。很難處理大量的用戶數(shù)和數(shù)據(jù)卷。伸縮性有限。新版本性能有了較大的改善,在Microsoft Advanced Servers上有突出的表現(xiàn),超過了他的主要競爭對手。
Oracle :*行服務(wù)器通過使一組結(jié)點(diǎn)共享同一簇中的工作來擴(kuò)展Window NT的能力,提供高可用性和高伸縮性的簇的解決方案。如果Windows NT不能滿足需要, 用戶可以把數(shù)據(jù)庫移到UNIX中,具有很好的伸縮性。
SYBASE :新版本具有較好的并行性,速度快,對巨量數(shù)據(jù)無明顯影響,但是技術(shù)實(shí)現(xiàn)復(fù)雜,需要程序**,伸縮性有限。
DB2 :DB2具有很好的并行性。DB2把數(shù)據(jù)庫管理擴(kuò)充到了并行的、多節(jié)點(diǎn)的環(huán)境。數(shù)據(jù)庫分區(qū)是數(shù)據(jù)庫的一部分,包含自己的數(shù)據(jù)、索引、配置文件、和事務(wù)日志。數(shù)據(jù)庫分區(qū)有時(shí)被稱為節(jié)點(diǎn)或數(shù)據(jù)庫節(jié)點(diǎn),伸縮性有限。
INFORMIX :采用單進(jìn)程多線程的技術(shù),具有較好的并行性。但是僅運(yùn)行于UNIX*臺(tái),伸縮性有限。
3)安全性
SQL server :Microsoft Advanced Server 獲得最高安全認(rèn)證,服務(wù)器*臺(tái)的穩(wěn)定性是數(shù)據(jù)庫的穩(wěn)定性的基礎(chǔ),新版本的SQL的安全性有了極大的提高。 Oracle:獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 SYBASE :通過Sun公司J2EE認(rèn)證測試,獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 DB2 :獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 INFORMIX :獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。
4)操作簡便
SQL Server :操作簡單,采用圖形界面。管理也很方便,而且編程接口特別友好(它的SQL-DMO讓編程變得非常方便!) ,從易維護(hù)性和價(jià)格上SQL Server明顯占有優(yōu)勢。 Oracle :較復(fù)雜, 同時(shí)提供GUI和命令行,在Windows NT和Unix, Linux 下操作相同。對數(shù)據(jù)庫管理人員要求較高。 SYBASE :復(fù)雜,使用命令行操作,對數(shù)據(jù)庫管理人員要求較高。 DB2 :操作簡單,同時(shí)提供GUI和命令行,在Windows NT和Unix下操作相同。 INFORMIX :使用和管理復(fù)雜,命令行操作。對數(shù)據(jù)庫管理人員要求較高。
5)使用風(fēng)險(xiǎn)
SQL Server :完全重寫的代碼,性能和兼容性有了較大的提高,與Oracle,DB2的性能差距明顯減小。該產(chǎn)品的出臺(tái)經(jīng)歷了長期的測試,為產(chǎn)品的安全和穩(wěn)定進(jìn)行了全面的檢測,安全穩(wěn)定性有了明顯的提高。
Oracle :長時(shí)間的開發(fā)經(jīng)驗(yàn),完全向下兼容,可以安全的進(jìn)行數(shù)據(jù)庫的升級(jí),在企業(yè),*中得到廣泛的應(yīng)用。并且如果在WINNT上無法滿足數(shù)據(jù)的要求,可以安全的把數(shù)據(jù)轉(zhuǎn)移到UNIX上來。
SYBASE :開發(fā)時(shí)間較長,升級(jí)較復(fù)雜,穩(wěn)定性較好,數(shù)據(jù)安全有保障。風(fēng)險(xiǎn)小。在安全要求極高的銀行,證券行業(yè)中得到了廣泛的應(yīng)用。
DB2 :在巨型企業(yè)得到廣泛的應(yīng)用,向下兼容性好。風(fēng)險(xiǎn)小。
INFORMIX :開發(fā)時(shí)間較長,升級(jí)較復(fù)雜,穩(wěn)定性較好,數(shù)據(jù)安全有保障。風(fēng)險(xiǎn)小。在安全要求極高的銀行,證券行業(yè)中得到了廣泛的應(yīng)用。
6)開放性
SQL Server:只能在Windows 上運(yùn)行,C/S結(jié)構(gòu),只**Windows客戶,可以用ADO,DAO,OLEDB,ODBC連接。Windows9X系列產(chǎn)品是偏重于桌面應(yīng)用,NT server適合各種大中小型企業(yè)。 操作系統(tǒng)的穩(wěn)定對數(shù)據(jù)庫是十分重要的。Windows*臺(tái)的可靠性,安全性經(jīng)過了最高級(jí)別的C2認(rèn)證的。在處理大數(shù)據(jù)量的關(guān)鍵業(yè)務(wù)時(shí)提供了較好的性能。
Oracle :能在所有主流*臺(tái)上運(yùn)行(包括 Windows)。完全**所有的工業(yè)標(biāo)準(zhǔn)。采用完全開放策略。多層次網(wǎng)絡(luò)計(jì)算,**多種工業(yè)標(biāo)準(zhǔn),可以用ODBC,JDBC,OCI等網(wǎng)絡(luò)客戶連接?梢允箍蛻暨x擇最適合的解決方案。對開發(fā)商全力**。
SYBASE :能在所有主流*臺(tái)上運(yùn)行,在銀行業(yè)中得到了廣泛的應(yīng)用。
DB2 :有較好的開放性,最適于海量數(shù)據(jù)。跨*臺(tái),多層結(jié)構(gòu),**ODBC,JDBC等客戶。在大型的國際企業(yè)中得到最為廣泛的應(yīng)用,在全球的500家最大的企業(yè)中,大部分采用DB2數(shù)據(jù)庫服務(wù)器。
IINFORMIX :僅運(yùn)行在UNIX*臺(tái),包括SUNOS、HPUX、 ALFAOSF/1。在銀行中得到廣泛的應(yīng)用。
7)易維護(hù)性和價(jià)格
SQL Server :從易維護(hù)性和價(jià)格上SQL Server明顯占有優(yōu)勢;贛icrosoft的一貫風(fēng)格,SQL Server的圖形管理界面帶來了明顯的'易用性, 微軟的數(shù)據(jù)庫管理員培訓(xùn)進(jìn)行的比較充分,可以輕松的找到很好的數(shù)據(jù)庫管理員,數(shù)據(jù)庫管理費(fèi)用比較低,SQL Server的價(jià)格也是很低的,但是在License的購買上會(huì)抬高價(jià)格?傮w來說SQL Server的價(jià)格在商用數(shù)據(jù)庫中是最低的。
Oracle :從易維護(hù)性和價(jià)格上來說Oracle的價(jià)格是比較高的,管理比較復(fù)雜,由于Oracle的應(yīng)用很廣泛,經(jīng)驗(yàn)豐富的Oracle數(shù)據(jù)庫管理員可以比較容易的找到,從而實(shí)現(xiàn)Oracle的良好管理。因此Oracle的性能價(jià)格比在商用數(shù)據(jù)庫中是最好的。
SYBASE :SYBASE的價(jià)格是比較低的,但是SYBASE的在企業(yè)和*中的應(yīng)用較少,很難找到經(jīng)驗(yàn)豐富的管理員,運(yùn)行管理費(fèi)用較高。
DB2 :價(jià)格高, 管理員少,在*的應(yīng)用較少,運(yùn)行管理費(fèi)用都很高,適用于大型企業(yè)的數(shù)據(jù)倉庫應(yīng)用。
INFORMIX :價(jià)格在這些系統(tǒng)中居于中間,與SYBASE一樣,在企業(yè)和*中應(yīng)用較少,僅在銀行中得到了廣泛的應(yīng)用。經(jīng)驗(yàn)豐富的管理人員較少,運(yùn)行管理費(fèi)用高。
8)數(shù)據(jù)庫二次開發(fā) SQL Server :數(shù)據(jù)庫的二次開發(fā)工具很多,包括Visual C++, Visual Basic等開發(fā)工具,可以實(shí)現(xiàn)很好的Windows應(yīng)用,開發(fā)容易。 Oracle :數(shù)據(jù)庫的二次開發(fā)工具很多,涵蓋了數(shù)據(jù)庫開發(fā)的各個(gè)階段,開發(fā)容易。 SYBASE :開發(fā)工具較少,經(jīng)驗(yàn)豐富的人員很少。 DB2 :***巨型企業(yè)得到廣泛的應(yīng)用,*的經(jīng)驗(yàn)豐富的人員很少。 INFORMIX :在銀行業(yè)中得到廣泛的應(yīng)用,但是在*的經(jīng)驗(yàn)豐富的人員很少。
3.存儲(chǔ)過程和函數(shù)的區(qū)別
解答:
從參數(shù)的返回情況來看:
如果返回多個(gè)參數(shù)值最好使用存儲(chǔ)過程,如果只有一個(gè)返回值的話可以使用函數(shù)。
從調(diào)用情況來看:
如果在SQL語句(DML或SELECT)中調(diào)用的話一定是存儲(chǔ)函數(shù)或存儲(chǔ)的封裝函數(shù)不可以是存儲(chǔ)過程,但調(diào)用存儲(chǔ)函數(shù)的時(shí)候還有好多限制以及函數(shù)的純度等級(jí)的問題,如果是在過程化語句中調(diào)用的話,就要看你要實(shí)現(xiàn)什么樣的功能。函數(shù)一般情況下是用來計(jì)算并返回一個(gè)計(jì)算結(jié)果而存儲(chǔ)過程一般是用來完成特定的數(shù)據(jù)操作(比如修改、插入數(shù)據(jù)庫表或執(zhí)行某些DDL語句等等),所以雖然他們的語法上很相似但用戶在使用他們的時(shí)候所需要完成的功能大部分情況下是不同的。
java高級(jí)工程師面試題及答案2
1. J2EE是什么?它包括哪些技術(shù)?
解答:從整體上講,J2EE是使用Java技術(shù)開發(fā)企業(yè)級(jí)應(yīng)用的工業(yè)標(biāo)準(zhǔn),它是Java技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級(jí)應(yīng)用過程中的產(chǎn)物。適用于企業(yè)級(jí)應(yīng)用的J2EE,提供一個(gè)**立的、可移植的、多用戶的、安全的和基于標(biāo)準(zhǔn)的企業(yè)級(jí)*臺(tái),從而簡化企業(yè)應(yīng)用的開發(fā)、管理和部署。J2EE是一個(gè)標(biāo)準(zhǔn),而不是一個(gè)現(xiàn)成的產(chǎn)品。
主要包括以下這些技術(shù):
1) Servlet Servlet是Java*臺(tái)上的CGI技術(shù)。Servlet在服務(wù)器端運(yùn)行,動(dòng)態(tài)地生成Web頁面。與傳統(tǒng)的CGI和許多其它類似CGI的技術(shù)相比,Java Servlet具有更高的效率并更容易使用。對于Servlet,重復(fù)的請求不會(huì)導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來**并發(fā)訪問的。
2)JSP
JSP(Java Server Page)是一種實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)頁面輸出混合編碼的技術(shù)。從這一點(diǎn)來看,非常類似Microsoft ASP、PHP等技術(shù)。借助形式上的內(nèi)容和外觀表現(xiàn)的分離,Web頁面制作的任務(wù)可以比較方便地劃分給頁面設(shè)計(jì)人員和程序員,并方便地通過JSP來合成。在運(yùn)行時(shí)態(tài),JSP將會(huì)被首先轉(zhuǎn)換成Servlet,并以Servlet的形態(tài)編譯運(yùn)行,因此它的效率和功能與Servlet相比沒有差別,一樣具有很高的效率。
3) EJB
EJB定義了一組可重用的組件:Enterprise Beans。開發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應(yīng)用。
4)JDBC
JDBC(Java Database Connectivity,Java數(shù)據(jù)庫連接)API是一個(gè)標(biāo)準(zhǔn)SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)數(shù)據(jù)庫訪問接口,它使數(shù)據(jù)庫開發(fā)人員能夠用標(biāo)準(zhǔn)Java API編寫數(shù)據(jù)庫應(yīng)用程序。JDBC API主要用來連接數(shù)據(jù)庫和直接調(diào)用SQL命令執(zhí)行各種SQL語句。利用JDBC API可以執(zhí)行一般的SQL語句、動(dòng)態(tài)SQL語句及帶IN和OUT參數(shù)的存儲(chǔ)過程。Java中的JDBC相當(dāng)于Microsoft*臺(tái)中的ODBC(Open Database Connectivity)。
2.測試生命周期、測試過程分為幾個(gè)階段,以及各階段的含義?
解答:軟件測試生命周期一般包括6個(gè)階段:1)計(jì)劃 2)分析,3)設(shè)計(jì),4)構(gòu)建,5)測試周期,6)最后測試和實(shí)施,
1) 計(jì)劃:產(chǎn)品定義階段
2). 分析:外部文檔階段
3). 設(shè)計(jì):文檔架構(gòu)階段
4). 構(gòu)建:單元測試階段
5). 測試周期:錯(cuò)誤修正,重復(fù)系統(tǒng)測試階段
6). 最后的測試和實(shí)施:代碼凍結(jié)階段
3.您做系統(tǒng)設(shè)計(jì)用何種工具?
解答:Visio, rational rose,power designer等
4. 什么是Web容器?
解答:容器就是一種服務(wù)程序,在服務(wù)器一個(gè)端口就有一個(gè)提供相應(yīng)服務(wù)的程序,而這個(gè)程序就是處理從客戶端發(fā)出的請求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是這樣的容器。
5. 運(yùn)行時(shí)異常與一般異常有何異同?
解答:異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展4)
——java面試題3篇
java面試題1
1、&和&&的區(qū)別?
答:&運(yùn)算符有兩種用法:(1)按位與;(2)邏輯與。&&運(yùn)算符是短路與運(yùn)算。邏輯與跟短路與的差別是非常巨大的,雖然二者都要求運(yùn)算符左右兩端的布爾值都是true整個(gè)表達(dá)式的值才是true。&&之所以稱為短路運(yùn)算是因?yàn),如?&左邊的表達(dá)式的值是false,右邊的表達(dá)式會(huì)被直接短路掉,不會(huì)進(jìn)行運(yùn)算。很多時(shí)候我們可能都需要用&&而不是&,例如在驗(yàn)證用戶登錄時(shí)判定用戶名不是null而且不是空字符串,應(yīng)當(dāng)寫為:username != null &&!username.equals(""),二者的順序不能交換,更不能用&運(yùn)算符,因?yàn)榈谝粋(gè)條件如果不成立,根本不能進(jìn)行字符串的equals比較,否則會(huì)產(chǎn)生NullPointerException異常。注意:邏輯或運(yùn)算符(|)和短路或運(yùn)算符(||)的差別也是如此。
補(bǔ)充:如果你熟悉JavaScript,那你可能更能感受到短路運(yùn)算的強(qiáng)大,想成為JavaScript的高手就先從玩轉(zhuǎn)短路運(yùn)算開始吧。
2、解釋內(nèi)存中的棧(stack)、堆(heap)和靜態(tài)區(qū)(static area)的用法。
答:通常我們定義一個(gè)基本數(shù)據(jù)類型的變量,一個(gè)對象的引用,還有就是函數(shù)調(diào)用的現(xiàn)場保存都使用內(nèi)存中的?臻g;而通過new關(guān)鍵字和構(gòu)造器創(chuàng)建的對象放在堆空間;程序中的字面量(literal)如直接書寫的100、"hello"和常量都是放在靜態(tài)區(qū)中。?臻g操作起來最快但是棧很小,通常大量的對象都是放在堆空間,理論上整個(gè)內(nèi)存沒有被其他進(jìn)程使用的空間甚至硬盤上的虛擬內(nèi)存都可以被當(dāng)成堆空間來使用。
String str = new String("hello");
上面的語句中變量str放在棧上,用new創(chuàng)建出來的字符串對象放在堆上,而"hello"這個(gè)字面量放在靜態(tài)區(qū)。
補(bǔ)充:較新版本的Java(從Java 6的某個(gè)更新開始)中使用了一項(xiàng)叫"逃逸分析"的技術(shù),可以將一些局部對象放在棧上以提升對象的操作性能。
3、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在參數(shù)上加0.5然后進(jìn)行下取整。
4、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int。從Java 5開始,Java中引入了枚舉類型,expr也可以是enum類型,從Java 7開始,expr還可以是字符串(String),但是長整型(long)在目前所有的版本中都是不可以的。
java面試題2
1、數(shù)組有沒有l(wèi)ength()方法?String有沒有l(wèi)ength()方法?
答:數(shù)組沒有l(wèi)ength()方法,有l(wèi)ength 的屬性。String 有l(wèi)ength()方法。JavaScript中,獲得字符串的長度是通過length屬性得到的,這一點(diǎn)容易和Java混淆。
2、在Java中,如何跳出當(dāng)前的多重嵌套循環(huán)?
答:在最外層循環(huán)前加一個(gè)標(biāo)記如A,然后用break A;可以跳出多重循環(huán)。(Java中**帶標(biāo)簽的break和continue語句,作用有點(diǎn)類似于C和C++中的goto語句,但是就像要避免使用goto一樣,應(yīng)該避免使用帶標(biāo)簽的break和continue,因?yàn)樗粫?huì)讓你的程序變得更優(yōu)雅,很多時(shí)候甚至有相反的作用,所以這種語法其實(shí)不知道更好)
3、構(gòu)造器(constructor)是否可被重寫(override)?
答:構(gòu)造器不能被繼承,因此不能被重寫,但可以被重載。
4、兩個(gè)對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
答:不對,如果兩個(gè)對象x和y滿足x.equals(y) == true,它們的哈希碼(hash code)應(yīng)當(dāng)相同。Java對于eqauls方法和hashCode方法是這樣規(guī)定的:(1)如果兩個(gè)對象相同(equals方法返回true),那么它們的.hashCode值一定要相同;(2)如果兩個(gè)對象的hashCode相同,它們并不一定相同。當(dāng)然,你未必要按照要求去做,但是如果你違背了上述原則就會(huì)發(fā)現(xiàn)在使用容器時(shí),相同的對象可以出現(xiàn)在Set集合中,同時(shí)增加新元素的效率會(huì)**下降(對于使用哈希存儲(chǔ)的系統(tǒng),如果哈希碼頻繁的沖突將會(huì)造成存取性能急劇下降)。
java面試題3
問題1:GregorianCalendar類是什么東西?
答案:GregorianCalendar提供了**傳統(tǒng)日歷的**。
問題2:ResourceBundle類是什么?
答案:ResourceBundle用來存儲(chǔ)指定語言環(huán)境的資源,應(yīng)用程序可以根據(jù)運(yùn)行時(shí)的語言環(huán)境來加載這些資源,從而提供不同語言的展示。
問題3:為什么Java里沒有全局變量?
答案:全局變量是全局可見的',Java不**全局可見的變量,因?yàn)椋喝肿兞科茐牧艘猛该餍栽瓌t。全局變量導(dǎo)致了命名空間的沖突。
問題4:SimpleTimeZone類是什么?
答案:SimpleTimeZone提供公歷日期**。
問題5:while循環(huán)和do循環(huán)有什么不同?
答案:while結(jié)構(gòu)在循環(huán)的開始判斷下一個(gè)迭代是否應(yīng)該繼續(xù)。do/while結(jié)構(gòu)在循環(huán)的結(jié)尾來判斷是否將繼續(xù)下一輪迭代。do結(jié)構(gòu)至少會(huì)執(zhí)行一次循環(huán)體。
問題6:Locale類是什么?
答案:Locale類用來根據(jù)語言環(huán)境來動(dòng)態(tài)調(diào)整程序的輸出。
問題7:面向?qū)ο缶幊痰脑瓌t是什么?
答案:主要有三點(diǎn),多態(tài),繼承和封裝。
問題8:介紹下繼承的原則
答案:繼承使得一個(gè)對象可以獲取另一個(gè)對象的屬性。使用繼承可以讓已經(jīng)測試完備的功能得以復(fù)用,并且可以一次修改,所有繼承的地方都同時(shí)生效。
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展5)
——java面試題和答案3篇
java面試題和答案1
1.Java反射機(jī)制的作用?
解答:Java反射機(jī)制的作用是:
1)在運(yùn)行時(shí)判斷任意一個(gè)對象所屬的類。
2)在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對象。
3)在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法。
4)在運(yùn)行時(shí)調(diào)用任意一個(gè)對象的方法
2.你是怎么理解java的泛型的?
解答: 在Java SE 1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實(shí)現(xiàn)參數(shù)的“任意化”,“任意化”帶來的缺點(diǎn)是要做顯式的**類型轉(zhuǎn)換,而這種轉(zhuǎn)換是要求開發(fā)者對實(shí)際參數(shù)類型可以預(yù)知的情況下進(jìn)行的。對于**類型轉(zhuǎn)換錯(cuò)誤的情況,編譯器可能不提示錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異常,這是一個(gè)安全隱患。
泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。
泛型的好處是在編譯的時(shí)候檢查類型安全,并且所有的**轉(zhuǎn)換都是自動(dòng)和隱式的,提高代碼的重用率。
3.JAVA源文件中是否可以包括多個(gè)類,有什么限制
解答:一個(gè)java源文件中可以包含多個(gè)類,每個(gè)源文件中至多有一個(gè)public類,如果有的話,那么源文件的名字必須與之相同。如果源文件中沒有public類,則源文件用什么名字都可以,但最好還是具有特定的意義,免得自己都不記得里面寫的是什么了。
4.請解釋分布式事務(wù)管理?
解答:分布式事務(wù)是指事務(wù)的參與者、**事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。為了實(shí)現(xiàn)分布式事務(wù),需要使用下面將介紹的兩階段提交協(xié)議。
階段一:開始向事務(wù)涉及到的全部資源發(fā)送提交前信息。此時(shí),事務(wù)涉及到的資源還有最后一次機(jī)會(huì)來異常結(jié)束事務(wù)。如果任意一個(gè)資源決定異常結(jié)束事務(wù),則整個(gè)事務(wù)取消,不會(huì)進(jìn)行資源的更新。否則,事務(wù)將正常執(zhí)行,除非發(fā)生災(zāi)難性的失敗。為了防止會(huì)發(fā)生災(zāi)難性的失敗,所有資源的更新都會(huì)寫入到日志中。這些日志是永久性的,因此,這些日志會(huì)幸免遇難并且在失敗之后可以重新對所有資源進(jìn)行更新。
階段二:只在階段一沒有異常結(jié)束的時(shí)候才會(huì)發(fā)生。此時(shí),所有能被定位和單獨(dú)**的資源管理器都將開始執(zhí)行真正的數(shù)據(jù)更新。 在分布式事務(wù)兩階段提交協(xié)議中,有一個(gè)主事務(wù)管理器負(fù)責(zé)充當(dāng)分布式事務(wù)協(xié)調(diào)器的角色。事務(wù)協(xié)調(diào)器負(fù)責(zé)整個(gè)事務(wù)并使之與網(wǎng)絡(luò)中的其他事務(wù)管理器協(xié)同工作。 為了實(shí)現(xiàn)分布式事務(wù),必須使用一種協(xié)議在分布式事務(wù)的各個(gè)參與者之間傳遞事務(wù)上下文信息,IIOP便是這種協(xié)議。這就要求不同開發(fā)商開發(fā)的事務(wù)參與者必須**一種標(biāo)準(zhǔn)協(xié)議,才能實(shí)現(xiàn)分布式的事務(wù)。
java面試題和答案2
1.請用正則表達(dá)式匹配出QQ號(hào)(假設(shè)QQ號(hào)碼為5—10位);
解答: ^ d{5,10}$
2. String, StringBuffer StringBuilder的'區(qū)別。
解答:String的長度是不可變的; StringBuffer的長度是可變的,如果你對字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法;線程安全;
StringBuilder是從 JDK 5 開始,為StringBuffer該類補(bǔ)充了一個(gè)單個(gè)線程使用的等價(jià)類;通常應(yīng)該優(yōu)先使用 StringBuilder 類,因?yàn)樗?*所有相同的操作,但由于它不執(zhí)行同步,所以速度更快。
3.請寫出5種常見到的runtime exception。
解答:
NullPointerException:當(dāng)操作一個(gè)空引用時(shí)會(huì)出現(xiàn)此錯(cuò)誤。
NumberFormatException:數(shù)據(jù)格式轉(zhuǎn)換出現(xiàn)問題時(shí)出現(xiàn)此異常。
ClassCastException:**類型轉(zhuǎn)換類型不匹配時(shí)出現(xiàn)此異常。
ArrayIndexOutOfBoundsException:數(shù)組下標(biāo)越界,當(dāng)使用一個(gè)不存在的數(shù)組下標(biāo)時(shí)出現(xiàn)此異常。
ArithmeticException:數(shù)*行錯(cuò)誤時(shí)出現(xiàn)此異常
4.數(shù)組有沒有l(wèi)ength()這個(gè)方法?String有沒有l(wèi)ength()這個(gè)方法?
解答:數(shù)組沒有l(wèi)ength()方法 它有l(wèi)ength屬性
String有l(wèi)ength()方法。
5.請寫出一個(gè)單例模式。
解答:單例模式(Singleton pattern):確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局的訪問點(diǎn)public class EagerSingleton { private static final EagerSingleton m_instance = new EagerSingleton(); /** * 私有的默認(rèn)構(gòu)造子 */ private EagerSingleton() { } /** * 靜態(tài)工廠方法 */ public static EagerSingleton getInstance() { return m_instance; } }
6.在java中,List是個(gè)接口,那實(shí)現(xiàn)List接口的類有哪些,有什么區(qū)別?
解答: ArrayList是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展6)
——大學(xué)面試題及答案3篇
大學(xué)面試題及答案1
問題1:“請你自我介紹一下”
思路: 1、這是面試的必考題目。 2、介紹內(nèi)容要與個(gè)人簡歷相一致。 3、表述方式上盡量口語化。 4、要切中要害,不談無關(guān)、無用的內(nèi)容。 5、條理要清晰,層次要分明。6、事先最好以文字的形式寫好背熟。
問題2:“談?wù)勀愕募彝デ闆r”
思路:1、 況對于了解應(yīng)聘者的性格、觀念、心態(tài)等有一定的作用,這是招聘單位問該問題的主要原因。 2、 簡單地羅列家庭人口。 3、 宜強(qiáng)調(diào)溫馨和睦的家庭氛圍。 4、 宜強(qiáng)調(diào)父母對自己教育的重視。 5、 宜強(qiáng)調(diào)各位家庭成員的良好狀況。 6、 宜強(qiáng)調(diào)家庭成員對自己工作的**。 7、 宜強(qiáng)調(diào)自己對家庭的責(zé)任感。
問題3:“你有什么業(yè)余愛好?”
思路: 1、 業(yè)余愛好能在一定程度上反映應(yīng)聘者的性格、觀念、心態(tài),這是招聘單位問該問題的主要原因。 2、 最好不要說自己沒有業(yè)余愛好。 3、 不要說自己有那些庸俗的、令人感覺不好的`愛好。 4、 最好不要說自己僅限于讀書、聽音樂、上網(wǎng),否則可能令面試官懷疑應(yīng)聘者性格孤僻。 5、 最好能有一些戶外的業(yè)余愛好來“點(diǎn)綴”你的形象。
問題4:“你最崇拜誰?”
思路: 1、 最崇拜的人能在一定程度上反映應(yīng)聘者的性格、觀念、心態(tài),這是面試官問該問題的主要原因。 2、 不宜說自己誰都不崇拜。 3、 不宜說崇拜自己。 4、 不宜說崇拜一個(gè)虛幻的、或是不知名的人。 5、 不宜說崇拜一個(gè)明顯具有負(fù)面形象的人。 6、 所崇拜的人人最好與自己所應(yīng)聘的工作能“搭”上關(guān)系。 7、 最好說出自己所崇拜的人的哪些品質(zhì)、哪些思想感染著自己、鼓舞著自己。
大學(xué)面試題及答案2
問題1:“你的座右銘是什么?”
思路: 1、座右銘能在一定程度上反映應(yīng)聘者的性格、觀念、心態(tài),這是面試官問這個(gè)問題的主要原因。 2、不宜說那些易引起不好聯(lián)想的座右銘。 3、不宜說那些太抽象的座右銘。 4、不宜說太長的座右銘。 5、座右銘最好能反映出自己某種優(yōu)秀品質(zhì)。 6、 參***——“只為成功找方法,不為失敗找借口”
問題2:“談?wù)勀愕娜秉c(diǎn)”
思路: 1、 不宜說自己沒缺點(diǎn)。 2、 不宜把那些明顯的優(yōu)點(diǎn)說成缺點(diǎn)。 3、 不宜說出嚴(yán)重影響所應(yīng)聘工作的缺點(diǎn)。 4、 不宜說出令人不放心、不舒服的缺點(diǎn)。 5、 可以說出一些對于所應(yīng)聘工作“無關(guān)緊要”的缺點(diǎn),甚至是一些表面上看是缺點(diǎn),從工作的角度看卻是優(yōu)點(diǎn)的缺點(diǎn)。
問題3:“談一談你的一次失敗經(jīng)歷”
思路: 1、 不宜說自己沒有失敗的經(jīng)歷。 2、 不宜把那些明顯的成功說成是失敗。 3、 不宜說出嚴(yán)重影響所應(yīng)聘工作的失敗經(jīng)歷, 4、 所談經(jīng)歷的結(jié)果應(yīng)是失敗的。 5、 宜說明失敗之前自己曾信心白倍、盡心盡力。 6、 說明僅僅是由于外在客觀原因?qū)е率 ?7、 失敗后自己很快振作起來,以更加飽滿的熱情面對以后的工作。
問題4:“你為什么選擇我們公司?”
思路: 1、 面試官試圖從中了解你求職的動(dòng)機(jī)、愿望以及對此項(xiàng)工作的態(tài)度。 2、 建議從行業(yè)、企業(yè)和崗位這三個(gè)角度來回答。 3、 參***——“我十分看好貴公司所在的行業(yè),我認(rèn)為貴公司十分重視人才,而且這項(xiàng)工作很適合我,相信自己一定能做好!
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展7)
——常見軟件測試面試題及答案 (菁選2篇)
常見軟件測試面試題及答案1
1. 測試覆蓋的類型
測試覆蓋的類型有:語句覆蓋、判定覆蓋、條件覆蓋、判定/
條件覆蓋、條件組合覆蓋、路徑覆蓋
2. 性能測試的分類
分為:性能測試、負(fù)載測試、壓力測試、容量測試 負(fù)載測試與壓力測試可以結(jié)合進(jìn)行。
3. 列舉您熟悉的主流自動(dòng)化測試工具
我熟悉的自動(dòng)化測試工具有:基于web的測試管理工具TestDirector、配置管理工具VSS、QTP以及性能測試工具LoadRunner
4. c/s和b/s結(jié)構(gòu)的軟件進(jìn)行測試時(shí)有何不同
C/S又稱Client/Server或客戶/服務(wù)器模式。服務(wù)器通常采用高性能的PC、工作站或小型機(jī),并采用大型數(shù)據(jù)庫系統(tǒng)。客戶端需要安裝專用的客戶端軟件。 B/S是Brower/Server的縮寫,客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser)。瀏覽器通過Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。
5.頁面中有一個(gè)輸入日期的輸入框和一個(gè)輸入身份證號(hào)的輸入框,如何進(jìn)行用例設(shè)計(jì)?
輸入日期的輸入框要考慮邊界值、輸入非法數(shù)據(jù)、非數(shù)字等 省份證輸入框要考慮18位省份證、16位身份證、非18、16位的數(shù)據(jù)、漢字、字母、非法數(shù)據(jù)、
常見軟件測試面試題及答案2
1.測試和質(zhì)量保證有什么區(qū)別 你的看法
質(zhì)量保證是對軟件制作過程的制作質(zhì)量進(jìn)行管理,看是否符合公司的規(guī)定。軟件測試是對軟件產(chǎn)品的質(zhì)量本身進(jìn)行測試,是從技術(shù)方面出發(fā)測試軟件質(zhì)量
2.用過什么缺陷管理工具 流程是什么
有什么能改進(jìn)的 我所熟悉的是TD 流程是講測試計(jì)劃、方案、測試用例錄入TD,在TD上執(zhí)行測試用例記錄缺陷,并對bug進(jìn)行跟蹤。
3.你有沒有用過QTP做項(xiàng)目,QTP的工作原理
我有用QTP做過項(xiàng)目QTP的工作原理是執(zhí)行重復(fù)的手動(dòng)測試, 首先制定測試計(jì)劃再根據(jù)測試計(jì)劃創(chuàng)建測試腳本,然后對腳本進(jìn)行優(yōu)化增強(qiáng)測試腳本的.能接下來運(yùn)行腳本分析測試的結(jié)果
4.什么是白盒測試?白盒測試的工具有哪些?
白盒測試是測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有的邏輯路徑進(jìn)行測試。
工具有:RationalPurify 、Rational Quantify 、Rational Purecoveage
5. 路由器,集線器,交換機(jī)的區(qū)別?
路由器的作用是用于連接不同網(wǎng)段并且找到網(wǎng)絡(luò)中數(shù)據(jù)傳輸最合適的路徑。集線器的作用是將一些pc機(jī)連起來組成一個(gè)局域網(wǎng)。交換機(jī)的作用與集線器的相似,區(qū)別在于集線器采用的是共享帶寬的方式,交換機(jī)是獨(dú)享帶寬。
6. 我手上這支筆,請你根據(jù)這支筆設(shè)計(jì)測試用例
首先我要測它的外觀、顏色是否符合要求、她所占的空間是多大、是否環(huán)保、接下來測它的質(zhì)量、這支筆是否能夠?qū)懽至鲿场懗龅淖缘妙伾欠穹弦、能使用多長時(shí)間等
BUG報(bào)告包括那些內(nèi)容
Bug出現(xiàn)的位置、可重現(xiàn)的步驟、所使用的數(shù)據(jù)、bug的截圖、發(fā)現(xiàn)人及日期。
7.W和H模型的區(qū)別
W模型強(qiáng)調(diào)的是測試伴隨整個(gè)軟件開發(fā)周期,而且測試的對象不僅是程序,需求也需要進(jìn)行測試,測試與開發(fā)是同步進(jìn)行的。 H模型是講測試活動(dòng)玩卻的**出來,形成了完全**的流程,可以實(shí)現(xiàn)迭代而W模型不**迭代這是兩者最打的區(qū)別。
8. 沒有任何說明書,如何進(jìn)行測試?
首先是通過對軟件測使用來熟悉整個(gè)軟件,接著是與開發(fā)溝通掌握軟件的特性并一一記錄下來,作為測試的依據(jù)
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展8)
——數(shù)據(jù)分析面試題及答案 (菁選2篇)
數(shù)據(jù)分析面試題及答案1
一、異常值是指什么?請列舉1種識(shí)別連續(xù)型變量異常值的方法?
異常值(Outlier) 是指樣本中的個(gè)別值,其數(shù)值明顯偏離所屬樣本的其余觀測值。在數(shù)理統(tǒng)計(jì)里一般是指一組觀測值中與*均值的偏差超過兩倍標(biāo)準(zhǔn)差的測定值。
Grubbs’ test(是以Frank E. Grubbs命名的),又叫maximum normed residual test,是一種用于單變量數(shù)據(jù)集異常值識(shí)別的統(tǒng)計(jì)檢測,它假定數(shù)據(jù)集來自正態(tài)分布的總體。 未知總體標(biāo)準(zhǔn)差σ,在五種檢驗(yàn)法中,優(yōu)劣次序?yàn)椋簍檢驗(yàn)法、格拉布斯檢驗(yàn)法、峰度檢驗(yàn)法、狄克遜檢驗(yàn)法、偏度檢驗(yàn)法。
二、什么是聚類分析?聚類算法有哪幾種?請選擇一種詳細(xì)描述其計(jì)算原理和步驟。 聚類分析(cluster ****ysis)是一組將研究對象分為相對同質(zhì)的群組(clusters)的統(tǒng)計(jì)分析技術(shù)。 聚類分析也叫分類分析(classification ****ysis)或數(shù)值分類(numerical taxonomy)。聚類與分類的不同在于,聚類所要求劃分的類是未知的。
聚類分析計(jì)算方法主要有: 層次的方法(hierarchical method)、劃分方法(partitioning method)、基于密度的方法(density-based method)、基于網(wǎng)格的方法(grid-based method)、基于模型的方法(model-based method)等。其中,前兩種算法是利用統(tǒng)計(jì)學(xué)定義的距離進(jìn)行度量。
k-means 算法的工作過程說明如下:首先從n個(gè)數(shù)據(jù)對象任意選擇 k 個(gè)對象作為初始聚類中心;而對于所剩下其它對象,則根據(jù)它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所**的)聚類;然 后再計(jì)算每個(gè)所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重復(fù)這一過程直到標(biāo)準(zhǔn)測度函數(shù)開始收斂為止。一般都采用均方差作為標(biāo)準(zhǔn)測度函數(shù). k個(gè)聚類具有以下特點(diǎn):各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。
其流程如下:
(1)從 n個(gè)數(shù)據(jù)對象任意選擇 k 個(gè)對象作為初始聚類中心;
(2)根據(jù)每個(gè)聚類對象的均值(中心對象),計(jì)算每個(gè)對象與這些中心對象的距離;并根據(jù)最小距離重新對相應(yīng)對象進(jìn)行劃分;
(3)重新計(jì)算每個(gè)(有變化)聚類的均值(中心對象);
(4)循環(huán)(2)、(3)直到每個(gè)聚類不再發(fā)生變化為止(標(biāo)準(zhǔn)測量函數(shù)收斂)。
優(yōu)點(diǎn):本算法確定的K 個(gè)劃分到達(dá)*方誤差最小。當(dāng)聚類是密集的,且類與類之間區(qū)別明顯時(shí),效果較好。對于處理大數(shù)據(jù)集,這個(gè)算法是相對可伸縮和高效的,計(jì)算的復(fù)雜度為 O(NKt),其中N是數(shù)據(jù)對象的數(shù)目,t是迭代的次數(shù)。一般來說,K< 一、根據(jù)要求寫出SQL 表A結(jié)構(gòu)如下: Member_ID (用戶的ID,字符型) Log_time (用戶訪問頁面時(shí)間,日期型(只有一天的數(shù)據(jù))) URL (訪問的頁面地址,字符型) 要求:提取出每個(gè)用戶訪問的第一個(gè)URL(按時(shí)間最早),形成一個(gè)新表(新表名為B,表結(jié)構(gòu)和表A一致) create table B as select Member_ID, min(Log_time), URL from A group by Member_ID ; 二、銷售數(shù)據(jù)分析 以下是一家B2C電子商務(wù)網(wǎng)站的一周銷售數(shù)據(jù),該網(wǎng)站主要用戶群是辦公室女性,銷售額主要集中在5種產(chǎn)品上,如果你是這家公司的分析師, a) 從數(shù)據(jù)中,你看到了什么問題?你覺得背后的原因是什么? b) 如果你的老板要求你提出一個(gè)運(yùn)營改進(jìn)計(jì)劃,你會(huì)怎么做? 表如下:一組每天某網(wǎng)站的銷售數(shù)據(jù) a) 從這一周的數(shù)據(jù)可以看出,周末的銷售額明顯偏低。這其中的原因,可以從兩個(gè)角度來看:站在消費(fèi)者的角度,周末可能不用上班,因而也沒有購買該產(chǎn)品的欲望;站在產(chǎn)品的角度來看,該產(chǎn)品不能在周末的時(shí)候引起消費(fèi)者足夠的***。 b) 針對該問題背后的兩方面原因,我的運(yùn)營改進(jìn)計(jì)劃也分兩方面:一是,針對消費(fèi)者周末沒有購買欲望的心理,進(jìn)行引導(dǎo)提醒消費(fèi)者周末就應(yīng)該準(zhǔn)備好該產(chǎn)品;二是,通過該產(chǎn)品的一些類似于打折促銷等活動(dòng)來提升該產(chǎn)品在周末的人氣和購買力。 三、用戶調(diào)研 某公司針對A、B、C三類客戶,提出了一種**的改進(jìn)計(jì)劃,用于提升客戶的周消費(fèi)次數(shù),需要你來制定一個(gè)事前試驗(yàn)方案,來**決策,請你思考下列問題: a) 試驗(yàn)需要為決策提供什么樣的信息? c) 按照上述目的,請寫出你的數(shù)據(jù)抽樣方法、需要采集的'數(shù)據(jù)指標(biāo)項(xiàng),以及你選擇的統(tǒng)計(jì)方法。 a) 試驗(yàn)要能證明該改進(jìn)計(jì)劃能顯著提升A、B、C三類客戶的周消費(fèi)次數(shù)。 b) 根據(jù)三類客戶的數(shù)量,采用分層比例抽樣; 需要采集的數(shù)據(jù)指標(biāo)項(xiàng)有:客戶類別,改進(jìn)計(jì)劃前周消費(fèi)次數(shù),改進(jìn)計(jì)劃后周消費(fèi)次數(shù); 選用統(tǒng)計(jì)方法為:分別針對A、B、C三類客戶,進(jìn)行改進(jìn)前和后的周消費(fèi)次數(shù)的,兩**樣本T-檢驗(yàn)(two-sample t-test)。 ——財(cái)務(wù)面試題及答案 (菁選2篇) 1,固定資產(chǎn)賬面價(jià)值在什么情況下會(huì)出現(xiàn)負(fù)值? 什么情況下都不應(yīng)該出現(xiàn)負(fù)值,現(xiàn)在的準(zhǔn)則不允許負(fù)資產(chǎn)的存在,包括負(fù)商譽(yù)。 理論上固定資產(chǎn)超齡服役繼續(xù)計(jì)提折舊,或超價(jià)值計(jì)提減值準(zhǔn)備等都可能造成固定資產(chǎn)出現(xiàn)負(fù)值,但這樣做會(huì)使資產(chǎn)負(fù)債表上的資產(chǎn)總額減少,而實(shí)際上其他資產(chǎn)價(jià)值并沒有減少,會(huì)誤導(dǎo)信息使用者。所以所有資產(chǎn)出現(xiàn)負(fù)值時(shí),最多在備查簿上予以記錄。 2,新會(huì)計(jì)準(zhǔn)則出臺(tái)后,對企業(yè)的影響有哪些? 二、新會(huì)計(jì)準(zhǔn)則實(shí)施對企業(yè)的影響 (一)新會(huì)計(jì)準(zhǔn)則對企業(yè)業(yè)績的影響 (二)有利于提高企業(yè)的會(huì)計(jì)信息質(zhì)量 (三)有利于提高企業(yè)整體管理水* 3,企業(yè)所得稅的**對**企業(yè)的影響是什么? 企業(yè)所得稅稅率**前,企業(yè)所得稅率是33%,新的<*******所得稅法>規(guī)定一般企業(yè)所得稅的稅率為25%,非居民企業(yè)在*境內(nèi)未設(shè)立機(jī)構(gòu)、場所的,或者雖設(shè)立機(jī)構(gòu)、場所但取得的所得與其所設(shè)機(jī)構(gòu)、場所沒有實(shí)際聯(lián)系的,應(yīng)當(dāng)就其來源于*境內(nèi)的所得繳納企業(yè)所得稅。稅率為20%. 符合條件的小型微利企業(yè),減按20%的稅率征收企業(yè)所得稅。國家需要重點(diǎn)扶持的高新技術(shù)企業(yè),減按15%的稅率征收企業(yè)所得稅。企業(yè)所得稅率的降低對**企業(yè)來說有一個(gè)很好的推動(dòng)作用,使得企業(yè)的競爭環(huán)境更加公*和有利。 4,企業(yè)應(yīng)該如何面對金融危機(jī)? 一、加大力度,催收貨款。 二、減人增效,降低成本,保本經(jīng)營。 三、穩(wěn)定市場,站穩(wěn)腳跟。。 四、降低庫存,盤活資產(chǎn)。 5,面對金融風(fēng)暴,作為一名管理人員,集體減薪和裁員你會(huì)選擇哪一個(gè)? 這個(gè)問題主管因素比較多。我的回答是:我會(huì)選擇集體減薪,原因是我認(rèn)為企業(yè)是一個(gè)集體,只有大家齊心協(xié)力,才能度過難關(guān),企業(yè)發(fā)展的好,自然多得,既然企業(yè)現(xiàn)在處于危機(jī)之中,大家更應(yīng)該團(tuán)結(jié)在一起,待企業(yè)度過難關(guān)后,一起分享集體加薪的欣悅也不愧為一種優(yōu)秀的企業(yè)文化。 1,會(huì)計(jì)的6大基本要素是什么? 答案:資產(chǎn)、負(fù)債、所有者權(quán)益、收入、費(fèi)用和利潤 2,會(huì)計(jì)的3大報(bào)表是什么? 答案:資產(chǎn)負(fù)債表,現(xiàn)金流量表,利潤表(也稱為損益表) 3,權(quán)益性支出與資本性支出的差異是什么? 答案:資本性支出:是用于購買或生產(chǎn)使用年限在一年以上的耐用品所需的支出,指企業(yè)單位發(fā)生、其效益及于兩個(gè)或兩個(gè)以上會(huì)計(jì)年度的各項(xiàng)支出,包括構(gòu)成固定資產(chǎn)、無形資產(chǎn)、遞延資產(chǎn)的支出。 收益性支出:也叫期間費(fèi)用。是指企業(yè)單位在經(jīng)營過程中發(fā)生、其效益僅與本會(huì)計(jì)年度相關(guān)、因而由本年收益補(bǔ)償?shù)母黜?xiàng)支出。這些支出發(fā)生時(shí),都應(yīng)記入當(dāng)年有關(guān)成本費(fèi)用科目。 區(qū)別:收益性支出不同于資本性支出,前者全部由當(dāng)年的營業(yè)收入補(bǔ)償,后者先記作資產(chǎn),通過計(jì)提折舊或攤銷分年攤?cè)敫髂瓿杀举M(fèi)用。區(qū)分收益性支出和資本性支出,是為了正確計(jì)算各年損益和正確反映資產(chǎn)的價(jià)值。如把收益性支出作為資本性支出,結(jié)果是少計(jì)了當(dāng)期費(fèi)用,多計(jì)了資產(chǎn)價(jià)值,虛增利潤;反之,則多計(jì)了當(dāng)期費(fèi)用,少計(jì)了資產(chǎn)價(jià)值,虛減利潤 4,固定資產(chǎn)折舊采用的`方法有哪些? 答案:分為兩類:直線法和加速折舊法 其中直線法包括:*均年限法和工作量法 加速折舊法包括:雙倍余額遞減法和年數(shù)總和法 ——邏輯面試題及答案 (菁選2篇) 1.有十種水果: a 有550個(gè),b 有600個(gè),c 有700個(gè),d 有700個(gè),e 有650個(gè),f 有500個(gè),g 500個(gè),h 有600個(gè),i 有600個(gè),j 有500個(gè) 現(xiàn)在有個(gè)1000人小學(xué)校,要求把這些水果*均分到孩子手里 一年級(jí) 200人 每人要求分到:9個(gè) 二年級(jí) 100人 每人要求分到:8個(gè) 三年級(jí) 200人 每人要求分到:5個(gè) 四年級(jí) 100人 每人要求分到:3個(gè) 五年級(jí) 200人 每人要求分到:6個(gè) 六年級(jí) 200人 每人要求分到:4個(gè) 要求:要每個(gè)人手里實(shí)際分到的水果和要求分到的水果恰好相等,沒人多拿沒人少拿,并且所有水果全部分完,一個(gè)不剩 還有一點(diǎn)要求,就是每個(gè)人手里的水果不能有重復(fù)品種的水果的,也就是說,比如:某人手里不能同時(shí)拿到兩個(gè)A水果,這樣是錯(cuò)誤的做法 答:略 析:此題主要考察動(dòng)態(tài)規(guī)劃的決策:需要的總量越多的年級(jí)先分;另外要把a(bǔ)的50和e的50拿出來,放在最后分。 2.兩個(gè)圓環(huán),半徑分別是1和2,小圓在大圓內(nèi)部繞大圓圓周一周,問小圓自身轉(zhuǎn)了幾周?如果在大圓的外部,小圓自身轉(zhuǎn)幾周呢? 答:一樣,都是2周。 析:不管在內(nèi)部還是在外部。小圓滾過的路徑是相同的,都是大圓的周長。 3.小明和小強(qiáng)都是張老師的學(xué)生,張老師的生日是M月N日,2人都知道張老師的生日是下列10組中的一天,張老師把M值告訴了小明,把N值告訴了小強(qiáng),張老師問他們知道他的生日是那一天嗎? 3月4日 3月5日 3月8日 *日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明說:如果我不知道的話,小強(qiáng)肯定也不知道 小強(qiáng)說:本來我也不知道,但是現(xiàn)在我知道了 小明說:哦,那我也知道了 請根據(jù)以上對話推斷出張老師的生日是哪一天 答:9月1日 析:三句話的意思是:1)M月對應(yīng)的所有N日均有兩個(gè)以上,2)而N日對應(yīng)的所有M月只有一個(gè)滿足1)。由1)M可能為3或9,再由2)可得3月和9月中只有N為1時(shí)滿足。 1.有個(gè)小鎮(zhèn)有100對夫婦,每個(gè)丈夫都在欺騙他的妻子。妻子們都無法識(shí)破自己丈夫的謊言,但是她們卻能知道其他任何一個(gè)男人是否在撒謊。鎮(zhèn)上的法律規(guī)定不準(zhǔn)**,妻子一旦證明丈夫不忠就應(yīng)該立刻殺死他,鎮(zhèn)上所有婦女都必須嚴(yán)格遵守這項(xiàng)法律。有一天,鎮(zhèn)上的女王宣布,至少有一個(gè)丈夫是不忠的。結(jié)果小鎮(zhèn)前99天無事兒,而在第100天發(fā)生了答**。這是怎么發(fā)生的呢? 答:這就是黑帽和白帽的題。前99天無事兒,說明每個(gè)妻子都知道除了自己丈夫外的另外99個(gè)男人都**,因此,也就確定了自己的男人也**。 2.有5個(gè)海盜,按照等級(jí)從5到1排列。最大的海盜有權(quán)提議他們?nèi)绾畏窒?00枚金幣。但其他人要對此表決,如果多數(shù)反對,那他就會(huì)被殺死。他應(yīng)該提出怎樣的方案,既讓自己拿到盡可能多的金幣又不會(huì)被殺死? 答:98 1 0 1 0 析:倒推。1)如果只剩兩個(gè)人,除非全給最后一個(gè)人,否則最后一個(gè)人肯定反對,因此最后一人不管怎樣總要反對;2)如果剩3人,只要給第四人1枚金幣,他就可以贏得半數(shù)以上同意,因此第三人肯定反對;3)如果剩4人,由于第三人和第五人肯定反對,他除非不拿金幣,否則肯定得不到半數(shù)以上的**;4)因此,5人時(shí),第一人只要獲得第二人和第四人的**即可。 3.你和朋友參加聚會(huì),包括你們兩人在內(nèi)一共有10個(gè)人在場。你朋友想跟你打賭,說這里每有一個(gè)人生日和你相同,你就給他1元,每有一個(gè)人生日和你不同,他給你2元。你會(huì)接受么? 答:接受 析:只有剩下的9人中至少有六人生日和我相同,才不賺。而出現(xiàn)這樣的概率實(shí)在太低了。 4.五個(gè)人來自不同地方,住不同房子,養(yǎng)不同動(dòng)物,吸不同牌子香煙,喝不同飲料,喜 歡不同食物。根據(jù)以下線索確定誰是養(yǎng)貓的人。 (1)紅房子在藍(lán)房子的右邊,白房子的左邊(不一定緊鄰) (2)黃房子的主人來自**,而且他的房子不在最左邊。 (3)愛吃比薩餅的人住在愛喝礦泉水的人的隔壁。 (4)來自**的人愛喝茅臺(tái),住在來自上海的人的隔壁。 (5)吸希爾頓香煙的人住在養(yǎng)馬的人右邊隔壁。 (6)愛喝啤酒的人也愛吃雞。 (7)綠房子的人養(yǎng)狗。 (8)愛吃面條的人住在養(yǎng)蛇的人的隔壁。 (9)來自天津的人的鄰居(緊鄰)一個(gè)愛吃牛肉,另一個(gè)來自 成都。 (10)養(yǎng)魚的人住在最右邊的房子里。 (11)吸萬寶路香煙的人住在吸希爾頓香煙的人和吸“555”香煙的人的中間(緊鄰) (12)紅房子的人愛喝茶。 (13)愛喝葡萄酒的人住在愛吃豆腐的人的右邊隔壁。 (14)吸紅塔山香煙的人既不住在吸健牌香煙的人的隔壁,也不與來自上海的人相鄰 。 (15)來自上海的人住在左數(shù)第二間房子里。 (16)愛喝礦泉水的人住在最中間的房子里。 (17)愛吃面條的人也愛喝葡萄酒。 (18)吸“555”香煙的人比吸希爾頓香煙的人住的*右。數(shù)據(jù)分析面試題及答案2
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展9)
財(cái)務(wù)面試題及答案1
財(cái)務(wù)面試題及答案2
高級(jí)java面試題及答案 (菁選2篇)(擴(kuò)展10)
邏輯面試題及答案1
邏輯面試題及答案2
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除