分享一下:Java初學(xué)者入門應(yīng)該掌握的30個概念核心提示:OOP中唯一關(guān)系的是對象的接口是什么,就像計算機的銷售商她不管電源內(nèi)部結(jié)構(gòu) 是怎樣的,他只關(guān)系能否給你提供電就行了,也就是只要知道can or not而不是how and why。
基本概念: 1.OOP中唯一關(guān)系的是對象的接口是什么,就像計算機的銷售商她不管電源內(nèi)部結(jié)構(gòu) 是怎樣的,他只關(guān)系能否給你提供電就行了,也就是只要知道can or not而不是how and why。所有的程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數(shù)調(diào)用來完成,對象間所有的交流都是通過方法調(diào)用,通過對封裝對象數(shù)據(jù),很大 限度上提高復(fù)用率。
2.OOP中最重要的思想是類,類是模板是藍圖,從類中構(gòu)造一個對象,即創(chuàng)建了這個類的一個實例(instance)。3.封裝:就是把數(shù)據(jù)和行為結(jié)合起在一個包中)并對對象使用者隱藏數(shù)據(jù)的實現(xiàn)過程,一個對象中的數(shù)據(jù)叫他的實例字段(instance field)。
4.通過擴展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴展而得,根超類下文會做介紹。5.對象的3個主要特性 ehavior---說明這個對象能做什么。
tate---當(dāng)對象施加方法時對象的反映。 dentity---與其他相似行為對象的區(qū)分標(biāo)志。
每個對象有唯一的indentity 而這3者之間相互影響。6.類之間的關(guān)系: use-a :依賴關(guān)系 has-a :聚合關(guān)系 is-a :繼承關(guān)系--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在于共性中)7.構(gòu)造對象使用構(gòu)造器:構(gòu)造器的提出,構(gòu)造器是一種特殊的方法,構(gòu)造對象并對其初始化。
例:Data類的構(gòu)造器叫Data ew Data()---構(gòu)造一個新對象,且初始化當(dāng)前時間。 Data happyday=new Data()---把一個對象賦值給一個變量happyday,從而使該對象能夠多次使用,此處要聲明的使變量與對象變量二者是不同的.new返回的值是一個引用。
構(gòu)造器特點:構(gòu)造器可以有0個,一個或多個參數(shù); 構(gòu)造器和類有相同的名字;一個類可以有多個構(gòu)造器;構(gòu)造器沒有返回值;構(gòu)造器總是和new運算符一起使用。8.重載:當(dāng)多個方法具有相同的名字而含有不同的參數(shù)時,便發(fā)生重載.編譯器必須挑選出調(diào)用哪個方法。
9.包(package)Java允許把一個或多個類收集在一起成為一組,稱作包,以便于組織任務(wù),標(biāo)準(zhǔn)Java庫分為許多包。java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內(nèi)。
10.繼承思想:允許在已經(jīng)存在的類的基礎(chǔ)上構(gòu)建新的類,當(dāng)你繼承一個已經(jīng)存在的類時,那么你就復(fù)用了這個類的方法和字段,同時你可以在新類中添加新的方法和字段。11.擴展類:擴展類充分體現(xiàn)了is-a的繼承關(guān)系. 形式為:class (子類) extends (基類)。
12.多態(tài):在java中,對象變量是多態(tài)的.而java中不支持多重繼承。13.動態(tài)綁定:調(diào)用對象方法的機制。
(1)編譯器檢查對象聲明的類型和方法名。 (2)編譯器檢查方法調(diào)用的參數(shù)類型。
(3)靜態(tài)綁定:若方法類型為priavte static final 編譯器會準(zhǔn)確知道該調(diào)用哪個方法。 (4)當(dāng)程序運行并且使用動態(tài)綁定來調(diào)用一個方法時,那么虛擬機必須調(diào)用x所指向的對象的實際類型相匹配的方法版本。
(5)動態(tài)綁定:是很重要的特性,它能使程序變得可擴展而不需要重編譯已存代碼。14.final類:為防止他人從你的類上派生新類,此類是不可擴展的。
15.動態(tài)調(diào)用比靜態(tài)調(diào)用花費的時間要長。16.抽象類:規(guī)定一個或多個抽象方法的類本身必須定義為abstract。
例: public abstract string getDescripition17.Java中的每一個類都是從Object類擴展而來的。18.object類中的equal和toString方法。
equal用于測試一個對象是否同另一個對象相等。 toString返回一個代表該對象的字符串,幾乎每一個類都會重載該方法,以便返回當(dāng)前狀態(tài)的正確表示。
(toString 方法是一個很重要的方法)19.通用編程:任何類類型的所有值都可以同object類性的變量來代替。20.數(shù)組列表:ArrayList動態(tài)數(shù)組列表,是一個類庫,定義在java.uitl包中,可自動調(diào)節(jié)數(shù)組的大校21.class類 object類中的getclass方法返回ckass類型的一個實例,程序啟動時包含在main方法的類會被加載,虛擬機要加載他需要的所有類,每一個加載的類都要加載它需要的類。
22.class類為編寫可動態(tài)操縱java代碼的程序提供了強大的功能反射,這項功能為JavaBeans特別有用,使用反射Java能支持VB程序員習(xí)慣使用的工具。能夠分析類能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射機制十分強大。
A.在運行時分析類的能力。 B.在運行時探察類的對象。
C.實現(xiàn)通用數(shù)組操縱代碼。 D.提供方法對象。
而此機制主要針對是工具者而不是應(yīng)用及程序。 反射機制中的最重要的部分是允許你檢查類的結(jié)構(gòu).用到的API有: java.lang.reflect.Field 返回字段。
java.reflect.Method 返回方法。 java.lang.reflect.Constructor 返回參數(shù)。
方法指針:java沒有方法指針,把一個方法的地址傳給另一個方法,可以在后面調(diào)用它,而接口是更好的解決方案。23.接口(Interface)說明類該做什么而不指定如何去做,一個類可以實現(xiàn)一個或多個interface。
24.接口不是一個類,而是對符合接口要求。
下面是10道java基礎(chǔ)面試題,后附答案1.什么是 Java 虛擬機?為什么 Java 被稱作是“平臺無關(guān)的編程語言”?Java 虛擬機是一個可以執(zhí)行 Java 字節(jié)碼的虛擬機進程。
Java 源文件被編譯成能被 Java 虛擬機執(zhí)行的字節(jié)碼文件。Java 被設(shè)計成允許應(yīng)用程序可以運行在任意的平臺,而不需要程序員為每一個平臺單獨重寫或者是重新編譯。
Java 虛擬機讓這個變?yōu)榭赡埽驗樗赖讓佑布脚_的指令長度和其他特性。2.“static”關(guān)鍵字是什么意思?Java 中是否可以覆蓋(override)一個 private 或者是static 的方法?“static”關(guān)鍵字表明一個成員變量或者是成員方法可以在沒有所屬的類的實例變量的情況下被訪問。
Java 中 static 方法不能被覆蓋,因為方法覆蓋是基于運行時動態(tài)綁定的,而 static 方法是編譯時靜態(tài)綁定的。static 方法跟類的任何實例都不相關(guān),所以概念上不適用。
3.JDK 和 JRE 的區(qū)別是什么?Java 運行時環(huán)境(JRE)是將要執(zhí)行 Java 程序的 Java 虛擬機。它同時也包含了執(zhí)行 applet 需要的瀏覽器插件。
Java 開發(fā)工具包 (JDK)是完整的 Java 軟件開發(fā)包,包含了 JRE,編譯器和其他的工具(比如:JavaDoc,Java 調(diào)試器),可以讓開發(fā)者開發(fā)、編譯、執(zhí)行 Java 應(yīng)用程序。4.是否可以在 static 環(huán)境中訪問非 static 變量?static 變量在 Java 中是屬于類的,它在所有的實例中的值是一樣的。
當(dāng)類被 Java 虛擬機載入的時候,會對 static 變量進行初始化。如果你的代碼嘗試不用實例來訪問非 static 的變量,編譯器會報錯,因為這些變量還沒有被創(chuàng)建出來,還沒有跟任何實例關(guān)聯(lián)上。
5.Java 支持的數(shù)據(jù)類型有哪些?什么是自動拆裝箱?Java 語言支持的 8 中基本數(shù)據(jù)類型是:?byte?short?int?long?float?double?boolean?char自動裝箱是 Java 編譯器在基本數(shù)據(jù)類型和對應(yīng)的對象包裝類型之間做的一個轉(zhuǎn)化。比如:把 int 轉(zhuǎn)化成 Integer,double 轉(zhuǎn)化成 double,等等。
反之就是自動拆箱。6.Java 支持多繼承么?不支持,Java 不支持多繼承。
每個類都只能繼承一個類,但是可以實現(xiàn)多個接口。7.Java 中,什么是構(gòu)造函數(shù)?什么是構(gòu)造函數(shù)重載?什么是復(fù)制構(gòu)造函數(shù)?當(dāng)新對象被創(chuàng)建的時候,構(gòu)造函數(shù)會被調(diào)用。
每一個類都有構(gòu)造函數(shù)。在程序員沒有給類提供構(gòu)造函數(shù)的情況下,Java 編譯器會為這個類創(chuàng)建一個默認(rèn)的構(gòu)造函數(shù)。
Java 中構(gòu)造函數(shù)重載和方法重載很相似??梢詾橐粋€類創(chuàng)建多個構(gòu)造函數(shù)。
每一個構(gòu)造函數(shù)必須有它自己唯一的參數(shù)列表。Java 不支持像 C++中那樣的復(fù)制構(gòu)造函數(shù),這個不同點是因為如果你不自己寫構(gòu)造函數(shù)的情況下,Java 不會創(chuàng)建默認(rèn)的復(fù)制構(gòu)造函數(shù)。
8.Java 中的方法覆蓋(Overriding)和方法重載(Overloading)是什么意思?Java 中的方法重載發(fā)生在同一個類里面兩個或者是多個方法的方法名相同但是參數(shù)不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。
方法覆蓋必須有相同的方法名,參數(shù)列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
9.接口和抽象類的區(qū)別是什么?Java 提供和支持創(chuàng)建抽象類和接口。它們的實現(xiàn)有共同點,不同點在于:?接口中所有的方法隱含的都是抽象的。
而抽象類則可以同時包含抽象和非抽象的方法。?類可以實現(xiàn)很多個接口,但是只能繼承一個抽象類?類如果要實現(xiàn)一個接口,它必須要實現(xiàn)接口聲明的所有方法。
但是,類可以不實現(xiàn)抽象類聲明的所有方法,當(dāng)然,在這種情況下,類也必須得聲明成是抽象的。?抽象類可以在不提供接口方法實現(xiàn)的情況下實現(xiàn)接口。
?Java 接口中聲明的變量默認(rèn)都是 final 的。抽象類可以包含非 final 的變量。
?Java 接口中的成員函數(shù)默認(rèn)是 public 的。抽象類的成員函數(shù)可以是 private, protected 或者是 public。
?接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含 main 方法的話是可以被調(diào)用的。
10.什么是值傳遞和引用傳遞?對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。
對象被引用傳遞,意味著傳遞的并不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。
最后祝你面試順利。
一般面試官都會讓面試者回答哪些Java基礎(chǔ)面試題???難不難?。?針對這一系列的疑問,廣州增城Java培訓(xùn)學(xué)校收集了部分Java基礎(chǔ)面試題與大家分享,希望對各位參加了廣州專業(yè)Java培訓(xùn)的學(xué)生,有一定的幫助! 一、Java基礎(chǔ)知識 1.Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。
2.字符串的操作: 寫一個方法,實現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cba 寫一個方法,實現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。 3.數(shù)據(jù)類型之間的轉(zhuǎn)換 如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double) 如何將數(shù)字轉(zhuǎn)換為字符 如何取小數(shù)點前兩位,并四舍五入。
4.日期和時間 如何取得年月日,小時分秒 如何取得從1970年到現(xiàn)在的毫秒數(shù) 如何獲取某個日期是當(dāng)月的最后一天 如何格式化日期 5.數(shù)組和集合 6.文件和目錄(I/O)操作 如何列出某個目錄下的所有文件 如何列出某個目錄下的所有子目錄 判斷一個文件或目錄是否存在 如何讀寫文件 7.Java多態(tài)的實現(xiàn)(繼承、重載、覆蓋) 8.編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。 9.Java中訪問數(shù)據(jù)庫的步驟,Statement和PreparedStatement之間的區(qū)別。
10.找出下列代碼可能存在的錯誤,并說明原因: 二、JSP&Servlet技術(shù) 1.描述JSP和Servlet的區(qū)別、共同點、各自應(yīng)用的范圍 2.在Web開發(fā)中需要處理HTML標(biāo)記時,應(yīng)做什么樣的處理,要篩選那些字符( & “”) 3.在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。 4.描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理。
5.列出Jsp中包含外部文件的方式,兩者有何區(qū)別。 6.說明Jsp中errorPage的作用,應(yīng)用范圍。
7.介紹在Jsp中如何使用JavaBeans。 8.簡單介紹JSP的標(biāo)記庫 9.Jsp和Servlet中的請求轉(zhuǎn)發(fā)分別如何實現(xiàn)。
三、J2EE相關(guān)知識 1.介紹J2EE、J2SE、J2SE的區(qū)別。 2.J2EE是一種技術(shù)還是一種平臺,他提供了那些技術(shù)。
3.什么是Application Server,它有什么功能和優(yōu)點。 4.簡單介紹連接池的優(yōu)點和原理。
5.Web.xml的作用 四、其他 1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應(yīng)用程序的安全性,SSL,代碼考慮) 2.簡單介紹您所了解的MVC。 3.簡單介紹所了解的XML。
4.文檔和編碼規(guī)范 5.Java中的分頁、效率考慮。 6.簡單介紹您所了解的structs。
Java面試題收藏: 1.xml在項目中的作用 2.s-EJB 與 e-EJB的區(qū)別 3.會話面的作用 4.cmp與bmp的優(yōu)缺點 5.j2me程序的必需的幾個部分 6.c/s與b/s的區(qū)別 7.構(gòu)建一個connect pool然后再調(diào)用它, 8.j2ee平臺與dotnet平臺的區(qū)別 9.ejb的life cycle 10.session bean 和 entity bean的區(qū)別 11.ejb中的transaction機制 12.synchronized (生產(chǎn)者和消費) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什么是MDA 17.tcp與udp的區(qū)別 18.鏈表與散列表和數(shù)組的區(qū)別 19.堆和棧的區(qū)別 20.ejb的分類及區(qū)別 21.你對現(xiàn)在軟件業(yè)以及國內(nèi)軟件業(yè)的看法 22.談?wù)刯ava多線程 23.談?wù)勎募用芗夹g(shù) 24.軟件開發(fā)生命周期 25.路由協(xié)議種類及特點 26.java的awt和swing組件的GUI設(shè)計的關(guān)鍵 27.對于java流的認(rèn)識 28.簡單描述一下awt與swing區(qū)別。 29.簡述java編程中事件處理模式。
30.你編寫過applet嗎?applet的安全權(quán)限如何?試列舉java application或者applet中與servlet/jsp通信可以采用的方式。 31.簡述邏輯操作(如&|)與條件操作(如&&||)的區(qū)別。
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是 Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。 第二,Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)? 可以繼承其他類或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。 Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實例被實例化。
而通常的內(nèi)部類需要在外部類實例化后才能實例化。 第四,&和&&的區(qū)別。
&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。 第五,HashMap和Hashtable的區(qū)別。
HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。 第六,Collection 和 Collections的區(qū)別。
Collection是集合類的上級接口,繼承與他的接口主要有Set 和List。Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作。
第七,什么時候用assert。 1。
4新增關(guān)鍵字(語法),用于測試boolean表達式狀態(tài),可用于調(diào)試程序。使用方法 assert ,表示如果表達式為真(true),則下面的語句執(zhí)行,否則拋出AssertionError。
另外的使用方式assert :,表示如果表達式為真,后面的表達式忽略,否則后面表達式的值用于AssertionError的構(gòu)建參數(shù)。 注意編譯時要增加-source 1。
4 參數(shù),否則報錯。]運行時要增加 –ea參數(shù),否則assert行被忽略 第八,GC是什么? 為什么要有GC? GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以 自動監(jiān)測對象是否超過作用域從而達到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。
第九,String s = new String("xyz");創(chuàng)建了幾個String Object? 兩個 第十,Math。round(11。
5)等於多少? Math。round(-11。
5)等於多少? Math。round(11。
5)==12Math。round(-11。
5)==-11round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor。 第十一,short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯? short s1 = 1; s1 = s1 + 1; (s1+1運算結(jié)果是int型,需要強制轉(zhuǎn)換類型)short s1 = 1; s1 += 1;(可以正確編譯) 第十二,sleep() 和 wait() 有什么區(qū)別? sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。
調(diào)用 sleep不會釋放對象鎖。wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對 象發(fā)出notify方法(或notifyAll)后本線程才進入對象鎖定池準(zhǔn)備獲得對象鎖進入運行狀態(tài)。
第十三,Java有沒有g(shù)oto? 沒有 很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進這家公司。第十四,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法? 數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個方法。第十五,Overload和Override的區(qū)別。
Overloaded的方法是否可以改變返回值的類型? 方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn), 重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。
如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。
如果在一個類中定義了多個同名的方 法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。 Overloaded的方法是可以改變返回值的類型。
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally 是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize 是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。 第二,Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口) 可以繼承其他類或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。 Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實例被實例化。
而通常的內(nèi)部類需要在外部類實例化后才能實例化。 第四,&和&&的區(qū)別。
&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。 第五,HashMap和Hashtable的區(qū)別。
HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。 第六,Collection 和 Collections的區(qū)別。
Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作。 第七,什么時候用assert。
Java1.4新增關(guān)鍵字(語法),用于測試boolean 表達式狀態(tài),可用于調(diào)試程序。使用方法 assert ,表示如果表達式為真(true),則下面的語句執(zhí)行,否則拋出AssertionError。
另外的使用方式assert boolean表達式,表示如果表達式為真,后面的表達式忽略,否則后面表達式的值用于AssertionError的構(gòu)建參數(shù)。注意編譯時要增加 -source 1.4 參數(shù),否則報錯。
運行時要增加 –ea參數(shù),否則assert行被忽略。 第八,GC是什么?為什么要有GC? GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象是否超過作用域從而達到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。
第九,String s = new String("xyz"); 創(chuàng)建了幾個String Object? 2個。首先在數(shù)據(jù)段創(chuàng)建一個"xyz"對象,再根據(jù)該對象在堆區(qū)創(chuàng)建一個新的對象,在棧區(qū)創(chuàng)建變量s,該變量是指向堆區(qū)對象的引用。
所以一共兩個String對象。 第十,Math.round(11.5)等於多少 Math.round(-11.5)等於多少? Math.round(11.5)==12 Math.round(-11.5)==-11 round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加12后求其floor。
第十一,short s1 = 1; s1 = s1 + 1; 有什么錯?short s1 = 1; s1 += 1; 有什么錯? s1 + 1運算結(jié)果是int型,需要強制轉(zhuǎn)換類型。 s1 += 1; 可以正確編譯。
第十二,sleep() 和 wait() 有什么區(qū)別 sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用 sleep不會釋放對象鎖。
wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進入對象鎖定池準(zhǔn)備獲得對象鎖進入運行狀態(tài)。 第十三,Java有沒有g(shù)oto 沒有 第十四,數(shù)組有沒有l(wèi)ength()這個方法 String有沒有l(wèi)ength()這個方法? 數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。
String有l(wèi)ength()這個方法。 來 第十五,Overload和Override的區(qū)別。
Overloaded的方法是否可以改變返回值的類型? 方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。
如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。
如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別? Set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象。equals()在類中被覆蓋,為的是當(dāng)兩個分離的對象的內(nèi)容和類型相配的話,返回真值。
第十七,給我一個你最常見到的runtime exception。 NullPointerException或者。
(其它:ArithmeticException, ArrayStoreException, , , CannotRedoException, CannotUndoException, ClassCastException, CMMException, 。
一般面試官都會讓面試者回答哪些Java基礎(chǔ)面試題???難不難??? 針對這一系列的疑問,廣州增城Java培訓(xùn)學(xué)校收集了部分Java基礎(chǔ)面試題與大家分享,希望對各位參加了廣州專業(yè)Java培訓(xùn)的學(xué)生,有一定的幫助! 一、Java基礎(chǔ)知識 1.Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。
2.字符串的操作: 寫一個方法,實現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cba 寫一個方法,實現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。 3.數(shù)據(jù)類型之間的轉(zhuǎn)換 如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double) 如何將數(shù)字轉(zhuǎn)換為字符 如何取小數(shù)點前兩位,并四舍五入。
4.日期和時間 如何取得年月日,小時分秒 如何取得從1970年到現(xiàn)在的毫秒數(shù) 如何獲取某個日期是當(dāng)月的最后一天 如何格式化日期 5.數(shù)組和集合 6.文件和目錄(I/O)操作 如何列出某個目錄下的所有文件 如何列出某個目錄下的所有子目錄 判斷一個文件或目錄是否存在 如何讀寫文件 7.Java多態(tài)的實現(xiàn)(繼承、重載、覆蓋) 8.編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。 9.Java中訪問數(shù)據(jù)庫的步驟,Statement和PreparedStatement之間的區(qū)別。
10.找出下列代碼可能存在的錯誤,并說明原因: 二、JSP&Servlet技術(shù) 1.描述JSP和Servlet的區(qū)別、共同點、各自應(yīng)用的范圍 2.在Web開發(fā)中需要處理HTML標(biāo)記時,應(yīng)做什么樣的處理,要篩選那些字符( & “”) 3.在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。 4.描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理。
5.列出Jsp中包含外部文件的方式,兩者有何區(qū)別。 6.說明Jsp中errorPage的作用,應(yīng)用范圍。
7.介紹在Jsp中如何使用JavaBeans。 8.簡單介紹JSP的標(biāo)記庫 9.Jsp和Servlet中的請求轉(zhuǎn)發(fā)分別如何實現(xiàn)。
三、J2EE相關(guān)知識 1.介紹J2EE、J2SE、J2SE的區(qū)別。 2.J2EE是一種技術(shù)還是一種平臺,他提供了那些技術(shù)。
3.什么是Application Server,它有什么功能和優(yōu)點。 4.簡單介紹連接池的優(yōu)點和原理。
5.Web.xml的作用 四、其他 1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應(yīng)用程序的安全性,SSL,代碼考慮) 2.簡單介紹您所了解的MVC。 3.簡單介紹所了解的XML。
4.文檔和編碼規(guī)范 5.Java中的分頁、效率考慮。 6.簡單介紹您所了解的structs。
Java面試題收藏: 1.xml在項目中的作用 2.s-EJB 與 e-EJB的區(qū)別 3.會話面的作用 4.cmp與bmp的優(yōu)缺點 5.j2me程序的必需的幾個部分 6.c/s與b/s的區(qū)別 7.構(gòu)建一個connect pool然后再調(diào)用它, 8.j2ee平臺與dotnet平臺的區(qū)別 9.ejb的life cycle 10.session bean 和 entity bean的區(qū)別 11.ejb中的transaction機制 12.synchronized (生產(chǎn)者和消費) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什么是MDA 17.tcp與udp的區(qū)別 18.鏈表與散列表和數(shù)組的區(qū)別 19.堆和棧的區(qū)別 20.ejb的分類及區(qū)別 21.你對現(xiàn)在軟件業(yè)以及國內(nèi)軟件業(yè)的看法 22.談?wù)刯ava多線程 23.談?wù)勎募用芗夹g(shù) 24.軟件開發(fā)生命周期 25.路由協(xié)議種類及特點 26.java的awt和swing組件的GUI設(shè)計的關(guān)鍵 27.對于java流的認(rèn)識 28.簡單描述一下awt與swing區(qū)別。 29.簡述java編程中事件處理模式。
30.你編寫過applet嗎?applet的安全權(quán)限如何?試列舉java application或者applet中與servlet/jsp通信可以采用的方式。 31.簡述邏輯操作(如&|)與條件操作(如&&||)的區(qū)別。
java的基礎(chǔ)知識點就太多了,要說也不能窮盡,這個主要是靠自己在平時的積累和項目的開發(fā)經(jīng)驗,外邊考的多的一般是繼承,多態(tài),線程,集合等等,但是筆試或者是面試中很有可能問許多集體的內(nèi)容,比如hashMap和hashTable的異同點,集合的主要框架,這些要多看資料,我的建議是到網(wǎng)上去多下點筆試題,看到了就會有感覺,基礎(chǔ)知識牢靠的話,筆試很容易過。
面試的時候(我只能說關(guān)于技術(shù)的部分),java web面試,首先面試官要看你有沒有項目的經(jīng)驗,所以簡歷中肯定要有項目的經(jīng)驗。再者,簡歷中的項目一定要是你親身經(jīng)歷的,或者是你對這個項目很了解(不論是從技術(shù)或者是從源碼),因為面試官在你介紹的項目的時候很可能打斷你要你介紹具體的實現(xiàn)方法。
在介紹自己項目的時候,一定要發(fā)覺自己在項目中的閃光點,也就是有和一般的項目有重大區(qū)別的地方(可以對面試官詳訴)。然后就是你在項目中所使用的技術(shù),你要有一定的了解,比如說spring,你首先要知道使用spring框架的好處,然后就是spring的主要組成(ioc和aop),當(dāng)然面試官回問一些關(guān)于技術(shù)的實際問題(比如說加載的applicationContext.xml可不可以改名字,怎么實現(xiàn)),這個就看你的項目經(jīng)驗了。
總的來說,關(guān)于技術(shù)方面你要知道使用技術(shù)的優(yōu)點,基本的組成,這個可以多網(wǎng)上去搜索關(guān)于特定技術(shù)的面試問題。Mybatis我不是很懂所以給不了你答案,Struts好像學(xué)java web的都在用,但在實際開發(fā)中好像用的真的不是很多,面試的問題一般是關(guān)于它的配置問題,比如要返回一個json對象怎么設(shè)置,幾個配置文件怎么糅合,我也不知道說什么好,如果可以的話,還是上網(wǎng)上搜搜看。
好了,說的就是這么多,希望你能有收獲。
1、相比編程題,問概念的相對較多,畢竟面試官要了解你的Java基礎(chǔ),知識面。
2、編程題也有,一般都是些算法。算法考的就是你的數(shù)據(jù)結(jié)構(gòu)、思維邏輯的靈活度。
3、看你面試的職位,如果是web開發(fā),會有一些j2ee常用框架的問題及一些中間件相關(guān)的內(nèi)容
4、如果職位非初級,可能還會有一些常用設(shè)計模式,sql、uml方面的知識點。
5、題目的來源一般都是以書本為主,該公司職位工作常用的知識點為出發(fā)點。
總之,只要你基礎(chǔ)相對扎實,再看點自己所找工作相關(guān)的面試題,一般面試都有很大勝算。
有問題歡迎提問,滿意請采納!
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.040秒