JAVA基础知识(6)
生活随笔
收集整理的這篇文章主要介紹了
JAVA基础知识(6)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
101、java中會存在內存泄漏嗎,請簡單描述。
會。如:int?i,i2;??return?(i-i2);???//when?i為足夠大的正數(shù),i2為足夠大的負數(shù)。結果會造成溢位,導致錯誤。
102、java中實現(xiàn)多態(tài)的機制是什么?
方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。
103、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內存嗎?有什么辦法主動通知虛擬機進行垃圾回收?
對于GC來說,當程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的"。當GC確定一些對象為"不可達"時,GC就有責任回收這些內存空間。可以。程序員可以手動執(zhí)行System.gc(),通知GC運行,但是Java語言規(guī)范并不保證GC一定會執(zhí)行。
104、靜態(tài)變量和實例變量的區(qū)別?
static?i?=?10;?//常量
???class?A?a;??a.i?=10;//可變
105、什么是java序列化,如何實現(xiàn)java序列化?
序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。
序列化的實現(xiàn):將需要被序列化的類實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implements?Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object?obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復的話則用輸入流。
106、是否可以從一個static方法內部發(fā)出對非static方法的調用?
不可以,如果其中包含對象的method();不能保證對象初始化.
107、寫clone()方法時,通常都有一行代碼,是什么?
Clone?有缺省行為,super.clone();他負責產生正確大小的空間,并逐位復制。
108、在JAVA中,如何跳出當前的多重嵌套循環(huán)?
用break;?return?方法。
109、List、Map、Set三個接口,存取元素時,各有什么特點?
List?以特定次序來持有元素,可有重復元素。Set?無法擁有重復元素,內部排序。Map?保存key-value值,value可多值。
110、J2EE是什么?
J2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級應用模型(enterpriese?application?model).在這樣的一個應用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietn?tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。
111、UML方面?
標準建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現(xiàn)圖。
112、說出一些常用的類,包,接口,請各舉5個
常用的類:BufferedReader??BufferedWriter??FileReader??FileWirter??String??Integer
常用的包:java.lang??java.awt??java.io??java.util??java.sql
常用的接口:Remote??List??Map??Document??NodeList?
113、開發(fā)中都用到了那些設計模式?用在什么場合??
每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復相同的工作。主要用到了MVC的設計模式。用來開發(fā)JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。
114、jsp有哪些動作?作用分別是什么??
JSP共有以下6種基本動作?jsp:include:在頁面被請求的時候引入一個文件。?jsp:useBean:尋找或者實例化一個JavaBean。?jsp:setProperty:設置JavaBean的屬性。?jsp:getProperty:輸出某個JavaBean的屬性。?jsp:forward:把請求轉到一個新的頁面。?jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標記。
115、Anonymous?Inner?Class?(匿名內部類)?是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)??
可以繼承其他類或完成其他接口,在swing編程中常用此方式。
116、應用服務器與WEB?SERVER的區(qū)別?
應用服務器:Weblogic、Tomcat、Jboss
WEB?SERVER:IIS、?Apache
117、BS與CS的聯(lián)系與區(qū)別。
C/S是Client/Server的縮寫。服務器通常采用高性能的PC、工作站或小型機,并采用大型數(shù)據(jù)庫系統(tǒng),如Oracle、Sybase、Informix或?SQL?Server。客戶端需要安裝專用的客戶端軟件。
B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape?Navigator或Internet?Explorer,服務器安裝Oracle、Sybase、Informix或?SQL?Server等數(shù)據(jù)庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務邏輯在前端實現(xiàn),但是主要事務邏輯在服務器端實現(xiàn)。瀏覽器通過Web?Server?同數(shù)據(jù)庫進行數(shù)據(jù)交互。
C/S?與?B/S?區(qū)別:?
1.硬件環(huán)境不同:?
C/S?一般建立在專用的網(wǎng)絡上,?小范圍里的網(wǎng)絡環(huán)境,?局域網(wǎng)之間再通過專門服務器提供連接和數(shù)據(jù)交換服務.
B/S?建立在廣域網(wǎng)之上的,?不必是專門的網(wǎng)絡硬件環(huán)境,例與電話上網(wǎng),?租用設備.?信息自己管理.?有比C/S更強的適應范圍,?一般只要有操作系統(tǒng)和瀏覽器就行?
2.對安全要求不同?
C/S?一般面向相對固定的用戶群,?對信息安全的控制能力很強.?一般高度機密的信息系統(tǒng)采用C/S?結構適宜.?可以通過B/S發(fā)布部分可公開信息.
B/S?建立在廣域網(wǎng)之上,?對安全的控制能力相對弱,?可能面向不可知的用戶。
3.對程序架構不同?
C/S?程序可以更加注重流程,?可以對權限多層次校驗,?對系統(tǒng)運行速度可以較少考慮.
B/S?對安全以及訪問速度的多重的考慮,?建立在需要更加優(yōu)化的基礎之上.?比C/S有更高的要求?B/S結構的程序架構是發(fā)展的趨勢,?從MS的.Net系列的BizTalk?2000?Exchange?2000等,?全面支持網(wǎng)絡的構件搭建的系統(tǒng).?SUN?和IBM推的JavaBean?構件技術等,使?B/S更加成熟.?
4.軟件重用不同?
C/S?程序可以不可避免的整體性考慮,?構件的重用性不如在B/S要求下的構件的重用性好.
B/S?對的多重結構,要求構件相對獨立的功能.?能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子?
5.系統(tǒng)維護不同??
C/S?程序由于整體性,?必須整體考察,?處理出現(xiàn)的問題以及系統(tǒng)升級.?升級難.?可能是再做一個全新的系統(tǒng)
B/S?構件組成,方面構件個別的更換,實現(xiàn)系統(tǒng)的無縫升級.?系統(tǒng)維護開銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實現(xiàn)升級.?
6.處理問題不同?
C/S?程序可以處理用戶面固定,?并且在相同區(qū)域,?安全要求高需求,?與操作系統(tǒng)相關.?應該都是相同的系統(tǒng)
B/S?建立在廣域網(wǎng)上,?面向不同的用戶群,?分散地域,?這是C/S無法作到的.?與操作系統(tǒng)平臺關系最小.?
7.用戶接口不同?
C/S?多是建立的Window平臺上,表現(xiàn)方法有限,對程序員普遍要求較高
B/S?建立在瀏覽器上,?有更加豐富和生動的表現(xiàn)方式與用戶交流.?并且大部分難度減低,減低開發(fā)成本.?
8.信息流不同?
C/S?程序一般是典型的中央集權的機械式處理,?交互性相對低
B/S?信息流向可變化,?B-B?B-C?B-G等信息、流向的變化,?更像交易中心。
118、LINUX下線程,GDI類的解釋。
LINUX實現(xiàn)的就是基于核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在核外函數(shù)庫中實現(xiàn)。?
GDI類為圖像設備編程接口類庫。
119、STRUTS的應用(如STRUTS架構)?
Struts是采用Java?Servlet/JavaServer?Pages技術,開發(fā)Web應用程序的開放源碼的framework。?采用Struts能開發(fā)出基于MVC(Model-View-Controller)設計模式的應用構架。?Struts有如下的主要功能:?一.包含一個controller?servlet,能將用戶的請求發(fā)送到相應的Action對象。?二.JSP自由tag庫,并且在controller?servlet中提供關聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應用。?三.提供了一系列實用對象:XML處理、通過Java?reflection?APIs自動處理JavaBeans屬性、國際化的提示和消息。
120、Jdo是什么??
JDO是Java對象持久化的新的規(guī)范,為java?data?object的簡稱,也是一個用于存取某種數(shù)據(jù)倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來說,存儲數(shù)據(jù)對象完全不需要額外的代碼(如JDBC?API的使用)。這些繁瑣的例行工作已經(jīng)轉移到JDO產品提供商身上,使開發(fā)人員解脫出來,從而集中時間和精力在業(yè)務邏輯上。另外,JDO很靈活,因為它可以在任何數(shù)據(jù)底層上運行。JDBC只是面向關系數(shù)據(jù)庫(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲功能,比如關系數(shù)據(jù)庫、文件、XML以及對象數(shù)據(jù)庫(ODBMS)等等,使得應用可移植性更強。
與50位技術專家面對面20年技術見證,附贈技術全景圖
會。如:int?i,i2;??return?(i-i2);???//when?i為足夠大的正數(shù),i2為足夠大的負數(shù)。結果會造成溢位,導致錯誤。
102、java中實現(xiàn)多態(tài)的機制是什么?
方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。
103、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內存嗎?有什么辦法主動通知虛擬機進行垃圾回收?
對于GC來說,當程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的"。當GC確定一些對象為"不可達"時,GC就有責任回收這些內存空間。可以。程序員可以手動執(zhí)行System.gc(),通知GC運行,但是Java語言規(guī)范并不保證GC一定會執(zhí)行。
104、靜態(tài)變量和實例變量的區(qū)別?
static?i?=?10;?//常量
???class?A?a;??a.i?=10;//可變
105、什么是java序列化,如何實現(xiàn)java序列化?
序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。
序列化的實現(xiàn):將需要被序列化的類實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implements?Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object?obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復的話則用輸入流。
106、是否可以從一個static方法內部發(fā)出對非static方法的調用?
不可以,如果其中包含對象的method();不能保證對象初始化.
107、寫clone()方法時,通常都有一行代碼,是什么?
Clone?有缺省行為,super.clone();他負責產生正確大小的空間,并逐位復制。
108、在JAVA中,如何跳出當前的多重嵌套循環(huán)?
用break;?return?方法。
109、List、Map、Set三個接口,存取元素時,各有什么特點?
List?以特定次序來持有元素,可有重復元素。Set?無法擁有重復元素,內部排序。Map?保存key-value值,value可多值。
110、J2EE是什么?
J2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級應用模型(enterpriese?application?model).在這樣的一個應用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietn?tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。
111、UML方面?
標準建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現(xiàn)圖。
112、說出一些常用的類,包,接口,請各舉5個
常用的類:BufferedReader??BufferedWriter??FileReader??FileWirter??String??Integer
常用的包:java.lang??java.awt??java.io??java.util??java.sql
常用的接口:Remote??List??Map??Document??NodeList?
113、開發(fā)中都用到了那些設計模式?用在什么場合??
每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復相同的工作。主要用到了MVC的設計模式。用來開發(fā)JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。
114、jsp有哪些動作?作用分別是什么??
JSP共有以下6種基本動作?jsp:include:在頁面被請求的時候引入一個文件。?jsp:useBean:尋找或者實例化一個JavaBean。?jsp:setProperty:設置JavaBean的屬性。?jsp:getProperty:輸出某個JavaBean的屬性。?jsp:forward:把請求轉到一個新的頁面。?jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標記。
115、Anonymous?Inner?Class?(匿名內部類)?是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)??
可以繼承其他類或完成其他接口,在swing編程中常用此方式。
116、應用服務器與WEB?SERVER的區(qū)別?
應用服務器:Weblogic、Tomcat、Jboss
WEB?SERVER:IIS、?Apache
117、BS與CS的聯(lián)系與區(qū)別。
C/S是Client/Server的縮寫。服務器通常采用高性能的PC、工作站或小型機,并采用大型數(shù)據(jù)庫系統(tǒng),如Oracle、Sybase、Informix或?SQL?Server。客戶端需要安裝專用的客戶端軟件。
B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape?Navigator或Internet?Explorer,服務器安裝Oracle、Sybase、Informix或?SQL?Server等數(shù)據(jù)庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務邏輯在前端實現(xiàn),但是主要事務邏輯在服務器端實現(xiàn)。瀏覽器通過Web?Server?同數(shù)據(jù)庫進行數(shù)據(jù)交互。
C/S?與?B/S?區(qū)別:?
1.硬件環(huán)境不同:?
C/S?一般建立在專用的網(wǎng)絡上,?小范圍里的網(wǎng)絡環(huán)境,?局域網(wǎng)之間再通過專門服務器提供連接和數(shù)據(jù)交換服務.
B/S?建立在廣域網(wǎng)之上的,?不必是專門的網(wǎng)絡硬件環(huán)境,例與電話上網(wǎng),?租用設備.?信息自己管理.?有比C/S更強的適應范圍,?一般只要有操作系統(tǒng)和瀏覽器就行?
2.對安全要求不同?
C/S?一般面向相對固定的用戶群,?對信息安全的控制能力很強.?一般高度機密的信息系統(tǒng)采用C/S?結構適宜.?可以通過B/S發(fā)布部分可公開信息.
B/S?建立在廣域網(wǎng)之上,?對安全的控制能力相對弱,?可能面向不可知的用戶。
3.對程序架構不同?
C/S?程序可以更加注重流程,?可以對權限多層次校驗,?對系統(tǒng)運行速度可以較少考慮.
B/S?對安全以及訪問速度的多重的考慮,?建立在需要更加優(yōu)化的基礎之上.?比C/S有更高的要求?B/S結構的程序架構是發(fā)展的趨勢,?從MS的.Net系列的BizTalk?2000?Exchange?2000等,?全面支持網(wǎng)絡的構件搭建的系統(tǒng).?SUN?和IBM推的JavaBean?構件技術等,使?B/S更加成熟.?
4.軟件重用不同?
C/S?程序可以不可避免的整體性考慮,?構件的重用性不如在B/S要求下的構件的重用性好.
B/S?對的多重結構,要求構件相對獨立的功能.?能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子?
5.系統(tǒng)維護不同??
C/S?程序由于整體性,?必須整體考察,?處理出現(xiàn)的問題以及系統(tǒng)升級.?升級難.?可能是再做一個全新的系統(tǒng)
B/S?構件組成,方面構件個別的更換,實現(xiàn)系統(tǒng)的無縫升級.?系統(tǒng)維護開銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實現(xiàn)升級.?
6.處理問題不同?
C/S?程序可以處理用戶面固定,?并且在相同區(qū)域,?安全要求高需求,?與操作系統(tǒng)相關.?應該都是相同的系統(tǒng)
B/S?建立在廣域網(wǎng)上,?面向不同的用戶群,?分散地域,?這是C/S無法作到的.?與操作系統(tǒng)平臺關系最小.?
7.用戶接口不同?
C/S?多是建立的Window平臺上,表現(xiàn)方法有限,對程序員普遍要求較高
B/S?建立在瀏覽器上,?有更加豐富和生動的表現(xiàn)方式與用戶交流.?并且大部分難度減低,減低開發(fā)成本.?
8.信息流不同?
C/S?程序一般是典型的中央集權的機械式處理,?交互性相對低
B/S?信息流向可變化,?B-B?B-C?B-G等信息、流向的變化,?更像交易中心。
118、LINUX下線程,GDI類的解釋。
LINUX實現(xiàn)的就是基于核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在核外函數(shù)庫中實現(xiàn)。?
GDI類為圖像設備編程接口類庫。
119、STRUTS的應用(如STRUTS架構)?
Struts是采用Java?Servlet/JavaServer?Pages技術,開發(fā)Web應用程序的開放源碼的framework。?采用Struts能開發(fā)出基于MVC(Model-View-Controller)設計模式的應用構架。?Struts有如下的主要功能:?一.包含一個controller?servlet,能將用戶的請求發(fā)送到相應的Action對象。?二.JSP自由tag庫,并且在controller?servlet中提供關聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應用。?三.提供了一系列實用對象:XML處理、通過Java?reflection?APIs自動處理JavaBeans屬性、國際化的提示和消息。
120、Jdo是什么??
JDO是Java對象持久化的新的規(guī)范,為java?data?object的簡稱,也是一個用于存取某種數(shù)據(jù)倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來說,存儲數(shù)據(jù)對象完全不需要額外的代碼(如JDBC?API的使用)。這些繁瑣的例行工作已經(jīng)轉移到JDO產品提供商身上,使開發(fā)人員解脫出來,從而集中時間和精力在業(yè)務邏輯上。另外,JDO很靈活,因為它可以在任何數(shù)據(jù)底層上運行。JDBC只是面向關系數(shù)據(jù)庫(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲功能,比如關系數(shù)據(jù)庫、文件、XML以及對象數(shù)據(jù)庫(ODBMS)等等,使得應用可移植性更強。
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的JAVA基础知识(6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA基础知识(4)
- 下一篇: JAVA基础知识(5)