當前位置:首頁 » 編程語言 » java面試

java面試

發布時間: 2022-01-12 04:05:11

『壹』 java面試題

1抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。

2繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。

3封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。

4多態性:多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。

5.基本數據類型包括byte、char 、chort、int、long、float、double、boolean
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類

6.Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。
原始類型封裝類booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble
引用類型和原始類型的行為完全不同,並且它們具有不同的語義。引用類型和原始類型具有不同的特徵和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的預設值。對象引用實例變數的預設值為 null,而原始類型實例變數的預設值與它們的類型有關。

7.JAVA平台提供了兩個類:String和StringBuffer,它們可以儲存和操作字元串,即包含多個字元的字元數據。這個String類提供了數值不可改變的字元串。而這個StringBuffer類提供的字元串進行修改。當你知道字元數據要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態構造字元數據。

8.異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。

9.Servlet被伺服器實例化後,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當伺服器決定將實例銷毀的時候調用其destroy方法。
與cgi的區別在於servlet處於伺服器進程中,它通過多線程方式運行其service方法,一個實例可以服務於多個請求,並且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成後就銷毀,所以效率上低於servlet。

10.ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。

『貳』 Java面試題

這么考慮
100!=(1*2*3*...*10)*(11*12*...*20)...(91*92*...100)
A B ....... J

我們只觀察第一部分,就是A部分,10!里只有2*5和1*10會出現末尾是0,那就是說A部分出現兩個,那樣這么推理:B部分也只有兩個,C部分兩個....I部分兩個(I部分是81到90相乘)。到此為止一共有了18個。

最後一個部分是91到100的相乘:91*100和92*95出現末位是0,一共有3個

再考慮到4*25=100會出現兩個0,那樣還要繼續考慮4*(22*25)和類似情況;
4*(22*25)出現兩個0(就是多一個0),下面就是8*(52*55)出現兩個0(多一個0),16*(72*75)出現兩個0(多一個0)。一共多了3個0 -------------------其實就是考慮能因式分解出4*25的情況

那最後的結果就是100!一共會出現18+3+3=24 個0

『叄』 java面試要注意什麼

這些年面試了各種水平不一的Java開發程序員,現在就是感覺現在做Java開發的人,內心過於浮躁,大部分的人都是急於求成,或許現在這個時代就是這個樣子,每一個人都想要用最少的付出,得到最快的回報。尤其是現在的90後!技術一般,要求還很高。

其實很多剛想要入職的人,根據不懂的面試是什麼,至於面試技巧之類的,更是一無所知,所以就導致面試受到了嚴重的打擊,甚至有的人就放棄了。所以我從這篇文章中,想要總結一些面試技巧和一些坑,做好准備才能面試成功。

我是咋面試Java的?

一、簡歷

找工作無非就是兩個步驟,首先是簡歷,其次是面試。先說簡歷的問題,一般情況公司肯定是從簡歷高的從上往下進行選擇,因為學歷其實本身就是代表了能力。但不是說學歷代表了一切。在我們不了解面試者的實際情況下,我們只能從上往下面進行選擇。無論是hr還是我們做技術的,都有自己的一個標准,所以你首先是簡歷要寫的讓別人映入眼簾。而不同職能的人撈簡歷的方式也千差萬別。

我選擇簡歷的角度有自己的看法,當然,不同的面試官有不同的選擇。

1. 我看簡歷中所提的技術需求是否滿足我的要求,我看重簡歷中他善於的技術,如果一點技術詞彙沒有提到,那麼這個人有以下幾種可能:

NO.1很水

NO.2很牛但是概率很小

NO.3不會寫簡歷

在第一關中,很多人會因為簡歷不行,所以喪失了面試的機會。

大家肯定會問,我應該怎麼在簡歷中體現自己的實力呢?

你現在面試個公司,他們的主要技術是SSM技術的工程師,你的簡歷裡面只有 SSM這個名詞是不夠的,最好能體現出 SSM的生態來以及你對於SSM的理解。

二、個人介紹

如果簡歷通過了篩選,下面就是見真章的時候了,面試環節。首先一定要准備好一段5分鍾的個人介紹。

遇見過這樣的面試者,個人介紹說不完,廢話太多,別人聽的很煩,從高中時代說起,然而面試官並沒有那麼多的耐心和時間。這樣會留下不太好的初次印象。正確的做法是:

言簡意賅的說明自己的工作時間,擅長技術棧和自己的工作預期。

三、技術名詞

我是通過技術名詞來篩選簡歷,這就成為了我面試的重點部分。簡歷都是技術名詞也是一把雙刃劍:

1. 不寫技術名詞,簡歷不容易通過;

2. 寫上,需要充分的准備,否則你的技術能力可能會面試失敗;

