java面試基礎知識
⑴ java程序員面試要會那些具體技術和知識
我只能告訴你JAVAEE的面試需要什麼
首先,你要OOP過關,會servlet,JSP,HTML,CSS+DIV。專
能會點javascript,AJAX就更好點。
然後你要熟悉屬MVC模式開發,struts1或struts2,hibernate或ibatis,spring。簡稱SSH框架。
這些你都了解的話,那機試大概就沒什麼問題了!
基礎知識要扎實,如果你能在面試的時候占據主動,那麼就成功了。
⑵ java 現在面試問的 基礎知識 一般有那些!
分享一下:
Java初學者入門應該掌握的30個概念
核心提示:OOP中唯一關系的是對象的介面是什麼,就像計算機的銷售商她不管電源內部結構 是怎樣的,他只關系能否給你提供電就行了,也就是只要知道can or not而不是how and why。
基本概念:
1.OOP中唯一關系的是對象的介面是什麼,就像計算機的銷售商她不管電源內部結構 是怎樣的,他只關系能否給你提供電就行了,也就是只要知道can or not而不是how and why。所有的程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數調用來完成,對象間所有的交流都是通過方法調用,通過對封裝對象數據,很大 限度上提高復用率。
2.OOP中最重要的思想是類,類是模板是藍圖,從類中構造一個對象,即創建了這個類的一個實例(instance)。
3.封裝:就是把數據和行為結合起在一個包中)並對對象使用者隱藏數據的實現過程,一個對象中的數據叫他的實例欄位(instance field)。
4.通過擴展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴展而得,根超類下文會做介紹。
5.對象的3個主要特性
ehavior---說明這個對象能做什麼。
tate---當對象施加方法時對象的反映。
dentity---與其他相似行為對象的區分標志。
每個對象有唯一的indentity 而這3者之間相互影響。
6.類之間的關系:
use-a :依賴關系
has-a :聚合關系
is-a :繼承關系--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在於共性中)
7.構造對象使用構造器:構造器的提出,構造器是一種特殊的方法,構造對象並對其初始化。
例:Data類的構造器叫Data
ew Data()---構造一個新對象,且初始化當前時間。
Data happyday=new Data()---把一個對象賦值給一個變數happyday,從而使該對象能夠多次使用,此處要聲明的使變數與對象變數二者是不同的.new返回的值是一個引用。
構造器特點:構造器可以有0個,一個或多個參數; 構造器和類有相同的名字;一個類可以有多個構造器;構造器沒有返回值;構造器總是和new運算符一起使用。
8.重載:當多個方法具有相同的名字而含有不同的參數時,便發生重載.編譯器必須挑選出調用哪個方法。
9.包(package)Java允許把一個或多個類收集在一起成為一組,稱作包,以便於組織任務,標准Java庫分為許多包。java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內。
10.繼承思想:允許在已經存在的類的基礎上構建新的類,當你繼承一個已經存在的類時,那麼你就復用了這個類的方法和欄位,同時你可以在新類中添加新的方法和欄位。
11.擴展類:擴展類充分體現了is-a的繼承關系. 形式為:class (子類) extends (基類)。
12.多態:在java中,對象變數是多態的.而java中不支持多重繼承。
13.動態綁定:調用對象方法的機制。
(1)編譯器檢查對象聲明的類型和方法名。
(2)編譯器檢查方法調用的參數類型。
(3)靜態綁定:若方法類型為priavte static final 編譯器會准確知道該調用哪個方法。
(4)當程序運行並且使用動態綁定來調用一個方法時,那麼虛擬機必須調用x所指向的對象的實際類型相匹配的方法版本。
(5)動態綁定:是很重要的特性,它能使程序變得可擴展而不需要重編譯已存代碼。
14.final類:為防止他人從你的類上派生新類,此類是不可擴展的。
15.動態調用比靜態調用花費的時間要長。
16.抽象類:規定一個或多個抽象方法的類本身必須定義為abstract。
例: public abstract string getDescripition
17.Java中的每一個類都是從Object類擴展而來的。
18.object類中的equal和toString方法。
equal用於測試一個對象是否同另一個對象相等。
toString返回一個代表該對象的字元串,幾乎每一個類都會重載該方法,以便返回當前狀態的正確表示。
(toString 方法是一個很重要的方法)
19.通用編程:任何類類型的所有值都可以同object類性的變數來代替。
20.數組列表:ArrayList動態數組列表,是一個類庫,定義在java.uitl包中,可自動調節數組的大校
21.class類 object類中的getclass方法返回ckass類型的一個實例,程序啟動時包含在main方法的類會被載入,虛擬機要載入他需要的所有類,每一個載入的類都要載入它需要的類。
22.class類為編寫可動態操縱java代碼的程序提供了強大的功能反射,這項功能為JavaBeans特別有用,使用反射Java能支持VB程序員習慣使用的工具。能夠分析類能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射機制十分強大。
A.在運行時分析類的能力。
B.在運行時探察類的對象。
C.實現通用數組操縱代碼。
D.提供方法對象。
而此機制主要針對是工具者而不是應用及程序。
反射機制中的最重要的部分是允許你檢查類的結構.用到的API有:
java.lang.reflect.Field 返回欄位。
java.reflect.Method 返回方法。
java.lang.reflect.Constructor 返回參數。
方法指針:java沒有方法指針,把一個方法的地址傳給另一個方法,可以在後面調用它,而介面是更好的解決方案。
23.介面(Interface)說明類該做什麼而不指定如何去做,一個類可以實現一個或多個interface。
24.介面不是一個類,而是對符合介面要求的類的一套規范。若實現一個介面需要2個步驟:
A.聲明類需要實現的指定介面。
B.提供介面中的所有方法的定義。
聲明一個類實現一個介面需要使用implements 關鍵字class actionB implements Comparable 其actionb需要提供CompareTo方法,介面不是類,不能用new實例化一個介面。
25.一個類只有一個超類,但一個類能實現多個介面。Java中的一個重要介面:Cloneable
26.介面和回調.編程一個常用的模式是回調模式,在這種模式中你可以指定當一個特定時間發生時回調對象上的方法。
例:ActionListener 介面監聽。
類似的API有:
java.swing.JOptionPane
java.swing.Timer
java.awt.Tookit
27.對象clone:clone方法是object一個保護方法,這意味著你的代碼不能簡單的調用它。
28.內部類:一個內部類的定義是定義在另一個內部的類。原因是:
A.一個內部類的對象能夠訪問創建它的對象的實現,包括私有數據。
B.對於同一個包中的其他類來說,內部類能夠隱藏起來。
C.匿名內部類可以很方便的定義回調。
D.使用內部類可以非常方便的編寫事件驅動程序。
29.代理類(proxy):
A.指定介面要求所有代碼
B.object類定義的所有的方法(toString equals)
30.數據類型:Java是強調類型的語言,每個變數都必須先申明它都類型,java中總共有8個基本類型.4種是整型,2種是浮點型,一種是字元型,被用於Unicode編碼中的字元,布爾型。
⑶ java基礎面試題
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2.繼承:
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼 承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增 加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。
4. 多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
5、String 和StringBuffer的區別
JAVA平台提供了兩個類:String和 StringBuffer,它們可以儲存和操作字元串,即包含多個字元的字元數據。這個String類提供了數值不可改變的字元串。而這個 StringBuffer類提供的字元串進行修改。當你知道字元數據要改變的時候你就可以使用StringBuffer。典型地,你可以使用 StringBuffers來動態構造字元數據。
6、運行時異常與一般異常有何異同?
異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。
7、說出Servlet的生命周期,並說出Servlet和CGI的區別。
Servlet被伺服器實例化後,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當伺服器決定將實例銷毀的時候調用其destroy方法。
與cgi的區別在於servlet處於伺服器進程中,它通過多線程方式運行其service方法,一個實例可以服務於多個請求,並且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成後就銷毀,所以效率上低於servlet。
8、說出ArrayList,Vector, LinkedList的存儲性能和特性
ArrayList和 Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素 移動等內存操作,所以索引數據快而插入數據慢,Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,而 LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。
10、&和&&的區別。
&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。
11、HashMap和Hashtable的區別。
HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。
12、final, finally, finalize的區別。
final 用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。
13、sleep() 和 wait() 有什麼區別?
sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時後會自動恢復。調用sleep不會釋放對象鎖。
wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)後本線程才進入對象鎖定池准備獲得對象鎖進入運行狀態。
14、Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
方法的重寫Override和重載Overload是Java多態性的不同表現。重寫Overrid是父類與子類之間多態性的一種表現,重載 Overload是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overrid)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方 法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overload的方法是可以改變返回值的類型。
15、error和exception有什麼區別?
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。
16、同步和非同步有何異同,在什麼情況下分別使用他們?舉例說明。
如果數據將在線程間共享。例如正在寫的數據以後可能被另一個線程讀到,或者正在讀的數據可能已經被另一個線程寫過了,那麼這些數據就是共享數據,必須進行同步存取。
當應用程序在對象上調用了一個需要花費很長時間來執行的方法,並且不希望讓程序等待方法的返回時,就應該使用非同步編程,在很多情況下採用非同步途徑往往更有效率。
17、try { }里有一個return語句,那麼緊跟在這個try後的finally { }里的code會不會被執行,什麼時候被執行,在return前還是後?
會執行,在return前執行。
18、Java中的異常處理機制的簡單原理和應用。
當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情 況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發 NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用 throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。
19、垃圾回收的優點和原理。並考慮2種回收機制。
Java語言中一個顯著的特點就是引入了垃圾回收機制,使C++程序員最頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內存管理。由於有個垃圾回收機制,Java中的對象不再有 "作用域"的概念,只有對象的引用才有"作用域"。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個單獨的低級別的 線程運行,不可預知的情況下對內存堆中已經死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或所有對象進行垃圾 回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。
20、請說出你所知道的線程同步的方法。
wait():使一個線程處於等待狀態,並且釋放所持有的對象的lock。
sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。
notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先順序。
Allnotity():喚醒所有處入等待狀態的線程,注意並不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。
21、描述一下JVM載入class文件的原理機制
JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類。
22、MVC的各個部分都有那些技術來實現?如何實現?
MVC是Model-View-Controller 的簡寫。"Model" 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。
23、List、Map、Set三個介面,存取元素時,各有什麼特點?
List以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存key-value值.
119、STRUTS的應用(如STRUTS架構)
Struts是採用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework。 採用Struts能開發出基於MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能: 一.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。 二.JSP自由tag庫,並且在controller servlet中提供關聯支持,幫助開發員創建互動式表單應用。 三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。
⑷ 我要面試了,給些java面試基礎問題,在線等
一、Java基礎知識
1.Java有那些基本數據類型,是不是基本數據類型,他們有何區別。
2.字元串的操作:
寫一個方法,實現字元串的反轉,如:輸入abc,輸出cba
寫一個方法,實現字元串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。
3.數據類型之間的轉換
如何將數值型字元轉換為數字(Integer,Double)
如何將數字轉換為字元
如何取小數點前兩位,並四捨五入。
4.日期和時間
如何取得年月日,小時分秒
如何取得從1970年到現在的毫秒數
如何獲取某個日期是當月的最後一天
如何格式化日期
5.數組和集合
6.文件和目錄(I/O)操作
如何列出某個目錄下的所有文件
如何列出某個目錄下的所有子目錄
判斷一個文件或目錄是否存在
如何讀寫文件
7.Java多態的實現(繼承、重載、覆蓋)
8.編碼轉換,怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串。
9.Java中訪問資料庫的步驟,Statement和PreparedStatement之間的區別。
10.找出下列代碼可能存在的錯誤,並說明原因:
二、JSP&Servlet技術
1.描述JSP和Servlet的區別、共同點、各自應用的范圍
2.在Web開發中需要處理HTML標記時,應做什麼樣的處理,要篩選那些字元(< > & 「」)
3.在JSP中如何讀取客戶端的請求,如何訪問CGI變數,如何確定某個Jsp文件的真實路徑。
4.描述Cookie和Session的作用,區別和各自的應用范圍,Session工作原理。
5.列出Jsp中包含外部文件的方式,兩者有何區別。
6.說明Jsp中errorPage的作用,應用范圍。
7.介紹在Jsp中如何使用JavaBeans。
8.簡單介紹JSP的標記庫
9.Jsp和Servlet中的請求轉發分別如何實現。
三、J2EE相關知識
1.介紹J2EE、J2SE、J2SE的區別。
2.J2EE是一種技術還是一種平台,他提供了那些技術。
3.什麼是Application Server,它有什麼功能和優點。
4.簡單介紹連接池的優點和原理。
5.Web.xml的作用
四、其他
1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮)
2.簡單介紹您所了解的MVC。
3.簡單介紹所了解的XML。
4.文檔和編碼規范
5.Java中的分頁、效率考慮。
6.簡單介紹您所了解的structs。
.xml在項目中的作用
2.s-EJB 與 e-EJB的區別
3.會話面的作用
4.cmp與bmp的優缺點
5.j2me程序的必需的幾個部分
6.c/s與b/s的區別
7.構建一個connect pool,然後再調用它,
8.j2ee平台與dotnet平台的區別
9.ejb的life cycle
10.session bean 和 entity bean的區別
11.ejb中的transaction機制
12.synchronized (生產者和消費)
13.String 和 StringBuffer
14.Serializable
15.MVC (Struts的工作流程)
16.什麼是MDA
17.tcp與udp的區別
18.鏈表與散列表和數組的區別
19.堆和棧的區別
20.ejb的分類及區別
21.你對現在軟體業以及國內軟體業的看法
22.談談java多線程
23.談談文件加密技術
24.軟體開發生命周期
25.路由協議種類及特點
26.java的awt和swing組件的GUI設計的關鍵
27.對於java流的認識
28.簡單描述一下awt與swing區別。
29.簡述java編程中事件處理模式。
30.你編寫過applet嗎?applet的安全許可權如何?試列舉java application或者applet中與servlet/jsp通信可以採用的方式。
31.簡述邏輯操作(如&,|)與條件操作(如&&,||)的區別。
32.簡述 Java Server Page 和 Servlet 的聯系和區別。
33.簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
34.EJB規范規定EJB中禁止的操作有哪些?
35.java除了8種基本類型外,在虛擬機里還有哪一種,有什麼作用?
36.除了使用new關鍵字創建對象意外,試列舉另外三種以上創建實例的方式?
37.classloader中,JDK的API、Classpath中的同web-inf中的class載入方式有什麼區別?
38.列舉三種以上垃圾回收演算法,並比較其優缺點?
39.編寫代碼實現一個線程池
40.描述一下JVM載入class文件的原理機制?
41.試舉例說明一個典型的垃圾回收演算法?
42.請用java寫二叉樹演算法,實現添加數據形成二叉樹功能,並以先序的方式列印出來.
43.請寫一個java程序實現線程連接池功能?
44.給定一個C語言函數,要求實現在java類中進行調用。
45.如何獲得數組的長度?
46.訪問修飾符「public/private/protected/預設的修飾符」的使用
47.用關鍵字final修飾一個類或者方法時,有何意義?
48.掌握類和對象的概念,掌握面向對象編程的本質
49.靜態變數和靜態方法的意義,如何引用一個類的靜態變數或者靜態方法?
50.JAVA語言如何進行異常處理,關鍵字:thorws,throw,try,catch,finally
51.Object類(或者其子類)的finalize()方法在什麼情況下被調用?
52.一個「.java」原文件中是否可以包括多個類(不是內部類)?
53.掌握內部類和介面的概念
54.StringTokenizer類的使用
55.數據結構,如何遍歷List中的元素?
如果要按照鍵值保存或者訪問數據,使用什麼數據結構?
要掌握Collection相關的介面和類的使用
56.使用StringBuffer類與String類進行字元串連接時有何區別?
57.調用Thread類的destroy()方法有什麼後果?
58.多線程,用什麼關鍵字修飾同步方法?stop()和suspend()方法為何不推薦使用?
59.使用socket建立客戶端與伺服器的通信的過程
60.JAVA語言國際化應用,Locale類,Unicode
61.描述反射機制的作用
62.如何讀寫一個文件?
63.在圖形界面中,一個按鈕如何處理滑鼠點擊事件?
64.在圖形界面中,一個表格,如何實現編輯單元格時彈出下拉框?
65.如何載入圖片?
66.什麼是模態對話框?
67.闡述MVC的概念
68.GUI布局管理器的使用,FlowLayout,BorderLayout,GridBagLayout
69.如何構造一棵樹?選擇樹的一個節點時,如何得到這個節點?
70.向編輯框中輸入字元時,如何控制只輸入整數?
71.描述使用JDBC連接資料庫的過程
72.EJB分為幾類?什麼是BMP,CMP?
73.什麼是JNDI?
74.ADO是什麼?ActiveX數據對象,是一個應用級程序介面.
75.四種JDBC方式?目前的版本?
76.EJB有哪幾種?區別是什麼?
77.JavaBean與EJB有什麼區別?
78.軟體開發生命周期有哪幾個階段?
79.軟體開發有哪些因素?
80.軟體開發中如何進行版本控制?
81.UML中,類視圖如何表示類中的繼承與聚合?
82.客戶端游標與伺服器端游標的區別?
83.動態游標與靜態游標的區別?
84.dotnet由哪幾個基本框架組成?
85.Oracle中SGA是什麼?
86.web servers是什麼?
87.UNIX中QT是什麼意思?
88.在軟體開發生命周期中的哪個階段開始測試?
89.dotnet與J2EE的比較?
90.什麼是ActiveX?
91.Java中IDL是什麼?
92.ISO9000和CMM是什麼?IS09000和CMM(軟體能力成熟度模型)認證是國際上通用的軟體質量評估方法.CMM的五個成熟度等級。
⑸ Java面試常見基礎問題有哪些
考的都是java的基礎,基礎好的話很容易進入公司,一般都會問
String,StringBuffer,StringBudilder區別
ArrayList,vector 等的區版別
hashMap,hashTable 的區別
多線程的實現方權式和方法了
傳參數方面的 考傳的是本身還是副本 如 a(String value); a方法的value參數是傳本身還是副本
其它的問題都是最基本的,基本能答上來
還有就是框架的知識了,比如spring 依賴注入,事務深入點的話 攔截器等
考其它框架的話 基本上問的都是比較基礎的 難的話很少問到
db方面的話 簡單考下你的sql , 可能會寫幾個表 要查什麼讓你寫sql 主要考 多表連接查詢,分組,分組後的查詢,排序,取最大最小之類的 看你sql熟練否
我面試過10多間公司 基本都是上面我說到的問題
⑹ Java面試中需要掌握的知識點有哪些
三大框架 jquery mvc 資料庫 線程的問題 等好多的
⑺ java面試要注意什麼
1、請你自我介紹一下自己好嗎? 回答提示:一般人回答這個問題過於平常,只說姓名、年齡、愛好、工作經驗,這些在簡歷上都有。其實,企業最希望知道的是求職者能否勝任工作,包括:最強的技能、最深入研究的知識領域、個性中最積極的部分、做過的最成功的事,主要的成就等,這些都可以和學習無關,也可以和學習有關,但要突出積極的個性和做事的能力,說得合情合理企業才會相信。企業很重視一個人的禮貌,求職者要尊重考官,在回答每個問題之後都說一句「謝謝」,企業喜歡有禮貌的求職者。 2、你覺得你個性上最大的優點是什麼? 回答提示:沉著冷靜、條理清楚、立場堅定、頑強向上、樂於助人和關心他人、適應能力和幽默感、樂觀和友愛。我在北大青鳥經過一到兩年的培訓及項目實戰,加上實習工作,使我適合這份工作。 3、說說你最大的缺點? 回答提示:這個問題企業問的概率很大,通常不希望聽到直接回答的缺點是什麼等,如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,企業肯定不會錄用你。絕對不要自作聰明地回答「我最大的缺點是過於追求完美」,有的人以為這樣回答會顯得自己比較出色,但事實上,他已經岌岌可危了。企業喜歡求職者從自己的優點說起,中間加一些小缺點,最後再把問題轉回到優點上,突出優點的部分,企業喜歡聰明的求職者。 4、你對薪資的要求? 回答提示:如果你對薪酬的要求太低,那顯然貶低自己的能力;如果你對薪酬的要求太高,那又會顯得你分量過重,公司受用不起。一些僱主通常都事先對求聘的職位定下開支預算,因而他們第一次提出的價錢往往是他們所能給予的最高價錢,他們問你只不過想證實一下這筆錢是否足以引起你對該工作的興趣。 回答樣本一:我對工資沒有硬性要求,我相信貴公司在處理我的問題上會友善合理。我注重的是找對工作機會,所以只要條件公平,我則不會計較太多。 回答樣本二:我受過系統的軟體編程的訓練,不需要進行大量的培訓,而且我本人也對編程特別感興趣。因此,我希望公司能根據我的情況和市場標準的水平,給我合理的薪水。 回答樣本三:如果你必須自己說出具體數目,請不要說一個寬泛的范圍,那樣你將只能得到最低限度的數字。最好給出一個具體的數字,這樣表明你已經對當今的人才市場作了調查,知道像自己這樣學歷的雇員有什麼樣的價值。 5、你對加班的看法? 回答提示:實際上好多公司問這個問題,並不證明一定要加班,只是想測試你是否願意為公司奉獻。 回答樣本:如果工作需要我會義不容辭加班,我現在單身,沒有任何家庭負擔,可以全身心的投入工作。但同時我也會提高工作效率,減少不必要的加班。 6、如果通過這次面試我們錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎麼辦? 回答提示:一段時間發現工作不適合我,有兩種情況:①如果你確實熱愛這個職業,那你就要不斷學習,虛心向領導和同事學習業務知識和處事經驗,了解這個職業的精神內涵和職業要求,力爭減少差距;②你覺得這個職業可有可無,那還是趁早換個職業,去發現適合你的,你熱愛的職業,那樣你的發展前途也會大點,對單位和個人都有好處。 7、談談你對跳槽的看法? 回答提示:①正常的「跳槽」能促進人才合理流動,應該支持。②頻繁的跳槽對單位和個人雙方都不利,應該反對。 8、工作中難以和同事、上司相處,你該怎麼辦? 回答提示:①我會服從領導的指揮,配合同事的工作。②我會從自身找原因,仔細分析是不是自己工作做得不好讓領導不滿意,同事看不慣。還要看看是不是為人處世方面做得不好,如果是這樣的話我會努力改正。③如果我找不到原因,我會找機會跟他們溝通,請他們指出我的不足,有問題就及時改正。④作為優秀的員工,應該時刻以大局為重,即使在一段時間內,領導和同事對我不理解,我也會做好本職工作,虛心向他們學習,我相信,他們會看見我在努力,總有一天會對我微笑的。 9、你對於我們公司了解多少? 回答提示:在去公司面試前上網查一下該公司主營業務。如回答:貴公司有意改變策略,加強與國外大廠的OEM合作,自有品牌的部分則透過海外經銷商。 10、最能概括你自己的三個詞是什麼? 回答提示:我經常用的三個詞是:適應能力強,有責任心和做事有始終,結合具體例子向主考官解釋, 11、你的業余愛好是什麼? 回答提示:找一些富於團體合作精神的,這里有一個真實的故事:有人被否決掉,因為他的愛好是深海潛水。主考官說:因為這是一項單人活動,我不敢肯定他能否適應團體工作。 12、作為被面試者給我打一下分? 回答提示:試著列出四個優點和一個非常非常非常小的缺點(可以抱怨一下設施,沒有明確責任人的缺點是不會有人介意的)。 13、你為什麼要離開原來的公司? 回答提示:①回答這個問題時一定要小心,就算在前一個工作受到再大的委屈,對公司有多少的怨言,都千萬不要表現出來,尤其要避免對公司本身主管的批評,避免面試官的負面情緒及印象。建議此時最好的回答方式是將問題歸咎在自己身上,例如覺得工作沒有學習發展的空間,自己想在面試工作的相關產業中多加學習,或是前一份工作與自己的生涯規劃不合等等,回答的答案最好是積極正面的。②我希望能獲得一份更好的工作,如果機會來臨,我會抓住。我覺得目前的工作,已經達到頂峰,即沒有升遷機會。 14、你欣賞哪種性格的人? 回答提示:誠實、不死板而且容易相處的人、有「實際行動」的人。 15、你通常如何對待別人的批評? 回答提示:①沈默是金,不必說什麼,否則情況更糟,不過我會接受建設性的批評。②我會等大家冷靜下來再討論。 16、怎樣對待自己的失敗? 回答提示:我們大家生來都不是十全十美的,我相信我有第二個機會改正我的錯誤。 17、你為什麼願意到我們公司來工作? 回答提示:對於這個問題,你要格外小心,如果你已經對該單位作了研究,你可以回答一些詳細的原因,像「公司本身的高技術開發環境很吸引我。」、「我同公司出生在同樣的時代,我希望能夠進入一家與我共同成長的公司。」、「你們公司一直都穩定發展,在近幾年來在市場上很有競爭力。」、「我認為貴公司能夠給我提供一個與眾不同的發展道路。」這都顯示出你已經做了一些調查,也說明你對自己的未來有了較為具體的遠景規劃。 18、對這項工作,你有哪些可預見的困難? 回答提示:①不宜直接說出具體的困難,否則可能令對方懷疑應聘者不行。②可以嘗試迂迴戰術,說出應聘者對困難所持有的態度——工作中出現一些困難是正常的,也是難免的,但是只要有堅忍不拔的毅力、良好的合作精神以及事前周密而充分的准備,任何困難都是可以克服。 19、如果錄用了你,你將怎樣開展工作? 回答提示: ①如果應聘者對於應聘的職位缺乏足夠的了解,最好不要直接說出自己開展工作的具體辦法。②可以嘗試採用迂迴戰術來回答,如「首先聽取領導的指示和要求,然後就有關情況進行了解和熟悉,接下來制定一份近期的工作計劃並報領導批准,最後根據計劃開展工作。」。 分析:這個問題的主要目的也是了解應聘者的工作能力和計劃性、條理性,而且重點想要知道細節。如果向思路中所講的迂迴戰術,面試官會認為迴避問題,如果引導了幾次仍然是迴避的話,此人絕對不會錄用了。 20、你希望與什麼樣的上級共事? 回答提示:①通過應聘者對上級的「希望」可以判斷出應聘者對自我要求的意識,這既上一個陷阱,又是一次機會。②最好迴避對上級具體的希望,多談對自己的要求。③如「做為剛步入社會的新人,我應該多要求自己盡快熟悉環境、適應環境,而不應該對環境提出什麼要求,只要能發揮我的專長就可以了。 分析:這個問題比較好的回答是,希望我的上級能夠在工作中對我多指導,對我工作中的錯誤能夠立即指出。總之,從上級指導這個方面談,不會有大的紕漏。 21、與上級意見不一時,你將怎麼辦? 回答提示:①一般可以這樣回答「我會給上級以必要的解釋和提醒,在這種情況下,我會服從上級的意見。」②如果面試你的是總經理,而你所應聘的職位另有一位經理,且這位經理當時不在場,可以這樣回答:「對於非原則性問題,我會服從上級的意見,對於涉及公司利益的重大問題,我希望能向更高層領導反映。」 分析:這個問題的標准答案是思路①,如果用②的回答,必死無疑。你沒有摸清楚改公司的內部情況,先想打小報告,這樣的人沒有人敢要。 22、為什麼選擇我們公司? 回答提示:曾經在報章雜志看過關於貴公司的報道,與自己所追求的理念有志一同。而貴公司在業界的成績也是有目共睹的,而且對員工的教育訓練、升遷等也都很有制度。 分析:去面試前先做功課,了解一下該公司的背景,讓對方覺得你真的很有心想得到這份工作,而不只是探探路。 23、談談如何適應辦公室工作的新環境? 回答提示①辦公室里每個人有各自的崗位與職責,不得擅離崗位。②根據領導指示和工作安排,制定工作計劃,提前預備,並按計劃完成。③多請示並及時匯報,遇到不明白的要虛心請教。④抓間隙時間,多學習,努力提高自己的政治素質和業務水平。 24、除了本公司外,還應聘了哪些公司? 回答提示:很奇怪,這是相當多公司會問的問題,其用意是要概略知道應徵者的求職志向,所以這並非絕對是負面答案,就算不便說出公司名稱,也應回答「銷售同種產品的公司」,如果應聘的其他公司是不同業界,容易讓人產生無法信任的感覺。 25、你還有什麼問題要問嗎? 回答提示:企業的這個問題看上去可有可無,其實很關鍵,企業不喜歡說「沒問題」的人,因為其很注重員工的個性和創新能力。企業不喜歡求職者問個人福利之類的問題,如果有人這樣問:貴公司對新入公司的員工有沒有什麼培訓項目,我可以參加嗎?或者說貴公司的晉升機制是什麼樣的?企業將很歡迎,因為體現出你對學習的熱情和對公司的忠誠度以及你的上進心。 26、如果你被錄用,何時可以到職? 回答提示:大多數企業會關心就職時間,最好是回答「如果被錄用的話,到職日可按公司規定上班」,但如果還未辭去上一個工作、上班時間又太近,似乎有些強人所難,因為交接至少要一個月的時間,應進一步說明原因,錄取公司應該會通融的。
⑻ java基礎面試題有哪些
下面是10道java基礎面試題,後附答案
1.什麼是 Java 虛擬機?為什麼 Java 被稱作是「平台無關的編程語言」?
Java 虛擬機是一個可以執行 Java 位元組碼的虛擬機進程。Java 源文件被編譯成能被 Java 虛擬機執行的位元組碼文件。
Java 被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java 虛擬機讓這個變為可能,因為它知道底層硬體平台的指令長度和其他特性。
2.「static」關鍵字是什麼意思?Java 中是否可以覆蓋(override)一個 private 或者是static 的方法?
「static」關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。
Java 中 static 方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而 static 方法是編譯時靜態綁定的。static 方法跟類的任何實例都不相關,所以概念上不適用。
3.JDK 和 JRE 的區別是什麼?
Java 運行時環境(JRE)是將要執行 Java 程序的 Java 虛擬機。它同時也包含了執行 applet 需要的瀏覽器插件。Java 開發工具包 (JDK)是完整的 Java 軟體開發包,包含了 JRE,編譯器和其他的工具(比如:JavaDoc,Java 調試器),可以讓開發者開發、編譯、執行 Java 應用程序。
4.是否可以在 static 環境中訪問非 static 變數?
static 變數在 Java 中是屬於類的,它在所有的實例中的值是一樣的。當類被 Java 虛擬機載入的時候,會對 static 變數進行初始化。如果你的代碼嘗試不用實例來訪問非 static 的變數,編譯器會報錯,因為這些變數還沒有被創建出來,還沒有跟任何實例關聯上。
5.Java 支持的數據類型有哪些?什麼是自動拆裝箱?
Java 語言支持的 8 中基本數據類型是:
byte
short
int
long
float
double
boolean
char
自動裝箱是 Java 編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把 int 轉化成 Integer,double 轉化成 double,等等。反之就是自動拆箱。
6.Java 支持多繼承么?
不支持,Java 不支持多繼承。每個類都只能繼承一個類,但是可以實現多個介面。
7.Java 中,什麼是構造函數?什麼是構造函數重載?什麼是復制構造函數?
當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java 編譯器會為這個類創建一個默認的構造函數。
Java 中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。
Java 不支持像 C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java 不會創建默認的復制構造函數。
8.Java 中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?
Java 中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
9.介面和抽象類的區別是什麼?
Java 提供和支持創建抽象類和介面。它們的實現有共同點,不同點在於:
介面中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
類可以實現很多個介面,但是只能繼承一個抽象類
類如果要實現一個介面,它必須要實現介面聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
抽象類可以在不提供介面方法實現的情況下實現介面。
Java 介面中聲明的變數默認都是 final 的。抽象類可以包含非 final 的變數。
Java 介面中的成員函數默認是 public 的。抽象類的成員函數可以是 private, protected 或者是 public。
介面是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含 main 方法的話是可以被調用的。
10.什麼是值傳遞和引用傳遞?
對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。
對象被引用傳遞,意味著傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。
最後祝你面試順利!