日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

总结Java常见面试题和答案

發布時間:2023/12/3 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 总结Java常见面试题和答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自??總結Java常見面試題和答案

int和Integer有什么區別?
??答:int是java的原始數據類型,Integer是java為int提供的封裝類,java為每個原始數據類型都提供了封裝類。

String和StringBuffer的區別?
??答:String是不可變的對象,每次對String類型進行改變都相當于產生了一個新的對象,StringBuffer是可變的字符序列,所以如果要經常改變某個字符串的話建議使用StringBuffer。

list、set、map問題?
??答:set????不允許重復,無序
?????????list???允許重復,有序
?????????map????成對的數據結構,鍵值必須具有唯一性

Servlet和CGI的區別?
??答:Servlet與CGI的區別在于Servlet處于服務器進程中,它通過多線程方式允許其service方法,一個實例可以服務于多個請求,并且其實例一般不會被銷毀,而CGI對每個請求都產生新的進程,服務完后就銷毀,所以效率上低于Servlet。

面向對象的特征?
??答:1:封裝:通過定義類并且給類的屬性和方法加上訪問控制
?????????2:繼承:子類繼承父類,子類可以擁有父類中已定義的方法,并且子類可以修改父類中的方法使其更適合特殊需求。
?????????3:多臺:不同對象對統一消息作出不同響應稱之為多態
?????????4:抽象:忽略與當前主題無關的那些方面,將注意力集中在與當前目標有關的方面

運行時異常和一般異常有何異同?
??答:運行時異常時(JVM)java虛擬機在運行過程中發生的問題,比如:內存溢出等問題。這類異常沒法要求程序員去一一捕獲并拋出,一般異常是Java類庫或程序員自己寫的代碼發生的錯誤,這類異常可以由我們去一一捕獲并拋出。

多線程幾種實現方法,同步?
??答:多線程有兩種實現方法,一種是繼承Thread類或者實現Runnable接口。同步就是在方法返回類型后面加上synchronized。

c#中的委托,事件是不是委托?
??答:委托就是將方法作為一個參數帶入另一個方法叫做委托,事件是一種特殊的委托。

應用程序域?
??答:應用程序域可以理解為一種輕量級的進程,起到安全的作用,占用資源小。

Class.forName作用?
??答:調用該訪問返回一個以字符串指定類名的類對象。

JDO?
??答:JDO是java對象持久化的新的規范,為java?data?object的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化API。

CORBA?
??答:CORBA標準是公共對象請求代理結構,用途為:用不同的程序設計語言書寫,在不同的進程中運行,為不同的操作系統開發。

xml解析技術?
??答:常用的DOM、SAX等
?????????DOM:處理大型文件時性能下降的非常厲害,適合對xml的隨機訪問
?????????SAX:事件驅動型的xml解析方法,適合對xml的順序訪問

jsp常用動作?
??答:jsp:include????引入一個文件
?????????jsp:useBean????實例化JavaBean
?????????jsp:setProperty????設置JavaBean屬性
?????????jsp:getProperty????輸出JavaBean屬性
?????????jsp:forward????轉發

CTS、CLS、CLR分別作何解釋?
??答:CTS????通用類型系統、CLS????通用語言規范、CLR????公共語言運行時。

Struts1和Struts2原理和區別?
??答:Struts1和Struts2是兩個完全不同的框架,Struts1以ActionServlet作為核心控制器,由ActionServlet負責攔截用戶的所有請求。Struts2以核心控制器FilterDispatcher為基礎,包含了框架內部的控制流程和處理機制。

Hibernate工作原理,Hibernate數據持久化?
??答:Hibernate工作原理:
?????????1:讀取并解析映射信息,創建SessionFactory
?????????2:打開Session
?????????3:創建事物
?????????4:持久化操作
?????????5:提交事務
?????????6:關閉Session
?????????7:關閉SessionFactory
?????????Hibernate持久化:Hibernate根據定義的映射規則將對象持久化保存到數據庫,這就實現了對象的持久化。

Spring由那幾個模塊組成?
??答:Spring主要由7個模塊組成:
?????????1:Spring核心容器:提供了Spring框架的基本功能
?????????2:Spring?AOP:通過配置管理特性
?????????3:Spring?ORM:Spring框架集成了若干ORM框架
?????????4:Spring?DAO:打開關閉數據庫連接
?????????5:Spring?WEB:為基于WEB服務的應用程序提供上下文服務
?????????6:Spring?Context:向Spring框架提供上下文信息
?????????7:Spring?MVC:分離模型、視圖、控制器、以便更容易定制

