1. 程式人生 > >經典JAVA面試題及答案

經典JAVA面試題及答案

QUESTION NO: 1 publicclass Test1 {     publicstaticvoid changeStr(String str){         str="welcome";     }     publicstaticvoid main(String[] args) {         String str="1234";         changeStr(str);         System.out.println(str);     } } //輸出結果:1234 //這裡雖然是一個靜態方法,但是裡面的變數是一個區域性變數, //所以這裡不因為是靜態方法,就誤認為裡面的變數也是靜態變量了
QUESTION NO:2 publicclass Test2 {     staticboolean foo(char c) {        System.out.print(c);        returntrue;     }     publicstaticvoid main(String[] argv) {        int i = 0;        //for(65;88&&(i<2);67)        for (foo('A'); foo('B') && (i < 2); foo('C')) {            i++;            foo
('D');        }     } } What is the result? A. ABDCBDCB B. ABCDABCD C. Compilation fails. D. An exception is thrown at runtime. /*
1.其實foo('A');就是初始化條件,只會執行一次,所以第一個列印的肯定是A
2.因為i=0;迴圈條件是i<2 (由此可知迴圈i等於2的時候就會停止迴圈,)所有0<2滿足條件,接著會輸出B,然後執行i++;i就變成1了,在輸出D
,在最後輸出C,
一次迴圈後的結果是:ABDC
3.第二次迴圈的開始是foo('A');是初始條件所以不會執行,直接從foo('B')開始,輸出B,然後i為1,且小於2,此時迴圈體內再次執行i++;i的值為2了,再次輸出D,最後輸出C

第二次迴圈輸出:BDC
4.然後迴圈再次執行for(foo('A');foo('B')&&(i<2);foo('C'))
直接輸出B,i的值在第二輪迴圈後的值變成了2,2<2不成立,終止迴圈,輸出B
//故輸出結果是:ABDCBDCB
*/ QUESTION NO: 3 1. class A { 2. protected int method1(int a, int b) { return 0; } 3. } Which two are valid in a class that extends class A? (Choose two) A. public int method1(int a, int b) { return 0; } B. private int method1(int a, int b) { return 0; } C. private int method1(int a, long b) { return 0; } D. public short method1(int a, int b) { return 0; } E. static protected int method1(int a, int b) { return 0; } publicclass B extends A{     //can not reduce the visibility of the inherited method from A     //即不能夠使從類A中繼續來的方法的可見性降低     //private int method1(int a, int b) { return 0; }     //This static method cannot hide the instance method from A     //靜態方法不能夠隱藏繼承於A的例項     //static protected int method1(int a, int b) { return 0; }     //返回型別與A中的該方法不一致     //public short method1(int a, int b) { return 0; }     /**      *總結:類的繼承中,如果要想過載父類的方法,必須要和父類中的返回型別、可見性等等都要操作一致      *否則,程式就會報錯。一定遵守子類要遵從於父類的原則      *而我選擇的答案居然是privateintmethod1staticprotectedint      *我選擇第一個的錯誤理由是:因為原來為保護的,如果我這裡設為public,那麼就擴充套件了其原來的可見性      *本來原來就是對包外不可見的,現在變成對包外可見的了,所以就選擇的是private      *選擇第二個的錯誤理由是:都是保護的,這裡只是變成了靜態的而已      */     //這裡是寫了一個過載方法,因為引數型別不一致,不會報錯     privateint method1(int a, long b) { return 0; }     //可見性可以增大,但是不能夠縮小,正確     publicint method1(int a, int b) { return 0; } } //答案:AC QUESTION NO: 4 1. public class Outer{ 2. public void someOuterMethod() { 3. // Line 3 4. } 5. public class Inner{} 6. public static void main( String[]argv ) { 7. Outer o = new Outer(); 8. // Line 8 9. } 10. } Which instantiates an instance of Inner? A. new Inner(); // At line 3 B. new Inner(); // At line 8 C. new o.Inner(); // At line 8 D. new Outer.Inner(); // At line 8//new Outer().new Inner() publicclass Outer {     publicvoid someOuterMethod() {        // Line 3        new Inner();//放在這裡不出錯     }     publicclass Inner {     }     publicstaticvoid main(String[] argv) {        Outer o= new Outer();        // Line 8        //o不能夠被解釋成為一種型別,出錯        //new o.Inner();        /**         *下面兩種用法,都報下面的錯誤:         *NoenclosinginstanceoftypeOuterisaccessible.         *Mustqualifytheallocationwithanenclosinginstance         *oftypeOuter(e.g.x.newA()wherexisaninstanceofOuter)         */           //new Outer.Inner();        //new Inner();           } } 答案:A
QUESTION NO: 5 Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream? (譯:那個方法是servlet用於將其session ID入在一個URL中,該URL寫入servlet的響應輸出流) A. The encodeURL method of the HttpServletRequest interface. B. The encodeURL method of the HttpServletResponse interface. C. The rewriteURL method of the HttpServletRequest interface. D. The rewriteURL method of the HttpServletResponse interface. //答案:B
QUESTION NO: 6 Which two are equivalent? (Choose two) (譯:哪兩個是等價的?) A. <%= YoshiBean.size%> B. <%= YoshiBean.getSize()%> C. <%= YoshiBean.getProperty("size")%> D. <jsp:getProperty id="YoshiBean" param="size"/> E. <jsp:getProperty name="YoshiBean" param="size"/> F. <jsp:getProperty id="YoshiBean" property="size"/> G. <jsp:getProperty name="YoshiBean" property="size"/> //答案:C、G

取得屬性<jsp:getProperty>

語法<jsp:getProperty name="例項化物件名稱(id)" property="屬性名稱" /> 等同於getter方法的呼叫
QUESTION NO: 7 Which of the following statements regarding the lifecycle of a session bean are correct? 1. java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated. 2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated. 3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions. 4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation. 5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception. 二、三大框架方面問題

1、Spring 事務的隔離性,並說說每個隔離性的區別
解答:Spring事務詳解

2、Spring事務的傳播行為,並說說每個傳播行為的區別
解答:Spring事務詳解

3、hibernate跟Mybatis/ ibatis 的區別,為什麼選擇?
解答:Hibernate與 MyBatis的比較

4、struts跟spring mvc的優缺點,讓你選會如何選
解答:spring mvc與struts的區別

5、簡單說說Spring 事務機制
解答:Spring事務機制

6、Spring 4.0新特性
解答:Spring4新特性

三、負載均衡、叢集相關
1、weblogic 負載均衡的原理和叢集的配置
解答:a、WEBLOGIC負載均衡原理 b、負載均衡和叢集的配置(參考)

2、Nginx+Tomcat+Redis實現負載均衡、資源分離、session共享
解答:參考配置

3、nginx配置檔案詳解——nginx.conf
解答:Nginx配置檔案詳細說明

四、專案優化相關
1、web如何專案優化
解答:這個我整理過一次,web專案效能優化(整理)

2、單例模式有幾種? 如何優化?
解答:單例模式的7種用法

3、簡單說說執行緒池的原理和實現
解答:執行緒池的原理和實現

五、併發和安全方面
1、專案併發如何處理?(我們是web專案)
解答:高併發量網站解決方案,另外,還有資料庫樂觀鎖,資料庫讀寫分離、使用訊息佇列、多用儲存過程等等

2、簡單說說功能許可權存在的水平許可權漏洞和垂直許可權漏洞的場景和解決辦法(因為我們目前許可權級別就是功能許可權)
解答:
A、水平許可權漏洞,如下圖

假設機構有 使用者A和使用者B 兩個使用者,其中A有1、2和3許可權 ,  使用者B有 2 和3 的許可權,這時候假設使用者B 知道1,並給自己新增1的許可權,這時候就是水平許可權漏洞。
目前解決辦法:1、限制入口,讓使用者B無法編輯自己的許可權   2、對使用者B無法進行向上擴充套件。最根本的解決辦法是深入到資料許可權
水平許可權漏洞和解決辦法

B、垂直許可權漏洞
垂直許可權案例和解決方案

3、平臺上的圖片如何防盜鏈
解答:http下載防盜鏈原理:http協議的欄位referer 記錄來實現

4、如何區分上傳的圖片是不是木馬?
解答:1、看上傳的圖片字尾  2、如何字尾是篡改的,那麼每個檔案有個魔術數字檔案上傳-魔術數字

5、訊息佇列的原理和實現
解答:1、訊息佇列原理     2、深入淺出 訊息佇列 ActiveMQ

六、資料庫方面
1、mysql查詢欄位區不區分大小寫?
解答:不區分,哪怕值也不區分(我當時還反問了,區不區分大小的應用含義有哪些,面試官沒說得出來)

2、簡單說說資料庫叢集和負載均衡、分散式(我不懂這塊)
解答:負載均衡和叢集參考 , 參考2

3、儲存過程的結構和優點
解答:大概結構
儲存過程的優缺點

4、觸發器的原理和作用
解答:參考 六、SQL問答題 表結構: 1、    表名:g_cardapply 欄位(欄位名/型別/長度): g_applyno        varchar   8;//申請單號(關鍵字) g_applydate     bigint     8;//申請日期 g_state        varchar     2;//申請狀態 2、    表名:g_cardapplydetail 欄位(欄位名/型別/長度): g_applyno        varchar     8;//申請單號(關鍵字) g_name        varchar     30;//申請人姓名 g_idcard        varchar     18;//申請人身份證號 g_state        varchar     2;//申請狀態 其中,兩個表的關聯欄位為申請單號。 題目: 1、    查詢身份證號碼為440401430103082的申請日期 2、    查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數 3、    將身份證號碼為440401430103082的記錄在兩個表中的申請狀態均改為07 4、    刪除g_cardapplydetail表中所有姓李的記錄 //答案
1). select g_applydate from g_cardapply a,g_cardapplydetail b
where a.g_applyno=b.g_applyno and b.g_idcard='440401430103082'

