Java基礎知識(101-122)

101、java中會存在內

存泄漏嗎,請簡單描述。
的確存在Java的內存泄漏, 並且事態可以變得相當嚴重

Java garbage collector自動釋放哪些內存裏面程序不在需要的對象, 以此避免

大多數的其他程序上下文的內存泄漏. 但是Java應用程序依舊會有相當的內存泄

漏. 查找原因會十分困難.
有兩類主要的Java內存泄漏:
* 不再需要的對象引用
* 未釋放的系統資源
2.2 非必要的對象引用
Java代碼常常保留對於不再需要的對象引用, 並且這組織了內存的垃圾收集器的

工作. Java對象通常被其他對象包含引用, 爲此一個單一對象可以保持整個對象

樹在內存中, 於是導致瞭如下問題:
* 在向數組添加對象以後遺漏了對於他們的處理
* 直到你再次使用對象的時候都不釋放引用. 比如一個菜單指令可以插件一個對

象實例引用並且不釋放便於以後再次調用的時候使用, 但是也許永遠不會發生.
* 在其他引用依然需要舊有狀態的時候貿然修改對象狀態. 比如當你爲了在一個

文本文件裏面保存一些屬性而使用一個數組, 諸如"字符個數"等字段在不再需要

的時候依然保留在內存當中.
* 允許一個長久執行的線程所引用的對象. 設置引用爲NULL也無濟於事, 在線程

退出和空閒之前, 對象不會被收集釋放
2.3 未釋放的系統資源
Java方法可以定位Java實例意外的堆內存, 諸如針對視窗和位圖的內存資源.

Java常常通過JNI(Java Native Interface)調用C/C++子程序定位這些資源.

102、java中實現多態的機制是什麼?
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫

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 方法。

109、List、Map、Set三個接口,存取元素時,各有什麼特點?
List 以特定次序來持有元素,可有重複元素。Set 無法擁有重複元素,內部排序

。Map 保存key-value值,value可多值。

110、J2EE是什麼?
J2EE 是Sun公司提出的多層(multi-diered),分佈式(distributed),基於組件

(component-base)的企業級應用模型 (enterpriese application model).在這

樣的一個應用系統中,可按照功能劃分爲不同的組件,這些組件又可在不同計算

機上,並且處於相應的層次(tier)中。所屬層次包括客戶 層(clietn tier)組件

,web層和組件,Business層和組件,企業信息系統(EIS)層。

111、UML方面
標準建模語言UML。用例圖,靜態圖(包括類圖、對象圖和包圖),行爲圖,交互圖(

順序圖,合作圖),實現圖。

112、說出一些常用的類,包,接口,請各舉5個
常用的類:BufferedReader BufferedWriter FileReader FileWirter String

Integer
常用的包:java.lang java.awt java.io java.util java.sql
常用的接口:Remote List Map Document NodeList

113、開發中都用到了那些設計模式?用在什麼場合?
每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解

決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需

在重複相同的工作。主要用到了MVC的設計模式。用來開發JSP/Servlet或者J2EE

的相關應用。簡單工廠模式等。

114、jsp有哪些動作?作用分別是什麼?
JSP 共有以下6種基本動作 jsp:include:在頁面被請求的時候引入一個文件。

jsp:useBean:尋找或者實例化一個JavaBean。 jsp:setProperty:設置

JavaBean的屬性。 jsp:getProperty:輸出某個JavaBean的屬性。 jsp:forward

:把請求轉到一個新的頁面。 jsp:plugin:根據瀏覽器類型爲Java插件生成

OBJECT或EMBED標記。

115、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,

是否可以implements(實現)interface(接口)?
可以繼承其他類或完成其他接口,在swing編程中常用此方式。

116、應用服務器與WEB SERVER的區別?
應用服務器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache

117、BS與CS的聯繫與區別。
C/S是Client/Server的縮寫。服務器通常採用高性能的PC、工作站或小型機,並

採用大型數據庫系統,如Oracle、Sybase、Informix或 SQL Server。客戶端需

要安裝專用的客戶端軟件。
B/S 是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如

Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、

Informix或 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等信息、流向的變化, 更像交易中心。

118、LINUX下線程,GDI類的解釋。
LINUX實現的就是基於核心輕量級進程的"一對一"線程模型,一個線程實體對應

一個核心輕量級進程,而線程之間的管理在覈外函數庫中實現。
GDI類爲圖像設備編程接口類庫。

119、STRUTS的應用(如STRUTS架構)
Struts 是採用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放

源碼的framework。 採用Struts能開發出基於MVC(Model-View-Controller)設計

模式的應用構架。 Struts有如下的主要功能: 一.包含一個controller

servlet,能將用戶的請求發送到相應的Action對象。 二.JSP自由tag庫,並且

在controller servlet中提供關聯支持,幫助開發員創建交互式表單應用。 三.

提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理

JavaBeans屬性、國際化的提示和消息。

120、Jdo是什麼?
JDO 是Java對象持久化的新的規範,爲java data object的簡稱,也是一個用於

存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開

發人員來說,存儲數據對象完全不需要額 外的代碼(如JDBC API的使用)。這

些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而

集中時間和精力在業務邏輯上。另外,JDO很靈活,因爲它 可以在任何數據底層

上運行。JDBC只是面向關係數據庫(RDBMS)JDO更通用,提供到任何數據底層的

存儲功能,比如關係數據庫、文件、XML以及對 象數據庫(ODBMS)等等,使得

應用可移植性更強。

121、內部類可以引用他包含類的成員嗎?有沒有什麼限制?
一個內部類對象可以訪問創建它的外部類對象的內容

內部類如果不是static的,那麼它可以訪問創建它的外部類對象的所有屬性
內部類如果是sattic的,即爲nested class,那麼它只可以訪問創建它的外部類

對象的所有static屬性

一般普通類只有public或package的訪問修飾,而內部類可以實現static,

protected,private等訪問修飾。

當從外部類繼承的時候,內部類是不會被覆蓋的,它們是完全獨立的實體,每個

都在自己的命名空間內,如果從內部類中明確地繼承,就可以覆蓋原來內部類的

方法。

122、WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXP、JAXM的解釋。SOAP、

UDDI,WSDL解釋。
Web ServiceWeb Service是基於網絡的、分佈式的模塊化組件,它執行特定的任

務,遵守具體的技術規範,這些規範使得Web Service能與其他兼容的組件進行

互操作。
JAXP(Java API for XML Parsing) 定義了在Java中使用DOM, SAX, XSLT的通用

的接口。這樣在你的程序中你只要使用這些通用的接口,當你需要改變具體的實

現時候也不需要修改代碼。
JAXM(Java API for XML Messaging) 是爲SOAP通信提供訪問方法和傳輸機制的

API。
WSDL是一種 XML 格式,用於將網絡服務描述爲一組端點,這些端點對包含面向

文檔信息或面向過程信息的消息進行操作。這種格式首先對操作和消息進行抽象

描述,然後將其綁定到具體的網絡協議和消息格式上以定義端點。相關的具體端

點即組合成爲抽象端點(服務)。
SOAP即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML

編碼信息的輕量級協議。
UDDI 的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web

Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自

身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。

soap是web service最關鍵的技術,是web service中數據和方法調傳輸的介質。

WSDL(web service definition language)描述了web service的接口和功能。
 

 

 
 
 
 

 

 

 

 

 

 

 

 

 


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