折構函數和虛函數?
??答:折構函數式銷毀一個類的函數,虛函數是為了C++的動態綁定而設計的。

描述你的編程風格?
??答:類名首字母大寫,常量一般全部大寫,給自己的代碼加注釋。

控制流程?
??答:控制流程一般使用if判斷條件。有第二分支,多分支,循環結構。循環本質上也是通過判斷來實現的。

多形與繼承?
??答:多形:一個類中多個同名方法。繼承:子類繼承父類。

jsp內置對象?
??答:request????用戶端請求
?????????response????回應
?????????pageContext????網頁屬性
?????????session????會話
?????????out????輸出
?????????page???當前網頁
?????????exception????錯誤網頁
?????????application????servlet正在執行的內容
?????????config????servlet構架部件

Struts模型驅動?
??答:封裝請求參數。

簡述JDBC?
??答:JDBC數據庫連接,是一種用于執行SQL語句的Java API,可以為多種關系型數據庫提供統一訪問。

什么情況下不建議使用Hibernate?
??答:當數據量大,并且表關系復雜的時候不建議使用。

sleep()和wait()有什么區別?
??答:sleep()是線程類的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但監控狀態依然保持,到時候會自動恢復。
?????????wait()是Object類的方法,對此對象調用了wait方法導致本線程放棄對象鎖,進入等待鎖定池,只有針對此對象發出notify方法后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。

同步和異步,在什么情況下分別使用?
??答:如果數據將在線程間共享。例如正在寫的數據以后可能被另一個線程讀到,或者正在讀的數據可能已經被另一個線程寫過了,那么這些數據就是共享數據,必須進行同步存取。
?????????當應用程序在對象上調用了一個需要花費很長時間來執行的方法,并且不希望讓程序等待方法的返回時,就應該使用異步。在很多情況下采用異步往往更有效率。

數據庫三大范式?
??答:1:確保每列都是不可分割的原子值
?????????2:確保每列都和主鍵相關
?????????3:確保每列都和主鍵直接相關,而不是間接相關

單例模式有哪些好處?
??答:單例模式是一種比較常見的設計模式,帶給我們以下好處:
?????????1:控制資源的使用
?????????2:控制實例的產生數量
?????????3:讓多個不相關的兩個線程或進程之間實現通信

為什么要用spring?
??答:1、主要將各個框架有效的聯系起來,縮短實際編程時間。
?????????2、可以將各個框架進行有效的管理和控制,讓數據傳輸安全。

spring的IOC和DI?
??答:控制反轉和依賴注入是spring的兩大基礎作用。主要是將所有組件在spring提供的外部容器中加載。提高安全性,減低耦合性,使各個框架或者類之間的依賴性降低。

什么是聲明式的事務管理?為什么要用?spring如何實現聲明式的事務管理?
??答:聲明式的事務管理主要是將在進行對數據庫中數據的添加或者修改時需要執行事務管理,主要是為了避免在執行添加或修改的時候添加或修改不完全正確,導致數據丟失。spring使用AOP面向切面的思想進行事務管理的。

spring和Hibernate繼承后,定義事務管理特性的時候查詢為什么要定義為read-only?
??答:因為添加、刪除和更新都涉及到了數據庫的修改,而查詢并未涉及到數據庫修改,所以只需要定義只讀,這樣可以提高效率,進行更加方便的事務管理。

請你談談對Hibernate?OR映射的理解?
??答:將數據庫中的每一張表都映射成一個實體。

配置了lazy="true"一定會懶加載嗎?
??答:不一定,如果在配置中你也使用了fetch屬性的話此時lazy就會失效。

Hibernate數據庫標識與主鍵之間的認識?
??答:標識是為了方便和簡介映射文件,主鍵是為了讓數據不會重復。

為什么每次請求都要創建一個Action對象?
??答:Struts2每次請求的時候都會創建一個action實例,這樣會保證線程的安全。Struts1只是在第一次請求的時候創建一個action實例,以后每次相同的請求都直接從內存中去讀取,它是單例模式,安全性較差。