四、詢問項目的深度

項目經驗是面試中「最」重要環節,要對於面試者有全面的認識,我會用很多時間去詢問面試者做過的項目。

不會有人只有一個項目,我的問題就變成了:看出來你做過不少項目,有沒有哪個項目是你做的最好,你可以拿出來說一說。

如果大家對於學習Java有任何問題(學習方法,學習效率,如何就業),可以隨時來咨詢我,這是我的Java交流學習扣扣qun:前面是六一五,中間是七四一,後面是六三六。 多多交流問題,互幫互助,qun里有不錯的學習教程和開發工具。

當面試者講自己項目的同時,作為面試官,有幾件事情需要確定:

1. 首先要確定項目是否是自己做的,即確定項目的真實性;

舉個例子:你的項目是 SSM搭建的,是否可以告知搭建項目的過程和需要注意的地方是什麼嗎?

這時候有人就懵逼了,什麼都說不出來。

細問之下,告訴我項目是其他同事搭建的,自己只負責開發業務。

2. 項目的缺陷

架構項目的時,想太多會過度設計,想的少會出現業務增長而造成的種種問題。企業在探索某個技術領域的最佳實踐,其實並沒有行業通用標准,只是思想可以借鑒罷了。

不過,經驗豐富的話,還可以不斷重構,確實可以修復項目的缺陷。所以呢?我的問題來了:在項目中碰到過一些問題,你是如何解決的?

這是考察你實際處理問題的能力,還有你這個人是否會獨立思考,是否有腦子在運轉,這個真正的個人能力。

3. 項目的深度

項目做到一定規模後,想要得到更大的提升,一定會去深挖原理。

項目深度的考察其實比較難,總會有一些行業通用問題需要去解決,這也就是 BAT,TMD 這些公司經常會去制定一些行業標准,開源一些技術方案的原因。

當然,很多公司還是達不到這個層次,所以項目深度也是因人而異,並沒有通用標准。

所以考察方向就成了對這個項目的持續開發,垂直領域以及深度思考。

五、程序基礎,手寫代碼,演算法

如果面試要求手寫代碼的面試官是不是都很傻叉?

當然不是,我們通過寫代碼就可以看出一個人的編程功底和編程思想。我們很多時候都在閱讀別人的代碼,所以能迅速的看出你代碼問題的人,在我看來,能力是在你之上的。

六、是否熱愛技術

一句話,即使你沒有那麼熱愛技術,你也要表現的很熱愛技術。

七、個人職業規劃

最開始,我認為所謂的個人規劃其實就是空談,一切不切實際的東西。但是當接觸的人多了,我慢慢發現。有職業規劃的人和沒有職業規劃的人真的不一樣。我會發現有些人之後的幾年毫無進展,完全是在混資歷,技術一塌糊塗。

為什麼會有這種現象,我猜測大概有如下幾點原因:

1. 沒有個人規劃,走哪算哪,混日子型;

2. 忙於管理,疏於技術;

3. 長期在一個崗位,做著千篇一律的事情,永遠在寫CRUD;

八、面試者反饋

面試接近尾聲的時候,作為尊重,這時候我都會去問這樣一個問題:大概情況我都了解了,有沒有你覺得自己擅長而又沒被問到的東西?

每個人都會有自己的思維,甚至是偏見,所以面試的時候一定要去得到面試者的互動和反饋,從而映證自己的觀點。報著一個人才都不放過的心態,去全方位了解面試者。

九、你有什麼問題想問我?

面試官一定要放低姿態,不要一副高高在上的樣子,尤其是做技術的。如果覺得面試者稍微有些緊張,可以先聊點其他,如:所學專業,住在哪裡,上下班時間之類無關痛癢的問題,緩解一下緊張氣氛。

至於最後一個問題為什麼要問:你有什麼問題想問我?有以下幾點理由:

1. 確定面試反饋;

2. 給面試者一個溝通的機會;

3. 看看面試者對應試部門的了解或者是對公司的興趣;

『肆』 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面試題

老大,誰誰告訴你克隆的英語是啊,暈倒~~明明復制時,克隆是clone嘛!不過這些問題都是java的底層東西啊,上大學都講的啊!你是自學的?怎麼這都不會啊!那你怎麼還找java工作啊!

『陸』 java面試注意事項