2). select g_idcard,count(g_idcard) as records from g_cardapplydetail
group by g_idcard having count(g_idcard)>=2

3). 為了保持狀態的一致性,這裡最好用事務提交
begin tran
update g_cardapply set g_state='07' from g_cardapplydetail
where g_cardapply.g_applyno=g_cardapplydetail.g_applyno
and g_cardapplydetail.g_idcard='440401430103082'

update g_cardapplydetail set g_state=07 where g_idcard='440401430103082'

commit

4). delete from g_cardapplydetail where g_name like '李%'

相關推薦

100+經典Java試題答案解析

是什麽 自定義 我們 計數 接口類 同步方法 main err ans 面向對象編程(OOP) Java是一個支持並發、基於類和面向對象的計算機編程語言。下面列出了面向對象軟件開發的優點: 代碼開發模塊化,更易維護和修改。 代碼復用。 增強代碼的可靠性和靈活

115道經典Java試題答案解析,掌握這些還怕面試官不下”跪“

面向物件程式設計(OOP) Java是一個支援併發、基於類和麵向物件的計算機程式語言。下面列出了面向物件軟體開發的優點: 程式碼開發模組化,更易維護和修改。 程式碼複用。 增強程式碼的可靠性和靈活性。 增加程式碼的可理解性。 面向物件程式設計有很多重要的特性,比如