Struts2是如何實現MVC模式的?
??答:在Struts2里面是將每次頁面的請求進行處理,然后將請求需要輸出的數據轉發到需要做數據顯示的頁面。Struts2只是起到一個數據接收和轉接的功能,就是Controller控制器,而傳來數據的頁面叫view顯示層,Struts2將數據提交給進行處理的類叫Model模型層,專門進行數據處理和數據庫的連接。

heap和stack有什么區別?
??答:棧是一種線形集合,其添加和刪除元素的操作應在同一段完成,棧按照后進先出的方式進行處理。堆是棧的一個組成元素。

EJB和JavaBean的區別?
??答:EJB不是一般的JavaBean,EJB是企業級的JavaBean,EJB一共分為3種,實體Bean,消息Bean,會話Bean。書寫EJB要遵循一定的規范,另外要運行EJB,你需要有相應的EJB容器,比如WebLogic、jboss等,而JavaBean不需要,只需要安裝Tomcat就可以了。EJB用于服務端的應用開發,而JavaBean用于客戶端應用開發。

觸發器?
??答:觸發器是一種特殊的存儲過程,主要通過事件來觸發而被執行。

什么是存儲過程?用什么調用?
??答:存儲過程是一個預編譯的SQL語句,優點是允許模塊化的設計。就是說只需要創建一次,以后再程序中就可以調用多次。使用存儲過程比單純的SQL語句要快,可以用一個命令對象來調用存儲過程。

索引優缺點?
??答:索引可以提高對數據庫中數據的檢索,缺點是減慢了數據錄入速度,同時也增加了數據庫的尺寸大小。

什么是事務?什么是事鎖?
??答:事務就是被綁定在一起,作為一個邏輯單元執行的SQL語句。如果任何一個操作失敗,那么整個就失敗。共同失敗或共同成功。鎖可以保證事務的完整性和并發性。

什么是視圖?游標是什么?
??答:視圖是一種虛擬的表,具有和物理表相同的功能。游標是對查詢出來的結果集作為一個單元來有效的處理,可以對結果集的當前行做修改。

select執行順序?
??答:from
?????????where
?????????group?by
?????????having
?????????select
?????????order?by

Collection和Collections的區別?
??答:Collection是集合類的父類,繼承它的主要由set和list
?????????Collections是針對集合類的幫助類,它提供了一系列針對集合的搜索,排序,線程安全化等操作。

final、finally、finalize的區別?
??答:final用于聲明屬性方法和類,分別表示:屬性不可變,方法不可覆蓋,類不可繼承。
?????????finally是異常處理語句的一部分,表示總是執行。
?????????finalize是Object的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法。

assert是什么?什么時候用到?
??答:斷言,可以將斷言看成是異常處理的一種高級形式,可以用來判斷某個特定的表達式或值是否為真。

接口是否可以繼承接口?抽象類是否可以實現接口?抽象類是否可以繼承實體類?
??答:接口可以繼承接口,抽象類可以實現接口,抽象類可以繼承實體類。

引用傳遞和值傳遞?
??答:引用傳遞:形參改變影響實參
?????????值傳遞:形參改變不影響實參

當一個線程進入一個對象的synchronized方法后,其他線程是否可進入此對象的其他方法?
??答:其他方法前是否加了synchronized關鍵字,如果沒加則能。

說出servlet生命周期?
??答:servlet實例化時調用init方法,得到請求時調用service方法,service方法自動派遣doget或dopost方法,最后當實例銷毀時調用destroy方法。

error和exception有什么區別?
??答:error是指錯誤,通常程序員不能通過代碼來解決。底層環境或硬件問題。
?????????exception是指異常,可以通過代碼來解決的問題。

forward和redirect的區別?
??答:forward是轉發,瀏覽器跳轉后不顯示新的地址。
?????????redirect是重定向,瀏覽器跳轉后顯示新的地址。
?????????對比之下forward更加高效,并且它有助于隱藏實際地址,但是有些情況則必須使用redirect,否則會報異常。

jsp中動態include和靜態include的區別?
??答:動態include用jsp:include實現,適用于動態頁面,可以攜帶參數
?????????靜態include用include偽碼實現,適用于靜態頁面

math.round(11.5)等于多少?math.round(-11.5)等于多少?
??答:Math.round()對數字進行四舍五入
?????????Math.round(11.5)=12
?????????Math.round(-11.5)=11

