




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2017Java 面試題 帶答案詳解 TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document . Java 基礎 7 HYPERLINK l bookmark4 o Current Document 1、一個”.java源文件中是否可以包括多個類(不是內部類)?有什么限制?7 HYPERLINK l bookmark7 o Current Document 2、Java 有沒有 goto? 8 HYPERLINK l bookmark9 o Current Document 3、說說 & 和& 的區別。 8 HYPERLINK l book
2、mark11 o Current Document 4、在JAVA 中如何跳出當前的多重嵌套循環? 8switch 語句能否作用在 byte 上,能否作用在long 上,能否作用在 String 上? .9 HYPERLINK l bookmark16 o Current Document short s1 = 1; s1 = s1 + 1;有什么錯 ? short s1 = 1; s1 += 1; 有什么錯 ? 9 HYPERLINK l bookmark19 o Current Document 7、char型變量中能不能存貯一個中文漢字?為什么?9 HYPERLINK l bookmar
3、k21 o Current Document 8、用最有效率的方法算出2 乘以 8 等於幾 ? 9 HYPERLINK l bookmark23 o Current Document 9、請設計一個一百億的計算器 910、使用 final 關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變? 11 HYPERLINK l bookmark28 o Current Document 11、=和equals方法究竟有什么區別? 11 HYPERLINK l bookmark30 o Current Document 12、靜態變量和實例變量的區別? 12 HYPERLINK l bookma
4、rk32 o Current Document 13、是否可以從一個static方法內部發出對非 static方法的調用? 12Integer與 int 的區別 13Math.round(11.5) 等於多少 ? Math.round(-11.5) 等於多少 ? 1316、下面的代碼有什么不妥之處? 1317、請說出作用域public , private , protected ,以及不寫時的區別 13 HYPERLINK l bookmark35 o Current Document Overload 和 Override 的區別。Overloaded 的方法是否可以改變返回值的類型? 14
5、 HYPERLINK l bookmark38 o Current Document 19、構造器 Constructor 是否可被 override? 1520、接口是否可繼承接口 ? 抽象類是否可實現(implements) 接口 ? 抽象類是否可繼 HYPERLINK l bookmark40 o Current Document 承具體類 (concrete class)? 抽象類中是否可以有靜態的 main 方法? 15 HYPERLINK l bookmark42 o Current Document 21、寫clone()方法時,通常都有一行代碼,是什么? 15 HYPERLIN
6、K l bookmark44 o Current Document 22、面向對象的特征有哪些方面 15 HYPERLINK l bookmark46 o Current Document java 中實現多態的機制是什么? 17 HYPERLINK l bookmark48 o Current Document abstract class 和 interface 有什么區別 ? 1725、abstract的 method是否可同時是static,是否可同時是native ,是否可同時是 HYPERLINK l bookmark50 o Current Document synchroniz
7、ed? 18 HYPERLINK l bookmark53 o Current Document 26、什么是內部類? Static Nested Class 和 Inner Class 的不同。 19 HYPERLINK l bookmark55 o Current Document 27、內部類可以引用它的包含類的成員嗎?有沒有什么限制? 2028、Anonymous Inner Class (匿名內部類)是否可以extends(繼承)其它類,是否可以 implements( 實現 )interface( 接口 )? 21super.getClass() 方法調用 21 HYPERLINK
8、 l bookmark60 o Current Document String 是最基本的數據類型嗎? 22 HYPERLINK l bookmark62 o Current Document String s = Hello;s = s + world!; 這兩行代碼執行后,原始的 String 對象中的 內容到底變了沒有? 22 HYPERLINK l bookmark65 o Current Document 32、是否可以繼承String 類 ? 23String s = new String(xyz); 創建了幾個String Object? 二者之間有什么區別? 23 HYPERL
9、INK l bookmark67 o Current Document String 和 StringBuffer 的區別 23 HYPERLINK l bookmark72 o Current Document 35、如何把一段逗號分割的字符串轉換成一個數組? 24 HYPERLINK l bookmark74 o Current Document 36、數組有沒有length() 這個方法 ? String 有沒有 length() 這個方法? 24 HYPERLINK l bookmark77 o Current Document 37、下面這條語句一共創建了多少個對象:String s
10、=a+b+c+d; 24try 里有一個 return 語句,那么緊跟在這個try 后的 finally 里的 code 會不 HYPERLINK l bookmark79 o Current Document 會被執行,什么時候被執行,在return 前還是后 ? 25 HYPERLINK l bookmark81 o Current Document 39、下面的程序代碼輸出的結果是多少? 26 HYPERLINK l bookmark83 o Current Document final, finally, finalize 的區別。 27 HYPERLINK l bookmark85
11、o Current Document 41、運行時異常與一般異常有何異同? 28 HYPERLINK l bookmark87 o Current Document error 和 exception 有什么區別 ? 28 HYPERLINK l bookmark89 o Current Document Java 中的異常處理機制的簡單原理和應用。 28 HYPERLINK l bookmark91 o Current Document 44、請寫出你最常見到的5 個 runtime exception 。 28 HYPERLINK l bookmark93 o Current Docume
12、nt JAVA 語言如何進行異常處理,關鍵字: throws,throw,try,catch,finally 分別代表 什么意義?在try 塊中可以拋出異常嗎? 2946、java中有幾種方法可以實現一個線程?用什么關鍵字修飾同步方法? stop()和 HYPERLINK l bookmark97 o Current Document suspend。方法為何不推薦使用? 29 HYPERLINK l bookmark100 o Current Document sleep() 和 wait() 有什么區別 ? 30 HYPERLINK l bookmark102 o Current Docu
13、ment 48、同步和異步有何異同,在什么情況下分別使用他們?舉例說明。 32 HYPERLINK l bookmark105 o Current Document 下面兩個方法同步嗎?(自己發明) 33 HYPERLINK l bookmark107 o Current Document 50、多線程有幾種實現方法?同步有幾種實現方法? 33 HYPERLINK l bookmark109 o Current Document 51、啟動一個線程是用 run() 還是 start()? 3352、當一個線程進入一個對象的一個synchronized 方法后,其它線程是否可進入此 HYPERL
14、INK l bookmark111 o Current Document 對象的其它方法? 33 HYPERLINK l bookmark114 o Current Document 53、線程的基本概念、線程的基本狀態以及狀態之間的關系 34 HYPERLINK l bookmark116 o Current Document 54、簡述synchronized 和 java.util.concurrent.locks.Lock 的異同 ? 3455、設計4個線程,其中兩個線程每次對 j 增加1,另外兩個線程對j 每次減少 1 。 HYPERLINK l bookmark119 o Curr
15、ent Document 寫出程序。 3656、子線程循環10 次,接著主線程循環100,接著又回到子線程循環10 次,接著 HYPERLINK l bookmark122 o Current Document 再回到主線程又循環100 ,如此循環50 次,請寫出程序。 38 HYPERLINK l bookmark126 o Current Document 57、介紹Collection 框架的結構 43 HYPERLINK l bookmark128 o Current Document Collection 框架中實現比較要實現什么接口 44 HYPERLINK l bookmark1
16、30 o Current Document ArrayList 和 Vector 的區別 44 HYPERLINK l bookmark132 o Current Document HashMap 和 Hashtable 的區別 44 HYPERLINK l bookmark134 o Current Document List 和 Map 區別 ? 45 HYPERLINK l bookmark136 o Current Document List, Set, Map 是否繼承自 Collection 接口 ? 45 HYPERLINK l bookmark138 o Current Doc
17、ument 63、List、Map、Set三個接口,存取元素時,各有什么特點? 45 HYPERLINK l bookmark140 o Current Document 64、說出ArrayList,Vector, LinkedList 的存儲性能和特性 46 HYPERLINK l bookmark142 o Current Document 65、去掉一個Vector 集合中重復的元素 46 HYPERLINK l bookmark144 o Current Document Collection 和 Collections 的區別。 47Set 里的元素是不能重復的,那么用什么方法來區
18、分重復與否呢 ? 是用=還是 HYPERLINK l bookmark146 o Current Document equals()? 它們有何區別 ? 47 HYPERLINK l bookmark149 o Current Document 68、你所知道的集合類都有哪些?主要方法? 4769、兩個對象值相同(x.equals(y) = true),但卻可有不同的hash code,這句話對不 HYPERLINK l bookmark151 o Current Document 對? 4870、 TreeSet 里面放對象,如果同時放入了父類和子類的實例對象,那比較時使用 TOC o 1-
19、5 h z 的是父類的 compareTo 方法,還是使用的子類的 compareTo 方法,還是拋異常! 48 HYPERLINK l bookmark158 o Current Document 71、說出一些常用的類,包,接口,請各舉5 個 4972、 java 中有幾種類型的流? JDK 為每種類型的流提供了一些抽象類以供繼承 ,請說出他們分別是哪些類? 50 HYPERLINK l bookmark163 o Current Document 73、字節流與字符流的區別 5074、什么是java 序列化,如何實現java 序列化?或者請解釋Serializable 接口的作用。 51
20、75、描述一下JVM 加載 class 文件的原理機制 ? 52heap 和 stack 有什么區別。 52GC 是什么 ? 為什么要有GC? 5278、垃圾回收的優點和原理。并考慮2 種回收機制。 52垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內存嗎?有什么辦法 主動通知虛擬機進行垃圾回收? 5380、什么時候用assert。 53java 中會存在內存泄漏嗎,請簡單描述。 5482、能不能自己寫個類,也叫java.lang.String ? 57Java 代碼查錯 57二 . 算法 611、編寫一個程序,將a.txt 文件中的單詞與 b.txt 文件中的單詞交替合并到 c.txt
21、文件中, a.txt 文件中的單詞用回車符分隔, b.txt 文件中用回車或空格進行分隔。 .612、編寫一個程序,將d:java 目錄下的所有.java 文件復制到 d:jad 目錄下,并將原來文件的擴展名從.java 改為 .jad。 633、編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串,但要保證漢字不被截取半個,如“我ABC ”,4,應該截取“我AB ”,輸入“我 ABC 漢 DEF” , 6, 應該輸出“我ABC ” , 而不是“我ABC+ 漢的半個” 。 654、有一個字符串,其中包含中文字符、英文字符和數字字符,請統計和打印出各 TOC o 1-5
22、h z 個字符的個數。 665、說明生活中遇到的二叉樹,用java 實現二叉樹 676、從類似如下的文本文件中讀取出所有的姓名,并打印出重復的姓名和重復的次數,并按重復次數排序: 727、寫一個Singleton 出來。 758、遞歸算法題1 779、遞歸算法題2 7810、排序都有哪幾種方法?請列舉。用JAVA 實現一個快速排序。 7911、有數組 an ,用 java 代碼將數組元素順序顛倒 8012.金額轉換,阿拉伯數字的金額轉換成中國傳統的形式如:(1011) (一千零一拾一元整)輸出。 81. html&JavaScript&ajax部分 82判斷第二個日期比第一個日期大 82用 t
23、able 顯示 n 條記錄,每3 行換一次顏色,即 1 , 2 , 3 用紅色字體, 4, 5 , 6用綠色字體, 7, 8, 9 用紅顏色字體。 83HTML 的 form 提交之前如何驗證數值文本框的內容全部為數字? 否則的話提 TOC o 1-5 h z 示用戶并終止提交? 844、請寫出用于校驗HTML 文本框中輸入的內容全部為數字的 javascript 代碼 855、說說你用過那些ajax 技術和框架,說說它們的區別 85. Java web 部分 85Tomcat 的優化經驗 85HTTP 請求的 GET 與 POST 方式的區別 863、解釋一下什么是servlet; 864、
24、說一說Servlet 的生命周期 ? 86Servlet 的基本架構 86SERVLET API 中 forward() 與 redirect() 的區別? 867、什么情況下調用doGet()和doPost()? 87Request 對象的主要方法: 87forward 和 redirect 的區別 88request.getAttribute() 和 request.getParameter() 有何區別 ? 88jsp有哪些內置對象?作用分別是什么?分別有什么方法? 88jsp 有哪些動作 ?作用分別是什么 ? 89JSP 的常用指令 89JSP 中動態 INCLUDE 與靜態 INCL
25、UDE 的區別? 8915、兩種跳轉方式分別是什么?有什么區別? 8916、頁面間對象傳遞的方法 9017、JSP和Servlet有哪些相同點和不同點,他們之間的聯系是什么? 90MVC 的各個部分都有那些技術來實現?如何實現 ? 9019、我們在web 應用開發過程中經常遇到輸出某種編碼的字符,如iso8859-1 等,如何輸出一個某種編碼的字符串? 9020現在輸入 n 個數字,以逗號,分開;然后可選擇升或者降序排序;按提交鍵就在另一頁面顯示按什么排序,結果為,提供reset 91.數據庫部分 911、用兩種方式根據部門號從高到低,工資從低到高列出每個員工的信息。 912、列出各個部門中工
26、資高于本部門的平均工資的員工數和部門號,并按部門號排 913、存儲過程與觸發器必須講,經常被面試到? 924、數據庫三范式是什么? 945、說出一些數據庫優化方面的經驗? 95、 union 和 union all 有什么不同 ? 96.分頁語句 97.用一條SQL 語句 查詢出每門課都大于80 分的學生姓名 100.所有部門之間的比賽組合 100.每個月份的發生額都比101 科目多的科目 101.統計每年每月的信息 102.顯示文章標題,發帖人、最后回復時間 103.刪除除了id 號不同 ,其他都相同的學生冗余信息 104.航空網的幾個航班查詢題: 104.查出比經理薪水還高的員工信息: 1
27、0516、求出小于45 歲的各個老師所帶的大于12 歲的學生人數 106.求出發帖最多的人: 10718、一個用戶表中有一個積分字段,假如數據庫中有100 多萬個用戶,若要在每年第一天凌晨將積分清零,你將考慮什么,你將想什么辦法解決? 10719、一個用戶具有多個角色,請查詢出該表中具有該用戶的所有角色的其他用戶。 108 20. xxx 公司的 sql 面試 10821、注冊Jdbc驅動程序的三種方式 10922、用 JDBC 如何調用存儲過程 10923、JDBC 中的 PreparedStatement相比 Statement 的好處 110寫一個用 jdbc 連接并訪問 oracle
28、數據的程序代碼111Class.forName 的作用?為什么要用? 11126、大數據量下的分頁解決方法。 11127、用JDBC 查詢學生成績單, 把主要代碼寫出來(考試概率極大) 11228、這段代碼有什么不足之處? 11229、說出數據連接池的工作機制是什么? 11330、為什么要用ORM? 和 JDBC 有何不一樣? 113XML 部分 113xml 有哪些解析技術?區別是什么? 1132、你在項目中用到了xml 技術的哪些方面?如何實現的? 1143、用jdom 解析 xml 文件時如何解決中文問題?如何解析? 1144、編程用JAVA 解析 XML 的方式 115XML 文檔定義
29、有幾種形式?它們之間有何本質區別?解析XML 文檔有哪幾種方式? 117流行的框架與新技術 1171、談談你對Struts 的理解。 1172、談談你對Hibernate 的理解。 118AOP 的作用。 1184、你對Spring 的理解。 1185、談談Struts 中的 Action servlet 。 120Struts 優缺點 優點: 1. 實現 MVC 模式,結構清晰,使開發者只關注業務邏輯的實現 120STRUTS 的應用 (如 STRUTS 架構 ) 1218、說說 struts1 與 struts2 的區別。 1219 hibernate 中的 update()和 saveO
30、rUpdate()的區另U, session 的 load()和 get()的區別。 122 10、簡述Hibernate 和 JDBC 的優缺點 ? 如何書寫一個one to many 配置文件 . 122 11、 iBatis 與 Hibernate 有什么不同? 12212、寫Hibernate 的一對多和多對一雙向關聯的 orm 配置 ? 122hibernate 的 inverse 屬性的作用? 12213、在DAO 中如何體現DAO 設計模式 ? 123spring+Hibernate 中委托方案怎么配置? 123spring+Hibernate 中委托方案怎么配置? 123hib
31、ernate 進行多表查詢每個表中各取幾個字段,也就是說查詢出來的結果集沒 TOC o 1-5 h z 有一個實體類與之對應如何解決; 123介紹一下Hibernate 的二級緩存 123Spring 的依賴注入是什么意思 ? 給一個 Bean 的 message 屬性 , 字符串類型,注入值為 Hello 的 XML 配置文件該怎么寫 ? 125Jdo 是什么 ? 12520、什么是spring 的 IOC AOP 126STRUTS 的工作流程! 126spring 與 EJB 的區別! 126. 軟件工程與設計模式 126UML 方面 126j2ee 常用的設計模式?說明工廠模式。 12
32、6開發中都用到了那些設計模式?用在什么場合? 127. j2ee 部分 127BS 與CS 的聯系與區別。 1272、應用服務器與WEB SERVER 的區別? 1283、應用服務器有那些? 128J2EE 是什么? 128J2EE 是技術還是平臺還是框架? 什么是 J2EE 1286、請對以下在J2EE 中常用的名詞進行解釋(或簡單描述 ) 1297、如何給weblogic 指定大小的內存? 1298、如何設定的weblogic 的熱啟動模式(開發模式)與產品發布模式? 1299、如何啟動時不需輸入用戶名與密碼? 13010、在weblogic管理制臺中對一個應用域(或者說是一個網站,Dom
33、ain)進彳f jms及ejb 或連接池等相關信息進行配置后,實際保存在什么文件中 ? 13011 、 說 說 weblogic 中 一個 Domain 的 缺省 目 錄結 構?比如 要將一 個簡單 的 helloWorld.jsp 放 入 何 目 錄下 , 然 的 在 瀏 覽器 上就可 打入 http:/ 主 機 : 端 口 號 /helloword.jsp 就可以看到運行結果了 ? 又比如這其中用到了一個自己寫的javaBean 該如何辦 ? 13012、在weblogic 中發布 ejb 需涉及到哪些配置文件 13013、如何在weblogic中進行ssl配置與客戶端的認證配置或說說 j
34、2ee(標準)進彳s ssl 的配置 ? 13014、如何查看在weblogic 中已經發布的 EJB? 131十 . EBJ 部分 1311、 EJB 是基于哪些技術實現的?并說出 SessionBean 和 EntityBean 的區別, StatefulBean 和 StatelessBean的區另U。 1312、簡要講一下EJB 的 7 個 Transaction Level? 131EJB 與 JAVA BEAN 的區別? 131EJB 包括 ( SessionBean,EntityBean ) 說出他們的生命周期,及如何管理事務的? 132EJB容器提供的服務 132EJB的激活機
35、制 132EJB的幾種類型 132客服端調用EJB 對象的幾個基本步驟 133一 . webservice 部分 133WEB SERVICE 名詞解釋 。 JSWDL 開發包的介紹。 JAXP、 JAXM 的解釋 。 SOAP、 TOC o 1-5 h z UDDI,WSDL 解釋。 133CORBA 是什么?用途是什么? 133Linux 134LINUX 下線程, GDI 類的解釋。 134問得稀里糊涂的題 1346、四種會話跟蹤技術 1347、簡述邏輯操作(&,r)與條件操作(&,|)的區別。 134十二 . 其他 1341、請用英文簡單介紹一下自己 1342、請把/ 首頁的這一段話用
36、中文翻譯一下 ? 1353、美資軟件公司JAVA 工程師電話面試題目 135這套面試題主要目的是幫助那些還沒有java 軟件開發實際工作經驗, 而正在努力尋找java 軟件開發工作的朋友在筆試時更好地贏得筆試和面試。由于這套面試題涉及的范圍很泛,很廣,很雜,大家不可能一天兩天就看完和學完這套面試寶典,即使你已經學過了有關的技術,那么至少也需要一個月的時間才能消化和掌握這套面試寶典,所以,大家應該早作準備,從拿到這套面試寶典之日起,就要堅持在每天閑暇之余學習其中幾道題目,日積月累,等到出去面試時,一切都水到渠成,面試時就自然會游刃有余了。答題時,先答是什么,再答有什么作用和要注意什么(這部分最重
37、要,展現自己的心得)答案的段落分別,層次分明,條理清晰都非常重要,從這些表面的東西也可以看出一個人的習慣、辦事風格、條理等。要講你做出答案的思路過程,或者說你記住答案的思想都寫下來。把答題想著是辯論賽。答題就是給別人講道理、擺事實。答題不局限于什么格式和形式,就是要將自己的學識展現出來!別因為人家題目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地指出對方題目很模糊和你的觀點,不要把面試官想得有多高,其實他和你就是差不多的,你想想,如果他把你招進去了,你們以后就是同事了,可不是差不多的嗎?關于就業薪水,如果你是應屆生,那不能要高工資,好比大餅的故事,沒有文憑還想拿高工資,就去中關
38、村缺什么補什么吧!少數人基礎確實很好,在校期間確實又做過一些項目,那仍然是可以要到相對高的工資的。1. Java 基礎部分基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語法,集合的語法, io 的語法,虛擬機方面的語法。、一個 .java 源文件中是否可以包括多個類(不是內部類)?有什么限制?可以有多個類,但只能有一個public 的類,并且 public 的類名必須與文件名相一致。、 Java 有沒有 goto?java 中的保留字,現在沒有在java 中使用。3、說說& 和 & 的區別。& 和 & 都可以用作邏輯與的運算符,表示邏輯與( and)
39、,當運算符兩邊的表達式的結果都為 true 時, 整個運算結果才為true,否則,只要有一方為false,則結果為false。& 還具有短路的功能, 即如果第一個表達式為 false, 則不再計算第二個表達式, 例如, 對于 if(str != null & !str.equals( “” )表達式,當 str 為 null 時,后面的表達式不會執行,所以不會出現NullPointerException如果將 & 改為 &,則會拋出 NullPointerException 異常。 If(x=33 & +y0) y 會增長, If(x=33 & +y0) 不會增長& 還可以用作位運算符,當 &
40、 操作符兩邊的表達式不是boolean 類型時, & 表示按位與操作,我們通常使用 0 x0f 來與一個整數進行 & 運算,來獲取該整數的最低 4 個 bit 位,例如, 0 x31 & 0 x0f 的結果為 0 x01 。備注:這道題先說兩者的共同點,再說出 & 和& 的特殊之處,并列舉一些經典的例子來表明自己理解 透徹深入、實際經驗豐富。4、在JAVA 中如何跳出當前的多重嵌套循環?在 Java 中,要想跳出多重循環,可以在外面的循環語句前定義一個標號,然后在里層循環體的代碼中使用帶有標號的 break 語句,即可跳出外層循環。例如, ok:for(int i=0;i10;i+)for(i
41、nt j=0;j10;j+)System.out.println( “i= ” + i + “,j= ” + j);if(j = 5) break ok; 另外,我個人通常并不使用標號這種方式,而是讓外層的循環條件表達式的結果可以受到里層循環體代碼的控制,例如,要在二維數組中查找到某個數字。int arr = 1,2,3,4,5,6,7,9;boolean found = false;for(int i=0;iarr.length & !found;i+) for(int j=0;jarri.length;j+)System.out.println( “i= ” + i + “,j= ” +
42、j);if(arrij = 5) found = true; break; switch 語句能否作用在 byte 上,能否作用在long 上,能否作用在 String 上?在switch (expri)中,expri只能是一個整數表達式或者枚舉常量(更大字體) ,整數表達式可以是int 基本類型或Integer 包裝類型,由于, byte,short,char 都可以隱含轉換為 int ,所以,這些類型以及這些類型的包裝類型也是可以的。顯然, long 和 String 類型都不符合switch 的語法規定,并且不能被隱式轉換成int類型,所以,它們不能作用于swtich 語句中。short
43、 si = i; si = si + i; 有什么錯 ? short si = i; si += i;有什么錯 ?對于 short si = i; si = si + i; 由于 si+i 運算時會自動提升表達式的類型,所以結果是int 型,再賦值給 short 類型 si 時,編譯器將報告需要強制轉換類型的錯誤。對于 short si = i; si += i; 由于 += 是 java 語言規定的運算符, java 編譯器會對它進行特殊處理,因此 可以正確編譯。char 型變量中能不能存貯一個中文漢字?為什么 ?char型變量是用來存儲 Unicode編碼的字符的,unicode編碼字符集
44、中包含了漢字,所以, char型變量 中當然可以存儲漢字啦。 不過, 如果某個特殊的漢字沒有被包含在unicode 編碼字符集中, 那么,這個char型變量中就不能存儲這個特殊漢字。補充說明:unicode編碼占用兩個字節,所以,char類型的變量也是占用兩個字節。備注:后面一部分回答雖然不是在正面回答題目,但是,為了展現自己的學識和表現自己對問題理解的透徹深入,可以回答一些相關的知識,做到知無不言,言無不盡。8、用最有效率的方法算出2 乘以 8 等於幾 ?2 3 ,因為將一個數左移n 位,就相當于乘以了 2 的 n 次方,那么,一個數乘以8 只要將其左移3 位即可,而位運算 cpu 直接支持
45、的,效率最高,所以, 2 乘以 8 等於幾的最效率的方法是2 3 。9、請設計一個一百億的計算器首先要明白這道題目的考查點是什么,一是大家首先要對計算機原理的底層細節要清楚、要知道加減法的位運算原理和知道計算機中的算術運算會發生越界的情況,二是要具備一定的面向對象的設計思想。首先,計算機中用固定數量的幾個字節來存儲的數值,所以計算機中能夠表示的數值是有一定的范圍的,為了便于講解和理解,我們先以 byte 類型的整數為例,它用 i 個字節進行存儲,表示的最大數值范圍為-128到+127。-1在內存中對應的二進制數據為11111111,如果兩個-1相加,不考慮Java運算時的類型提升,運算后會產生
46、進位,二進制結果為1,11111110,由于進位后超過了byte類型的存儲空間,所以進位部分被舍棄,即最終的結果為11111110,也就是-2 ,這正好利用溢位的方式實現了負數的運算。-128 在內存中對應的二進制數據為10000000, 如果兩個 -128 相加, 不考慮 Java 運算時的類型提升, 運算后會產生進位,二進制結果為1,00000000 ,由于進位后超過了byte 類型的存儲空間,所以進位部分被舍棄,即最終的結果為 00000000,也就是0,這樣的結果顯然不是我們期望的,這說明計算機中的算術運算是會發生越界情況的,兩個數值的運算結果不能超過計算機中的該類型的數值范圍。 由于
47、 Java 中涉及表達式運算時的類型自動提升,我們無法用byte 類型來做演示這種問題和現象的實驗,大家可以用下面一個使用整數做實驗的例子程序體驗一下:int a = Integer.MAX_V ALUE;int b = Integer.MAX_V ALUE;int sum = a + b;System.out.println( a=”+“a+ ”,b=” +b+ ”,sum=”+sum);先不考慮 long 類型,由于int 的正數范圍為2 的 31 次方,表示的最大數值約等于2*1000*1000*1000 ,也就是 20 億的大小, 所以, 要實現一個一百億的計算器, 我們得自己設計一個
48、類可以用于表示很大的整數,并且提供了與另外一個整數進行加減乘除的功能,大概功能如下:()這個類內部有兩個成員變量,一個表示符號,另一個用字節數組表示數值的二進制數()有一個構造方法,把一個包含有多位數值的字符串轉換到內部的符號和字節數組中()提供加減乘除的功能public class BigIntegerint sign;byte val;public Biginteger(String val) sign = ;val = ;public BigInteger add(BigInteger other) public BigInteger subtract(BigInteger other)
49、 public BigInteger multiply(BigInteger other)public BigInteger divide(BigInteger other)備注:要想寫出這個類的完整代碼,是非常復雜的,如果有興趣的話,可以參看jdk 中自帶的java.math.BigInteger 類的源碼。面試的人也知道誰都不可能在短時間內寫出這個類的完整代碼的,他要的是你是否有這方面的概念和意識,他最重要的還是考查你的能力,所以,你不要因為自己無法寫出完整的最終結果就放棄答這道題,你要做的就是你比別人寫得多,證明你比別人強,你有這方面的思想意識就可以了,畢竟別人可能連題目的意思都看不懂,
50、什么都沒寫,你要敢于答這道題,即使只答了一部分,那也與那些什么都不懂的人區別出來,拉開了距離,算是矮子中的高個,機會當然就屬于你了。另外,答案中的框架代碼也很重要,體現了一些面向對象設計的功底,特別是其中的方法命名很專業,用的英文單詞很精準,這也是能力、經驗、專業性、英語水平等多個方面的體現,會給人留下很好的印象,在編程能力和 其他方面條件差不多的情況下,英語好除了可以使你獲得更多機會外,薪水可以高出一千元。10、使用 final 關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變?使用 final 關鍵字修飾一個變量時,是指引用變量不能變,引用變量所指向的對象中的內容還是可以改 變的。
51、例如,對于如下語句:final StringBuffer a=new StringBuffer(immutable);執行如下語句將報告編譯期錯誤:a=new StringBuffer();但是,執行如下語句則可以通過編譯:a.append( broken!);有人在定義方法的參數時,可能想采用如下形式來阻止方法內部修改傳進來的參數對象:public void method(final StringBuffer param) 實際上,這是辦不到的,在該方法內部仍然可以增加如下代碼來修改參數對象:param.append(a);11、 = 和 equals 方法究竟有什么區別?(單獨把一個東西說
52、清楚,然后再說清楚另一個,這樣,它們的區別自然就出來了,混在一起說,則 很難說清楚)=操作符專門用來比較兩個變量的值是否相等,也就是用于比較變量所對應的內存中所存儲的數值是否相同,要比較兩個基本類型的數據或兩個引用變量是否相等,只能用=操作符。如果一個變量指向的數據是對象類型的,那么,這時候涉及了兩塊內存,對象本身占用一塊內存(堆內存),變量也占用一塊內存,例如 Objet obj = new Object();變量obj是一個內存,new Object()是另一個內 存,此時,變量 obj所對應的內存中存儲的數值就是對象占用的那塊內存的首地址。對于指向對象類型的變量,如果要比較兩個變量是否指
53、向同一個對象,即要看這兩個變量所對應的內存中的數值是否相等,這時候就需要用 =操作符進行比較。equals 方法是用于比較兩個獨立對象的內容是否相同,就好比去比較兩個人的長相是否相同,它比較的兩個對象是獨立的。例如,對于下面的代碼:String a=new String(foo);String b=new String(foo);兩條new語句創建了兩個又象,然后用a,b這兩個變量分別指向了其中一個對象,這是兩個不同的對象,它們的首地址是不同的,即 a和b中存儲的數值是不相同的,所以,表達式 a=b將返回false,而這 兩個對象中的內容是相同的,所以,表達式a.equals(b)將返回tru
54、e。在 實 際 開 發 中 , 我 們 經 常 要 比 較 傳 遞 進 行 來 的 字 符 串 內 容 是 否 等 , 例 如 , String input=;input.equals( quit),許多人稍不注意就使用=進行比較了,這是錯誤的,隨便從網上找幾個項目實戰的教學視頻看看,里面就有大量這樣的錯誤。記住,字符串的比較基本上都是使用equals方法。如果一個類沒有自己定義 equals方法,那么它將繼承 Object類的equals方法,Object類的equals方法 的實現代碼如下:boolean equals(Object o) return this=o;這說明,如果一個類沒有
55、自己定義equals方法,它默認的equals方法(從Object類繼承的)就是使用=操作符,也是在比較兩個變量指向的對象是否是同一對象,這時候使用equals和使用=會得到同樣的結果,如果比較的是兩個獨立的對象則總返回false。如果你編寫的類希望能夠比較該類創建的兩個實例對象的內容是否相同,那么你必須覆蓋equals方法,由你自己寫代碼來決定在什么情況即可認為兩個對象的內容是相同的。12、靜態變量和實例變量的區別?在語法定義上的區別:靜態變量前要加static 關鍵字,而實例變量前則不加。在程序運行時的區別:實例變量屬于某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能
56、使用這個實例變量。靜態變量不屬于某個實例對象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節碼, 不用創建任何實例對象, 靜態變量就會被分配空間, 靜態變量就可以被使用了。總之,實例變量必須創建對象后才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。例如,對于下面的程序,無論創建多少個實例對象,永遠都只分配了一個staticVar 變量,并且每創建一個實例對象,這個 staticVar就會加1;但是,每創建一個實例對象,就會分配一個instanceVar,即可能分配多個instanceVar,并且每個instanceVar的值都只自力口了1次。public class Vari
57、antTestpublic static int staticVar = 0;public int instanceVar = 0;public VariantTest()staticVar+;instanceVar+;System.out.println( “staticVar=” + staticVar + ”,instanceVar=” + instanceVar);備注:這個解答除了說清楚兩者的區別外,最后還用一個具體的應用例子來說明兩者的差異,體現了自己有很好的解說問題和設計案例的能力,思維敏捷,超過一般程序員,有寫作能力!13、是否可以從一個static 方法內部發出對非 stat
58、ic 方法的調用?不可以。 因為非 static 方法是要與對象關聯在一起的, 必須創建一個對象后, 才可以在該對象上進行方法調用,而static 方法調用時不需要創建對象,可以直接調用。也就是說,當一個static 方法被調用時,可能還沒有創建任何實例對象,如果從一個static 方法中發出對非static 方法的調用,那個非 static 方法是關聯到哪個對象上的呢?這個邏輯無法成立,所以,一個static 方法內部發出對非static 方法的調用。14、Integer 與 int 的區別int是java提供的8種原始數據類型之一。Java為每個原始類型提供了封裝類,Integer是jav
59、a為int提 供的封裝類。int的默認值為0,而Integer的默認值為null,即Integer可以區分出未賦值和值為 0的區別, int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績為0的區別,則只能使用Integero在JSP開發中,Integer的默認為null,所以用el表達式在文本框中顯示時,值為空白字符串,而 int默認 的默認值為0,所以用el表達式在文本框中顯示時,結果為 0,所以,int不適合作為web層的表單數據的 類型。在Hibernate中,如果將OID定義為Integer類型,那么Hibernate就可以根據其值是否為 null而判斷一 個對象是否
60、是臨時的, 如果將OID定義為了 int類型,還需要在hbm映射文件中設置其 unsaved-value屬性 為0。另外,Integer提供了多個與整數相關的操作方法,例如,將一個字符串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。15、Math.round(11.5)等於多少? Math.round(-11.5)等於多 少?Math類中提供了三個與取整有關的方法:ceil、floor、round,這些方法的作用與它們的英文名稱的含義相對應,例如,ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結果為 12,Math.ceil(-11.3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 果蔬銷售中的智能物流與倉儲管理考核試卷
- 江蘇省南京市玄武外國語校2024-2025學年初三5月第二次月考生物試題含解析
- 吉林省白城市大安市第二中學2025屆高三第二學期期末(一模)英語試題含解析
- 四川工程職業技術學院《無線傳感器網絡》2023-2024學年第二學期期末試卷
- 宿遷學院《外科學實驗》2023-2024學年第一學期期末試卷
- 江蘇商貿職業學院《信息理論與編碼》2023-2024學年第二學期期末試卷
- 新疆維吾爾自治區喀什二中2024-2025學年招生全國統一考試高考仿真模擬卷數學試題(全國)試題含解析
- 吉林鐵道職業技術學院《傳統視覺藝術與現代設計》2023-2024學年第二學期期末試卷
- 新余市渝水區2025屆三年級數學第二學期期末學業質量監測試題含解析
- 江西科技師范大學《植物生物技術綜合實驗》2023-2024學年第二學期期末試卷
- ERP項目可行性研究報告(可編輯)
- 10《奪取抗日戰爭和人民解放戰爭的勝利》說課稿-2023-2024學年道德與法治五年級下冊
- 上海市工業技術學校工作人員招考聘用高頻重點提升(共500題)附帶答案詳解
- (完整版)信號與系統(吳大正)-完整版答案-糾錯修改后版本
- 2024年第四季度 國家電網工程設備材料信息參考價
- 【八年級下冊地理中圖北京版】期中真題必刷卷A-【期中真題必刷卷】(北京專用)(解析版)
- 足球俱樂部青訓管理制度
- 《質量成本培訓教材》課件
- 人教版-八年級數學上冊-競賽專題分式方程(含答案)
- 無文件木馬技術分析-洞察分析
- 陜西省西安市西北大學附中2025屆高考仿真卷英語試題含解析
評論
0/150
提交評論