最新Java基礎面試題
Java基礎面試題(一)
1.面向對象的特徵
1)抽象
抽象就是忽略一個主題中與當前目標無關的那些方面,一邊更充分地注意與目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2)繼承
在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並可以加入若干新的內容,或修改原來的方法使之更適合特殊的需要,這個就是繼承。繼承是子類自動貢獻父類數據和方法的機制,這是類之間的一種關係,提高了軟件的可重用性和可擴展性。
3)封裝
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。
4)多態
多態是指程序中所定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在程序運行期間才能決定。
的基本數據類型
byte, short, int, long, float, double, char, boolean
和Integer有什麼區別
Java提供兩種不同類型:引用類型和原始類型。int是Java的原始數據類型,Integer是Java為int提供的封裝類型。
原始類型 封裝類
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
封裝類型的實例變量的缺省值為null,而原始類型實例變量的缺省值跟他們的類型有關。
ng和StringBuffer的區別
String類用來表示那些創建後就不會再改變的字符串。
StringBuffer類用來表示內容可變的字符串,並鼻孔了修改底層字符串的方法,當我們進行字符串拼接時使用。
ngBuffer和StringBuilder的區別
它們都是表示可變的字符串。StringBuffer是線程安全的,StringBulider是非線程安全的。兩者方法基本相同,優先採用StringBuilder,在大多數的時候比StringBuffer快。StringBuilder一般使用在方法內部來完成字符串拼接功能,StringBuffer要用來全部變量中。
6.運行時異常與一般異常有何異同
Java一共了兩類主要的異常:runtime exception和checked exception。我們經常遇到的IO異常以及SQL異常是checked exception,對於這些非運行時異常必須進行捕獲或拋出。但並不要求對運行時異常進行處理,如NullPointerException,出現運行時異常後,系統會把異常一直往上層拋,一直遇到處理代碼塊或Java虛擬機處理。運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。
yList,Vector,LinkedList的存儲性能和特性
ArrayList和Vector都是使用數組方式存儲數據,允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差。
LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需記錄本項的前後項即可,所以插入速度較快。
ection和Collections的區別
Collection是集合類的上級接口,繼承於他的接口主要有Set和List。
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。
9.&和&&的區別
&和&&都有邏輯運算符and的功能,&還可以用作位運算符,&&具有短路功能,即如果第一個表達式為false,則不再計算第二個表達式的值。
Map和Hashtable的區別
HashMap是非線程安全的,Hashtable是線程安全的。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
l,finally,finalize的區別
final用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是會執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法。
p()和wait()有什麼區別
sleep()是Thread類的方法,在指定的毫秒數內讓正在執行的線程暫停執行,把執行機會讓給其他線程,到指定時間會自動恢復。調用sleep不會釋放對象鎖。
wait()是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify/notifyAll方法後,本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。
load和Override的區別。Overload的方法可以改變返回值的類型嗎?
方法的重寫Override和重載Overload是Java多態性的不同表現。重寫Override是父類與子類之間多態性的一種表現,重載Overload是一個類中多態性的一種表現。
方法覆蓋要求參數簽名必須一致,而辦法重載要求參數簽名必須不一致。
方法覆蓋要求返回類型必須一致,而方法重載不做限制。
方法覆蓋只能用於子類覆蓋父類的.方法,方法重載用於同一個類的所有方法。
方法覆蓋對方法的訪問權限和拋出的異常有特殊要求,而方法重載沒有限制。
父類的一個方法只能被子類覆蓋一次,而一個方法在所在的類中可以被重載多次。
方法重載可以改變返回值的類型。
r和exception有什麼區別?
error表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如內存溢出,不可能指望程序能處理這樣的情況。
exception表示一種設計或實現問題。如果程序運行正常,從不會發生的情況。
15.同步和異步有何異同,在什麼情況下分別使用他們?舉例説明。
如果數據將在線程間共享,例如正在寫的數據以後可能被另一個線程讀到,或者正在讀的數據可能已經被另一個線程寫過了,那麼這些數據就是共享數據,必須進行同步存取。
當應用程序在對象上調用了一個需要花費很長時間來執行的方法,並且不希望讓程序等待方法的返回時,就應該使用異步編程,在很多情況下采用異步途徑往往更有效率。
ract class和interface有什麼區別?
聲明方法的存在而不去實現他的類叫做抽象類。接口是抽象類的特例。接口中的所有方法都必須是抽象的,接口中的方法定義默認為public abstract。接口中的變量是全局常量,即public static修飾的。一個類可以實現多個接口,但只能繼承一個抽象類。
和stack有什麼區別
棧是一種線型集合,添加和刪除的操作在同一端完成,按照後進先出的方式進行處理。堆是棧的一個組成元素。
18. Static Nested Class和Inner Class的不同。
Static Nestec Class是被聲明為靜態static的內部類,它可以不依賴於外部類實例被實例化。而通常的內部類需要在外部類實例化後才能實例化。
中動態include與靜態include的區別
動態include用jsp:include動作實現
靜態include用include偽碼實現,不會檢查所含文件的變化,適合包含靜態頁面<%@ include file="" %>
是什麼?為什麼要有GC?
GC是垃圾回收的意思(Garbage Collection),內存處理是編程人員出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供自動垃圾回收機制,自動檢測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯式操作方法。
21. short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1+=1; 有什麼錯?
short s1 = 1; s1 = s1 + 1;// s1+1運算結果是int型,需要強制轉換類型
short s1 = 1; s1 += 1; // 可以正確編譯
d(11.5)等於多少?d(-11.5)等於多少?
d(11.5)==12;d(-11.5)==-11;
round方法返回與參數最接近的長整數,參數加1/2後求其floor。
中有沒有goto?
goto在Java中作為保留字,但沒有被使用。
ng s = new String("xyz");創建了幾個對象?
兩個
25.接口是否可繼承接口?抽象類是否可實現(implements)接口?抽象類是否可繼承實體類(concrete class)?
接口可以繼承接口。
抽象類可以實現接口。
抽象類可以繼承實體類,但前提是實體類必須有明確的構造函數。
,Set,Map是否繼承自Collection接口?
List,Set是,Map不是。
<p< p="">
相關文章
-
java 基礎面試題
1.一個""源文件中是否可以包括多個類(不是內部類)?有什麼限制?可以有多個類,但只能有一個public的類,並且public的類名必須與文件名相一致。2.&和&&的區別。&和&&都可以用作邏輯與的運算符,表示 -
JAVA題庫:JAVA面試題目整理
搞笑笑話笑死人不償命,趕緊來看看!以下是本站小編為你精心整理的網絡搞笑雷人笑話語錄,希望你喜歡。網絡搞笑雷人笑話語錄1) 低調致高遠!2) 姐從來不説人話,姐一直説的是神話。3) 我空有一身泡妞的本事,可惜自己是個妞。 -
java面試基礎知識總結
篇一:java基礎知識總結寫代碼:1,明確需求。我要做什麼?2,分析思路。我要怎麼做?1,2,3。3,確定步驟。每一個思路部分用到哪些語句,方法,和對象。4,代碼實現。用具體的java語言代碼把思路體現出來。學習新技術的四點:1,該技術是什麼 -
java基礎面試題(2012完整版)
141、JAVA 多線程編程。 用 JAVA 寫一個多線程程序,如寫四個線程,二個加 1,二個對一個變量減一,輸出。希望大家補上,謝謝142、可能會讓你寫一段 Jdbc連Oracle 的'程序,並實現數據查詢.答:程序如下:package ;import .*;publ -
Java基礎筆試選擇題含答案
選擇題1. 以下屬於面向對象的特徵的是(C,D)。(兩項)A) 重載B) 重寫C) 封裝D) 繼承2. 以下代碼運行輸出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public Strin -
java面試寶典最新完整版(所有面試問題及答案)
一. Java基礎部分......................................................................................................21、一個""源文件中是否可以包括多個類(不是內部類)?有什麼限制?.....22、Java有沒有got -
關於java基本數據類型的五道面試題
親情猶如一股娟娟的細流,給我帶了甜甜的滋味;親情猶如一縷縷燦爛的陽光,讓你冰冷的心不在冰冷,感受到温暖…對此小編給大家收集了有關關於親情的作文600字的優秀內容,應該能給各位帶來幫助。 關於親情的作文600 -
文思創新JAVA面試題(三)
1、JSp的內置對象及其作用答:JSp共有以下9種基本內置組件(可與ASp的6種內部組件相對應):request 用户端請求,此請求會包含來自GET/pOST請求的參數response 網頁傳回用户端的迴應page JSp網頁本身exception 針對錯誤網頁, -
cvte java面試題
答案:B答案:B答案:B答案:A答案:B答案:CD答案:AD2、問答題,每題6分。Exc0 caught答案:DCBB 類D、C是靜態方法,直接調用了,類A、B中的是普通方法,父類方法被子類方法重載,所以輸出B答案:x=0,y=0 main中new B()時,A先加載,A的構造方法中 -
2017年Java最新筆試題(附詳細答案)範例
下述二叉樹中,哪一種滿足性質:從任一結點出發到根;本題主要考查了選項中出現的幾種樹的結構特點;下面關於線程的敍述中,正確的是();一條tcp連接,主動關閉的一方不可能出現的連接狀;CLOSE_WAIT;FIN_WAIT2;TIME_WAIT;FIN_WAIT1;1)