String?s=new?String("xyz");創建了幾個String?Object?
??答:創建了兩個String對象,一個保存的引用地址,一個保存實際的值。

數組有沒有length()這個方法?String呢?
??答:數組里面沒有length()方法,而是length屬性。String有length()這個方法。

swtich()能否作用在byte、long、String上?
??答:swtich()傳遞的應該是一個整數表達式,所以它的值只能是:int、short、char、byte所以long和String都不能作用在swtich()上。

jsp和servlet之間的聯系?
??答:jsp前段動態頁面,servlet是純java類
?????????jsp被編譯之后會轉換為servlet執行

java基本數據類型有哪些?String是不是基本數據類型,他們有何區別?
??答:基本數據類型8種:int、short、byte、long、float、double、char、boolean
?????????String不是基本數據類型,引用數據類型。
?????????區別:基本數據類型比較實用“==”,引用數據類型實用equest,并且引用數據類型存放的是地址而不是具體的值。

寫一個方法,實現字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc?
??答:String?s="bbbwlirbbb";
?????????s.replaceAll("wlirbbb","hhtccc");

如何將數值型字符轉換為數字(Integer,Double)?
??答:可以用Integer.parseInt()和Double.parseDouble()方法

如何將數字轉換為字符?
??答:可以使用String的valueOf()方法。

如何取得1970到現在的毫秒數?
??答:可以用getTime()方法。

如何格式化日期?
??答:可以用SimpleDateFormat?df=new?SimpleDateFormat("yyyy-MM-dd");

判斷是否有子文件?判斷是否有子目錄?判斷文件是否存在?
??答:判斷是否有子文件使用file.isFile()
?????????判斷是否有子目錄使用file.isDirectory()
?????????判斷文件是否存在使用file.exists()

繼承、重載、覆蓋問題?
??答:繼承:子類繼承父類,子類可以擁有父類中已定義的方法,并且子類可以修改父類中的方法使其更適合特殊需求。
?????????重載:在一個類中方法名和返回類型相同,參數不同。
?????????覆蓋:在子類中覆蓋父類的某個方法,要求方法名相同,參數類型相同。

Statement和PreparedStatement之間的區別?
??答:Statement比PreparedStatement速度慢
?????????PreparedStatement是預編譯,插入時速度高于Statement
?????????Statement創建速度很慢,常用選擇PreparedStatement

Session機制?
??答:session機制是一種服務器端機制,服務器使用一種類似于散列表的結構來保存信息。

jsp和servlet中的請求轉發分別如何實現?
??答:jsp可以使用jsp:forward標簽轉發
?????????servlet可以使用request.getRequestDispatcher()實現轉發

介紹j2ee、j2se、j2me的區別?
??答:j2ee(企業版):主要用于企業web開發
?????????j2se(標準版):主要用于web開發,但缺少企業版的一些特性
?????????j2me(微小版):主要用于手機開發

J2ee提供的技術?
??答:j2ee提供的技術有EJB、servlet、jsp等。

什么是Application?Server?
??答:Application?Server?應用服務器

簡單介紹連接池的優點和原理?
??答:數據庫連接和關閉是比較花費時間的一件事,而連接池可以提高我們的工作效率。
?????????剛開始創建一定數量的池連接,當需要時從池連接中拿出一個,用完之后再把這個連接重新放回連接池。

Web.xml的作用?
??答:Web.xml會在程序啟動時執行,如果想在程序剛啟動的時候執行一些方法的話可以配置在Web.xml中。

簡單介紹您所了解的MVC?
??答:在項目中使用MVC模式會使項目分工更加明確,結構更加清晰
?????????M?model?模型層:JavaBean
?????????V?view?視圖層:jsp?html
?????????C?controller?控制層:servlet

簡單介紹你所了解的XML?
??答:XML可擴展標記語言,可以用來標記數據,定義數據結構,是一種允許用戶自定義標記的語言

簡單介紹您所了解的structs、spring和hibernate?
??答:struts:控制層Action,頁面標簽和Model數據,調用業務層
?????????Spring:Aop管理事務控制,IOC管理各個組件的耦合
?????????Hibernate:負責數據庫和對象的映射,負責Dao層

總結

以上是生活随笔為你收集整理的总结Java常见面试题和答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。