【面試筆試】Java常見面試筆試總結

來源:互聯網
上載者:User

標籤:監視   ica   rip   strong   特性   插入資料   關閉資料庫   hashmap   context   

Java 基礎

1、有哪些資料類型
Java定義了8種簡單類型:byte、short、int、long、char、float、double和boolean。

2、物件導向的語言特徵
封裝、繼承、多態

3、有幾種訪問機制?

4、物件導向的多態性在JAVA中怎麼實現的
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。假設在子類中定義某方法與其父類有相同的名稱和參數。我們說該方法被重寫 (Overriding)。子類的對象使用這種方法時,將調用子類中的定義,對它而言。父類中的定義如同被“屏蔽”了。假設在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型。則稱為方法的重載(Overloading)。Overloaded的方法是能夠改變傳回值

5、Java I/O中字元流和位元組流的差別
位元組流是傳遞0~255的整數而Java中有一些(如unicode代碼)不能使用字元流,是特殊的位元組流,

6、說出ArrayList,Vector, LinkedList的儲存效能和特性
ArrayList和Vector都是使用數組方式儲存資料,此數組元素數大於實際儲存的資料以便添加和插入元素。它們都同意直接按序號索引元素,可是插入元素要涉及數組元素移動等記憶體操作。所以索引資料快而插入資料慢,Vector因為使用了synchronized方法(安全執行緒),通常效能上較ArrayList差,而LinkedList使用雙向鏈表實現儲存,按序號索引資料須要進行前向或後向遍曆,可是插入資料時僅僅須要記錄本項的前後項就可以,所以插入速度較快。

7、HashTable和HashMap的差別
HashTable和HashMap類有三個重要的不同之處。第一個不同主要是曆史原因,HashTable是基於陳舊的Dictionary類,而HashMap是Java1.2引進的Map介面的一個實現
HashTable的方法是同步的,而HashMap的方法不是,這就意味著。儘管你能夠採用不論什麼的行為就可在一個多線程的應用程式中使用一個HashTable,但你必須相同地為HashMap提供外同步,一個方便的方法就是利用Collection類的靜態SynchronizedMap()方法,它建立了一個安全執行緒的Map對象,並把它作為一個封裝的對象來返回,這個對象的方法能夠讓你同步訪問潛在的hashmap,這麼做的結構就是當你不須要同步時,你不能切斷HashTable中的同步(比方在一個單線程的應用程式中)並且同步添加了非常多處理法費用。
第三不同是。僅僅有HashMap能夠讓你裝空值作為一個表的條目和Key和Value,Hashmap中僅僅有一條記錄能夠是一個空白的Key。但隨意數量的條目能夠是空白Value。

這就是說,假設一個表中沒有發現搜尋,或者假設發現了搜尋鍵,可是它是一個空值。那麼get()將返回Null,假設有必要。用ContainKey()方法來差別這兩種情況。

8、Http協議是長串連還是短連結
Http協議是無狀態串連,所以是段串連。

9、java的基礎資料型別 (Elementary Data Type)有哪些,String是不是基本類型
boolean,int,byte,char,short,long,float,double,void,
String不是基本類型。

10、String 和StringBuffer的差別
STRING的長度是不可變的。STRINGBUFFER的長度是可變的。假設你對字串中的內容經常進行操作,特別是內容要改動時,那麼使用StringBuffer,假設最後須要String。那麼使用StringBuffer的toString()方法

11、執行時異常與一般異常有何異同?
異常表示程式執行過程中可能出現的非正常狀態。執行時異常表示虛擬機器的通常操作中可能遇到的異常。是一種常見執行錯誤。java編譯器要求方法必須聲明拋出可能發生的非執行時異常。可是並不要求必須聲明拋出未被捕獲的執行時異常。

12.說出一些經常使用的類,包,介面,請各舉5個
經常使用的類:
BufferedReader BufferedWriter FileReader FileWirter String Integer
經常使用的包:java.lang java.awt java.io java.util java.sql
經常使用的介面:Remote List Map Document NodeList