首先得看看面試的公司主要是做什麼的,使用些什麼技術,有針對的看筆試中常見的有:編程題,一般都很簡單,無非就是寫寫排序這樣的,字元數組處理啊這些。SQL題一般是逃不掉的一關,必定會考。還有可能會簡述一些概念性的東西,比如什麼是MVC?servlet的生命周期;JSP的9個內置對象等等。還有就是在面試前最好找一下JAVASE的面試題看一遍,網上很多的。如果基礎扎實的話筆試一般不會有什麼問題,我筆試從沒出過問題。接著到了第二輪面對面的時候,一般項目的問題必問。然後從你項目所使用的技術上作擴展的問:比如說你做了一個項目,把項目描述一下,主要使用了hibernate+struts+jsp技術,然後面試官可能就會問「那你談談你對hibernate的認識?」答:「hibernate是一種ORMapping方案,我的項目的持久層就是以hibernate實現的」,然後再談談Hibernate有哪些組件啊hibernate是對JDBC的一個輕量級的封裝之類的。。。。面試的時候應該是面試官被你牽著走才對,例如20分鍾的面試,你應該說到15分鍾以上,那樣基本上工作就沒問題了。不過這段時間工作不大好找哦,好好加油吧。

『柒』 java面試會問什麼

java面試問題面試官的不同而不同,根據java面試者經驗總結java面試32問如下:

第一,談談final, finally, finalize的區別。
final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally—再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。
finalize—方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?
匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面,由另一個內部類實現。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在於是否有指向外部的引用上。
註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象
第四,&和&&的區別。
&是位運算符。&&是布爾邏輯運算符。
第五,HashMap和Hashtable的區別。
都屬於Map介面的類,實現了將惟一鍵映射到特定的值上。
HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。
第六,Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的介面,它是各種集合結構的父介面。
第七,什麼時候用assert。
斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為 false,那麼系統會報告一個 AssertionError。它用於調試目的:
assert(a > 0); // throws an AssertionError if a <= 0
斷言可以有兩種形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 應該總是產生一個布爾值。
Expression2 可以是得出一個值的任意表達式。這個值用於生成顯示更多調試信息的 String 消息。
斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:
javac -source 1.4 Test.java
要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。
要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。
要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。
可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用於驗證傳遞給私有方法的參數。不過,斷言不應該用於驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試後置條件。另外,斷言不應該以任何方式改變程序的狀態。
第八,GC是什麼? 為什麼要有GC? (基礎)。
GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String("xyz");創建了幾個String Object?
兩個對象,一個是「xyx」,一個是指向「xyx」的引用對象s。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。
第十二,sleep() 和 wait() 有什麼區別? 搞線程的最愛
sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿後,線程不一定立即恢復執行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非(a)「醒來」的線程具有更高的優先順序
(b)正在運行的線程因為其它原因而阻塞。
wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。
第十三,Java有沒有goto?
Goto—java中的保留字,現在沒有在java中使用。
第十四,數組有沒有length()這個方法? String有沒有length()這個方法?
數組沒有length()這個方法,有length的屬性。
String有有length()這個方法。
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
第十六,Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
Set里的元素是不能重復的,那麼用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值。
第十七,給我一個你最常見到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, , DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
第十八,error和exception有什麼區別?
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。
第十九,List, Set, Map是否繼承自Collection介面?
List,Set是
Map不是
第二十,abstract class和interface有什麼區別?
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變數,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程序體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即將程序體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用介面的方法。由於有抽象類,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類型或從介面類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了介面。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
第二十二,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類(concrete class)?
介面可以繼承介面。抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
第二十三,啟動一個線程是用run()還是start()?
啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味著它可以由JVM調度並執行。這並不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。
第二十四,構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類?
String類是final類故不可以繼承。
第二十六,當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。
第二十七,try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行,什麼時候被執行,在return前還是後?
會執行,在return前執行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。
2 << 3
第二十九,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code。
第三十,當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。
第三十二,編程題: 寫一個Singleton出來。
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變數,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定義一個類,它的構造函數為private的,所有方法為static的。
一般認為第一種形式要更加安全些
第三十三 Hashtable和HashMap
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許
還有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在
多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap
就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。

『捌』 JAVA面試題

1.把一個小於十進制9999的二位元組數字轉換成16進制的數,讓其的10進制和16進制是一樣的。比如:十進制的9527轉成十六進制的0x9527。

2.base32是一種編碼形式,每次取5bit。將"ABCDEFGHIJKLMNOPQRSTUVWXYZ"提取出來。
例如:

|-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-|
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
xxxxx
xxx xx
xxxxx
x xxxxx
xxx xx
xxxxx
x xxxx
xxxx x
xxxxx
xx xxx
xxxxx
以此類推

3.假如你要做一個物品管理系統,建立模型對象。有電腦主機和電視機。怎樣建立模型對象。如果要添加電冰箱,需要修改嗎。如果添加沙發,又要如何修改

『玖』 一般java面試都會問些什麼問題

1、請你自我介紹一下你自己?

