Java面試

100java中有幾種類型的流?JDK爲每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類? 字節流,字符流。字節流繼承於I utStream OutputStream,字符流繼承於I utStreamReader OutputStreamWriter。在java.io包中還有許多其他的流,主要是爲了提高性能和使用方便。

101java中會存在內存泄漏嗎,請簡單描述。

會。如:int i,i2 return (i-i2) //when i爲足夠大的正數,i2爲足夠大的負數。結果會造成溢位,導致錯誤。
102java中實現多態的機制是什麼?
方法的重寫Overriding和重載OverloadingJava多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。
103、垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收?
對於GC來說,當程序員創建對象時,GC就開始監控這個對象的地址、大小以及使用情況。通常,GC採用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的"。當GC確定一些對象爲"不可達"時,GC就有責任回收這些內存空間。可以。程序員可以手動執行System.gc(),通知GC運行,但是Java語言規範並不保證GC一定會執行。
104、靜態變量和實例變量的區別?
static i = 10; //常量
class A a a.i =10;//
可變
105、什麼是java序列化,如何實現java序列化?
序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化後的對象進行讀寫操作,也可將流化後的對象傳輸於網絡之間。序列化是爲了解決在對對象流進行讀寫操作時所引發的問題。
序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是爲了標註該對象是可被序列化的,然後使用一個輸出流(如:FileOutputStream)來構造一個 ObjectOutputStream(對象流)對象,接着,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數爲obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。
106、是否可以從一個static方法內部發出對非static方法的調用?
不可以,如果其中包含對象的method();不能保證對象初始化.
107、寫clone()方法時,通常都有一行代碼,是什麼?
Clone
有缺省行爲,super.clone();他負責產生正確大小的空間,並逐位複製。
108、在JAVA中,如何跳出當前的多重嵌套循環?
break; return 方法。
109ListMapSet三個接口,存取元素時,各有什麼特點?
List
以特定次序來持有元素,可有重複元素。Set 無法擁有重複元素,內部排序。Map 保存key-value值,value可多值。

110J2EE是什麼?
J2EE Sun公司提出的多層(multi-diered),分佈式(distributed),基於組件(component-base)的企業級應用模型 (enterpriese a lication model).在這樣的一個應用系統中,可按照功能劃分爲不同的組件,這些組件又可在不同計算機上,並且處於相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Busine 層和組件,企業信息系統(EIS)層。
111UML方面
標準建模語言UML。用例圖,靜態圖(包括類圖、對象圖和包圖),行爲圖,交互圖(順序圖,合作圖),實現圖。
1
12、說出一些常用的類,包,接口,請各舉5
常用的類:BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包:
java.lang java.awt java.io java.util java.sql
常用的接口:Remote List Ma Document NodeList

113、開發中都用到了那些設計模式?用在什麼場合?
每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。主要用到了MVC的設計模式。用來開發J /Servlet或者J2EE的相關應用。簡單工廠模式等。
114j 有哪些動作?作用分別是什麼?
J 共有以下6種基本動作 j :include:在頁面被請求的時候引入一個文件。 j :useBean:尋找或者實例化一個JavaBean j :setProperty:設置JavaBean的屬性。 j :getProperty:輸出某個JavaBean的屬性。 j :forward:把請求轉到一個新的頁面。 j :plugin:根據瀏覽器類型爲Java插件生成OBJECTEMBED標記。
115Anonymous I er Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?
可以繼承其他類或完成其他接口,在swing編程中常用此方式。
116、應用服務器與WEB SERVER的區別?
應用服務器:WeblogicTomcatJbo
WEB SERVER
IIS
Apache
117 CS的聯繫與區別。
C/SClient/Server的縮寫。服務器通常採用高性能的PC、工作站或小型機,並採用大型數據庫系統,如OracleSybaseInformix SQL Server。客戶端需要安裝專用的客戶端軟件。
B/
S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape NavigatorInternet Explorer,服務器安裝OracleSybaseInformix SQL Server等數據庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。瀏覽器通過Web Server 同數據庫進行數據交互。
C/S B/S 區別:
1.硬件環境不同:
C/S
一般建立在專用的網絡上, 小範圍裏的網絡環境, 局域網之間再通過專門服務器提供連接和數據交換服務
.
B/S
建立在廣域網之上的, 不必是專門的網絡硬件環境,例與電話上網, 租用設備. 信息自己管理. 有比C/S更強的適應範圍, 一般只要有操作系統和瀏覽器就行