13、怎樣避免多個socket的讀寫阻塞,jdk1.4新增了哪些方法來解決問題?
在JDK1.4曾經的版本號碼中,要避免阻塞發生,有發下面兩種方法:
採用多執行緒不同的socket操作,假設一個線程處理讀,一個處理寫.
使用第三方程式庫,non-JDK方法.
在JDK1.4及以後的版本號碼中引入了NIO,引入了非阻塞socket,能夠不用阻塞進行網路操作.

14、servlet的生命週期 
(1)載入 / 執行個體化:
Servlet容器尋找並載入所有的servlet類.當Servlet引擎啟動時或者說在客戶http請求託付時執行個體一個Servle或多個Servlet類
(2)初始化
這裡在客戶請求託付代理之前,使用init()方法進行初始化.
(3)請求處理
當初始化完畢之後這時就能夠處理客戶http請求了.這裡使用service()這種方法來完畢並把其作參數進行傳遞,這裡的參數包括了httpServletRequest()和httpServletResponse()兩個方法分別相應於請求和回應它們也會拋出servletException和IOException然後針對不同的http請求(四個上面說過,get,post,put,head)由doGet(),doPost(),doPut(),doHead(),這四個不同的方法塊裡的處理單元來處理…
(4)刪除Sevlet
有時出於一些原因須要對Sevlet容器中的servlet執行個體進行刪除,這時就能夠調用destroy()方法進行, 執行了這種方法之後,這時Sevlet就不能再執行其他客戶機的請求了…而這時它也就成了JAVA記憶體回收機的回收對象了!

15、JSP中有哪些重新導向方法,它們的差別?

<jsp:forward page=&rdquo;url&rdquo;/><jsp:include file=&rdquo;url&rdquo;/>

前者將當前頁面重新導向到指定的URL的頁面,而後者是在當前頁面中包括指定的URL的頁面。

16、Jsp有哪些內建對象?作用各自是什麼地?
request:使用者端請求,此請求會包括來自GET/POST請求的參數
getParameter() 、setAttribute()、 getAttribute()、reponse():網頁傳回使用者端的回應
encode()、 sendRedirect() 、setContextf()、pageContext: 網頁的屬性是在這裡管理
getServletContext()、 getSessin() 、setAttribute()、session :與請求有關的會話期
getAttribute() 、setAttribute() 、invalidate()、application() :servlet正在執行的內容
setAttribute()、 getAttribute():config servlet的構架組件
getServletContext() 、getServletName() 、getINitParameter():out 用來傳送回應的輸出(用來向client輸出資料)
println()\ flush() 、close():page Jsp網頁本身
exception針對錯誤網頁,未捕捉的例外(異常)

17、Jsp有哪些動作?作用各自是什嗎?
jsp共同擁有下面6個動作:
Jsp:include::在網頁被請求的時候引入一個檔案
Jsp:useBean:尋找或者執行個體化一個javaBean
Jsp:setProperty :設定某個javaBean的屬性
Jsp:getProperty:輸出某個javaBean的屬性
Jsp:forward:把請求轉到一個新的頁面。
Jsp:plugin:依據瀏覽器類型為java外掛程式或產生object或embed標記

18、jsp中動態include與靜態include的差別?
動態include用jsp:include動作實現

它總是會檢查所含檔案的變化,適合用於包括動態網頁面,並且能夠帶參數
靜態include用include偽碼實現定不會檢查。所含檔案的變化,適用於包括靜態頁面

19、XML 有哪些解技術?差別是什嗎?
有DOM。SAX。STAT
DOM處理大型檔案時其效能下降非常厲害。