回答提示:一般人回答這個問題過於平常,只說姓名、年齡、愛好、工作經驗,這些在簡歷上都有。其實,企業最希望知道的是求職者能否勝任工作,包括:最強的技能、最深入研究的知識領域、個性中最積極的部分、做過的最成功的事,主要的成就等,這些都可以和學習無關,也可以和學習有關,但要突出積極的個性和做事的能力,說得合情合理企業才會相信。

企業很重視一個人的禮貌,求職者要尊重考官,在回答每個問題之後都說一句「謝謝」,企業喜歡有禮貌的求職者。

2、你覺得你個性上最大的優點是什麼?

回答提示:沉著冷靜、條理清楚、立場堅定、頑強向上、樂於助人和關心他人、適應能力和幽默感、樂觀和友愛。我在北大青鳥經過一到兩年的培訓及項目實戰,加上實習工作,使我適合這份工作。

3、說說你最大的缺點?

回答提示:這個問題企業問的概率很大,通常不希望聽到直接回答的缺點是什麼等,如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,企業肯定不會錄用你。絕對不要自作聰明地回答「我最大的缺點是過於追求完美」,有的人以為這樣回答會顯得自己比較出色,但事實上,他已經岌岌可危了。

企業喜歡求職者從自己的優點說起,中間加一些小缺點,最後再把問題轉回到優點上,突出優點的部分,企業喜歡聰明的求職者。

4、你對加班的看法?

回答提示:實際上好多公司問這個問題,並不證明一定要加班,只是想測試你是否願意為公司奉獻。

回答樣本:如果是工作需要我會義不容辭加班,我現在單身,沒有任何家庭負擔,可以全身心的投入工作。但同時,我也會提高工作效率,減少不必要的加班。

5、你對薪資的要求?

回答提示:如果你對薪酬的要求太低,那顯然貶低自己的能力;如果你對薪酬的要求太高,那又會顯得你分量過重,公司受用不起。

一些僱主通常都事先對求聘的職位定下開支預算,因而他們第一次提出的價錢往往是他們所能給予的最高價錢,他們問你只不過想證實一下這筆錢是否足以引起你對該工作的興趣。

『拾』 java的怎麼面試呀

首先,你要自信,要展示出自己的能力。

其次,你可以參考下面的一段話:
找工作要面試,有面試就有對付面試的辦法。以下一些題目來自我和我朋友痛苦的面試經歷,提這些問題的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司。

面試是沒什麼道理可講的,它的題目有的不合情理、脫離實際。有在紙上寫的,有當面考你的,也有在電話里問的,給你IDE的估計很少(否則你趕快去買彩票, 說不定中)。所以如果你看完此文後,請不要抱怨說這些問題都能用IDE來解決。你必須在任何情況下准確回答這些問題,在面試中如果出現一兩題回答不準確很有可能你就被拒之門外了。

當然這些都是Java的基本題,那些面試的人大多數不會問你Hibernate有多先進,Eclipse的三個組成部分,或command design pattern,他們都是老一輩了,最喜歡問的就是基礎知識。別小看了這些基礎,我朋友水平一流,結果就栽在一到基礎知識的問題下,和高薪無緣。

好了廢話少說,開始正題。

第一,談談final, finally, finalize的區別。

最常被問到。

第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?

第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。

第四,&和&&的區別。

這個問得很少。

第五,HashMap和Hashtable的區別。

常問。

第六,Collection 和 Collections的區別。

你千萬別說一個是單數一個是復數。

第七,什麼時候用assert。

API級的技術人員有可能會問這個。

第八,GC是什麼? 為什麼要有GC?

基礎。

第九,String s = new String("xyz");創建了幾個String Object?

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?

面試題都是很變態的,要做好受虐的准備。

第十二,sleep() 和 wait() 有什麼區別?

搞線程的最愛。

第十三,Java有沒有goto?

熱點內容
資料庫設計模板 發布:2024-11-15 00:47:25 瀏覽:825
編程的悟性 發布:2024-11-15 00:47:24 瀏覽:733
主流可編譯語言 發布:2024-11-15 00:42:23 瀏覽:729
excel緩存清除 發布:2024-11-15 00:39:53 瀏覽:486
機械鍵盤可編程 發布:2024-11-15 00:39:09 瀏覽:912
php判斷字元開頭 發布:2024-11-15 00:35:33 瀏覽:507
網易蘋果游戲怎麼轉移到安卓 發布:2024-11-15 00:07:52 瀏覽:270
win7php環境搭建 發布:2024-11-15 00:06:55 瀏覽:17
erpjava 發布:2024-11-14 23:52:23 瀏覽:253
電腦版地平線四怎麼連上伺服器 發布:2024-11-14 23:46:42 瀏覽:472