更新時間:2020-02-26 09:53:38 來源:動力節點 瀏覽3343次
什么是反射?
Java反射就是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性;并且能改變它的屬性。而這也是Java被視為動態(或準動態,為啥要說是準動態,因為一般而言的動態語言定義是程序運行時,允許改變程序結構或變量類型,這種語言稱為動態語言。從這個觀點看,Perl,Python,Ruby是動態語言,C++,Java,C#不是動態語言。)語言的一個關鍵性質。
什么是java序列化?什么情況下需要序列化?
序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化??梢詫α骰蟮膶ο筮M行讀寫操作,也可將流化后的對象傳輸于網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。
當Java對象需要在網絡上傳輸或者持久化存儲到文件中時,就需要對Java對象進行序列化處理。
動態代理是什么?有哪些應用?
動態代理:當想要給實現了某個接口的類中的方法,加一些額外的處理。比如說加日志,加事務等。可以給這個類創建一個代理,故名思議就是創建一個新的類,這個類不僅包含原來類方法的功能,而且還在原來的基礎上添加了額外處理的新類。這個代理類并不是定義好的,是動態生成的。具有解耦意義,靈活,擴展性強。
動態代理的應用:Spring的AOP,加事務,加權限,加日志。
怎么實現動態代理?
動態代理實現:首先必須定義一個接口,還要有一個InvocationHandler(將實現接口的類的對象傳遞給它)處理類。再有一個工具類Proxy(習慣性將其稱為代理類,因為調用他的newInstance()可以產生代理對象,其實他只是一個產生代理對象的工具類)。利用到InvocationHandler,拼接代理類源碼,將其編譯生成代理類的二進制碼,利用加載器加載,并將其實例化產生代理對象,最后返回。
為什么要使用克???
想對一個對象進行處理,又想保留原有的數據進行接下來的操作,就需要克隆了。克隆分淺克隆和深克隆,淺克隆后的對象中非基本對象和原對象指向同一塊內存,因此對這些非基本對象的修改會同時更改克隆前后的對象。深克隆可以實現完全的克隆,可以用反射的方式或序列化的方式實現。
如何實現對象克???
有兩種方式:
1).實現Cloneable接口并重寫Object類中的clone()方法;
2).實現Serializable接口,通過對象的序列化和反序列化實現克隆,可以實現真正的深度克隆,代碼如下。
深拷貝和淺拷貝區別是什么?
在有指針成員的情況下,淺拷貝只是將指針指向已存在的內存。即兩個對象的指針成員指向的是同一內存區域。深拷貝的做法是申請一個內存復制一份,并將新對象指針指向備份區。
安全性:淺拷貝如果修改了指針指向的內容,將對兩個對象都有影響。
jsp和servlet有什么區別?
jsp是html頁面中內嵌的Java代碼,側重頁面顯示;
Servlet是html代碼和Java代碼分離,側重邏輯控制,mvc設計思想中jsp位于視圖層,servlet位于控制層Jsp運行機制.
jsp有哪些內置對象?作用分別是什么?
Page,pageContext,request,response,session,application,out,config,exception
Page指的是JSP被翻譯成Servlet的對象的引用.
pageContext對象可以用來獲得其他8個內置對象,還可以作為JSP的域范圍對象使用.pageContext中存的值是當前的頁面的作用范圍》
request代表的是請求對象,可以用于獲得客戶機的信息,也可以作為域對象來使用,使用request保存的數據在一次請求范圍內有效。
Session代表的是一次會話,可以用于保存用戶的私有的信息,也可以作為域對象使用,使用session保存的數據在一次會話范圍有效
Application:代表整個應用范圍,使用這個對象保存的數據在整個web應用中都有效。
Response是響應對象,代表的是從服務器向瀏覽器響應數據.
Out:JSPWriter是用于向頁面輸出內容的對象
Config:指的是ServletConfig用于JSP翻譯成Servlet后獲得Servlet的配置的對象.
Exception:在頁面中設置isErrorPage=”true”,即可使用,是Throwable的引用.用來獲得頁面的錯誤信息。
以上就是動力節點Java培訓機構小編介紹的“經典電信Java面試題目匯總”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習