2.對安全要求不同
C/S
一般面向相對固定的用戶羣, 對信息安全的控制能力很強. 一般高度機密的信息系統採用C/S 結構適宜. 可以通過B/S發佈部分可公開信息
.
B/S
建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。

3.對程序架構不同
C/S
程序可以更加註重流程, 可以對權限多層次校驗, 對系統運行速度可以較少考慮.
B/S
對安全以及訪問速度的多重的考慮, 建立在需要更加優化的基礎之上. C/S有更高的要求 B/S結構的程序架構是發展的趨勢, MS.Net系列的BizTalk 2000 Exchange 2000, 全面支持網絡的構件搭建的系統. SUN IBM推的JavaBean 構件技術等,使 B/S更加成熟
.
4.軟件重用不同

C/S
程序可以不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好.
B/S
對的多重結構,要求構件相對獨立的功能. 能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在牆上的石頭桌子

5.系統維護不同
C/S
程序由於整體性, 必須整體考察, 處理出現的問題以及系統升級. 升級難. 可能是再做一個全新的系統
B/S
構件組成,方面構件個別的更換,實現系統的無縫升級. 系統維護開銷減到最小.用戶從網上自己下載安裝就可以實現升級.
6.處理問題不同

C/S
程序可以處理用戶面固定, 並且在相同區域, 安全要求高需求, 與操作系統相關. 應該都是相同的系統
B/S
建立在廣域網上, 面向不同的用戶羣, 分散地域, 這是C/S無法作到的. 與操作系統平臺關係最小

7.用戶接口不同
C/S
多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高
B/S
建立在瀏覽器上, 有更加豐富和生動的表現方式與用戶交流. 並且大部分難度減低,減低開發成本.
8.信息流不同

C/S
程序一般是典型的中央集權的機械式處理, 交互性相對低
B/S
信息流向可變化, B-B B-C B-G等信息、流向的變化, 更像交易中心。
118LINUX下線程,GDI類的解釋。
LINUX實現的就是基於核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在覈外函數庫中實現。
GDI
類爲圖像設備編程接口類庫。

119STRUTS的應用(STRUTS架構)
Struts 是採用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework。採用Struts能開發出基於MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能:一.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。二.J 自由tag庫,並且在controller servlet中提供關聯支持,幫助開發員創建交互式表單應用。三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBea 屬性、國際化的提示和消息。
120Jdo是什麼?
JDO Java對象持久化的新的規範,爲java data object的簡稱,也是一個用於存取某種數據倉庫中的對象的標準化APIJDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因爲它可以在任何數據底層上運行。JDBC只是面向關係數據庫(RDBMSJDO更通用,提供到任何數據底層的存儲功能,比如關係數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。
1
21、內部類可以引用他包含類的成員嗎?有沒有什麼限制? 一個內部類對象可以訪問創建它的外部類對象的內容

122WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXPJAXM的解釋。SOAPUDDI,WSDL解釋。
Web ServiceWeb Service
是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵守具體的技術規範,這些規範使得Web Service能與其他兼容的組件進行互操作。

   JAXP(Java API for XML Parsing)
定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當你需要改變具體的實現時候也不需要修改代碼。
   JAXM(Java API for XML Me aging)
是爲SOAP通信提供訪問方法和傳輸機制的API
   WSDL
是一種 XML 格式,用於將網絡服務描述爲一組端點,這些端點對包含面向文檔信息或面向過程信息的消息進行操作。這種格式首先對操作和消息進行抽象描述,然後將其綁定到具體的網絡協議和消息格式上以定義端點。相關的具體端點即組合成爲抽象端點(服務)。
   SOAP
即簡單對象訪問協議(Simple Object Acce Protocol),它是用於交換XML編碼信息的輕量級協議。
   UDDI
的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。

125、啓動一個線程是用run()還是start()?
  
啓動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。這並不意味着線程就會立即運行。run()方法可以產生必須退出的標誌來停止一個線程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章