這個問題是由DOM的樹型結構所造成的,這樣的結構佔用的記憶體較多,並且DOM必須在解析檔案之前把整個文檔裝入記憶體。適合XML的隨機訪問
SAX不同DOM文檔驅動型,SAX是事件驅動型XML解析方式。它順序讀取XML檔案,不須要一次所有裝載整個檔案。當遇到像檔案開頭,文檔結束,或者標籤開頭與標籤結束時。它會觸發一個事件。

使用者通過在其回調事件。使用者通過在其回調事件寫入處理代碼來處理XML檔案,適合對XML的順序訪問
STAX:StreamingAPI for XMl(STAX)

20、你在項目中用到XML技術的哪些方面?怎樣實現的?
用到了 資料存貯,資訊配置兩個方面
在做資料交換平台時。將資料來源資料群組裝XML檔案。然後XML檔案壓縮打包加密後通過網路傳送給接收都,接收解密與名解壓縮後再對XML檔案裡還原的相關資訊進行處理。


在做軟體配置時,利用XML能夠非常方便。軟體和各種配置參數都貯存在XML檔案裡

21、串連池的解決方式,它有哪些長處?
解決方式:在應用程式啟動時建立足夠的資料庫連接,並將這些串連組成一個串連池。由應用程式動態地對池中的串連進行申請。使用。和釋放。

對於串連池的並發請求,應在請求隊列中排隊等待。並應用程式可依據池中串連的使用率,動態地添加或降低池中的串連數。
長處,儘可能多地重用沙消耗記憶體的資源,大大地節省了記憶體。提高了伺服器的服務效率,能夠支援很多其他的客戶服務,通過使用串連池。將大大的提高程式執行效率。同一時候,我們能夠通過其自身的管理機制監視資料庫的數量。使用方式等。

22、JDBC的過程 
(1)載入JDBC驅動程式
Class.forName(“com.mysql.jdbc.Driver”);//MySQL載入JDBC驅動程式方法
Class.forName(“org.postgresql.Driver”);//PostgreSQL
Class.forName(“oracle.jdbc.driver.OracleDriver”);//Oracle
Class.forName(“com.ibm.db2.jdbc.net.DB2Driver”);//DB2
Class.forName(“com.sybase.jdbc2.jdbc.SybDriver”);//Sybase
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);//SQLServer
(2)建立資料庫連接
與MySQL資料庫建立串連的方法:
Connectioncon=DriverManager.getConnection(“jdbc:mysql://MyDbComputerNameOrIP:3306/myDBName”,ID,Pwd);
與PostgreSQL資料庫建立串連的方法:
Connectioncon=DriverManager.getConnection(“jdbc:postgresql://MyDbComputerNameOrIP:3306/myDBName”,ID,Pwd);
與Oracle資料庫建立串連的方法:
Connectioncon=DriverManager.getConnection(“jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL”,ID,Pwd);
與Sybase資料庫建立串連的方法:
Connectioncon=DriverManager.getConnection(“jdbc:sybase:Tds:MyDbComputerNameOrIP:2638”,ID,Pwd);
與SQL Server資料庫建立串連的方法:
Connectioncon=DriverManager.getConnection(“jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master”,ID,Pwd);
與DB1資料庫建立串連的方法:
Connectioncon=DriverManager.getConnection(“jdbc:db2://MyDbComputerNameOrIP/myDBName”,ID,Pwd);
(3)建立並執行SQL語句
用Connection.createStatement()方法來建立一個Statement對象。Statement對象執行一個查詢並從DBMS返回一個包括響應結果的ResultSet對象。
(4)處理從DBMS返回的資料
查詢處理後從DBMS收到的查詢結果賦給java.sql.ResultSet對象。該對象包括一些用來從結果集中擷取資料存到Java變數中的方法,以便進行進一步處理。
(5)關閉資料庫連接
使用與資料庫有關的對象所消耗的記憶體是非常大的,因此在完畢資料庫訪問後要及時關閉資料庫連接,同一時候還應關閉Connection中返回的內容。包括Statement對象和ResultSet對象。

【面試筆試】Java常見面試筆試總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.