經典JAVA試題答案

QUESTION NO: 1 publicclass Test1 {     publicstaticvoid changeStr(String str){         str="welcome";     }     publicstaticvoid main(S

100道經典Java試題答案

   面向物件編程(OOP) Java是一個支援併發、基於類和麵向物件的計算機程式語言。下面列出了面向物件軟體開發的優點: 程式碼開發模組化,更易維護和修改。程式碼複用。增強程式碼的可靠性和靈活性。增加程式碼的可理解性。 面向物件程式設計有很多重要的特性,比如:封裝,

華為的JAVA試題答案(部分)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

近5年常考Java試題答案整理(一)

下列面試題都是在網上收集的,本人抱著學習的態度找了下參考答案,有不足的地方還請指正,更多精彩內容可以關注我的微信公眾號:Java團長 1、面向物件的特徵有哪些方面? 抽象:將同類物件的共同特徵提取出來構造類。 繼承:基於基類建立新類。 封裝:將資料隱藏起來,對

近5年常考Java試題答案整理(三)

近5年常考Java面試題及答案整理(一) 近5年常考Java面試題及答案整理(二) 下列面試題都是在網上收集的,本人抱著學習的態度找了下參考答案,有不足的地方還請指正,更多精彩內容可以關注我的微信公眾號:Java團長 68、Java中如何實現序列化,有什麼意義? 答:序

近5年常考Java試題答案整理(二)

上一篇:近5年常考Java面試題及答案整理(一) 下列面試題都是在網上收集的,本人抱著學習的態度找了下參考答案,有不足的地方還請指正,更多精彩內容可以關注我的微信公眾號:Java團長 31、String s = new String("xyz");建立了幾個字串物件? 答:

分享10道常考Java試題答案

Hi,大家好,今天給大家分享10道常考的Java面試題及答案,涉及到Java中的10個方面。每個領域一道題。希望你能有收穫。 <平臺無關性>什麼是平臺無關性,Java是如何做到平臺無關的? <序列化>如何自定義序列化策略 &l

2018年最新Java試題答案整理(持續完善中…)

下列面試題都是在網上收集的,本人抱著學習的態度找了下參考答案,有不足的地方還請指正 基礎篇 基本功 面向物件特徵 封裝,繼承,多型和抽象 封裝 封裝給物件提供了隱藏內部特性和行為的能力。物件提供一些能被其他物件訪問的方法來改 變它內部的資料。在 Ja

java試題答案(基礎題122道,程式碼題19道)

      JAVA相關基礎知識   1、面向物件的特徵有哪些方面    1.抽象:   抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽

試題收集-java試題答案(基礎題122道,程式碼題19道)

JAVA相關基礎知識 1、面向物件的特徵有哪些方面  1.抽象: 抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。

117道Java試題答案(大多都是專案裡面所用到的技術點)

1 SpringBoot整合SpringMVC的jar包的名字: spring-boot-starter-web 2 SpringBoot整合Durid連線池的jar包的名字: Durid-spring-boot-starter 3 SpringB

通往 BATJ 的 160 道 Java 試題答案(一)

一、題目(1~40題) 1、面向物件的特徵有哪些方面? 2、訪問修飾符 public,private,protected, 以及不寫(預設)時的區別? 3、String 是最基本的資料型別嗎? 4、float f=3.4; 是否正確? 5、short s1 = 1;

100道Java經典試題答案解析

作用域public,private,protected,以及不寫時的區別 答:區別如下: 作用域 當前類 同一package 子孫類 其他package public √ √ √ √ protected √ √ √ × friendly √ √ ×

史上最全Java多線程試題答案

blog 上下文 exec 線程 單例 通信 流轉 排查 創建 多線程有什麽用? 線程和進程的區別是什麽? Java實現線程有哪幾種方式? 啟動線程方法start()和run()有什麽區別? 怎麽終止一個線程?如何優雅地終止線程? 一個線程的生命周期

經典的一套SQL試題答案

SQL SqlServer 數據庫 面試經典的一套SQL面試題及答案

15個頂級Java多線程試題答案

ctrl 打印 MF 進程 lock 異常 mage 分析 iar 在任何Java面試當中多線程和並發方面的問題都是必不可少的一部分。如果你想獲得任何股票投資銀行的前臺資訊職位,那麽你應該準備很多關於多線程的問題。在投資銀行業務中多線程和並發是一個非常受歡迎的話題,特別是電

C#經典試題答案

list add 字段 有一個 副本 udp 隔離性 垃圾回收 readonly 字節 1.請你說說.net 中類和結構的區別? 答:結構和類具有大體的語法,但是結構受到的限制比類多。結構不能聲明默認的的構造函數,為結構的副本是編譯器創建和銷毀的,所以不需要默認的構造函數和

Java 多執行緒試題答案(非常全面)

這篇文章主要是對多執行緒的問題進行總結的,因此羅列了40個多執行緒的問題。 這些多執行緒的問題,有些來源於各大網站、有些來源於自己的思考。可能有些問題網上有、可能有些問題對應的答案也有、也可能有些各位網友也都看過,但是本文寫作的重心就是所有的問題都會按照自己的理解回答一遍,不會去看網上的