JAVA面試題最全集(6)

一些著名的大公司面試題目往往很基礎.

一、Java基礎知識
1. Java有那些基本數據類型,String是不是基本數據類型,他們有何區別。
Integer literals,Floating-point literals,character literals,Boolean literal,String iteral.
String 不是基本數據類型
2. 字符串的操作:
寫一個方法,實現字符串的反轉,如:輸入abc,輸出cba
public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}
寫一個方法,實現字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。
3. 數據類型之間的轉換
如何將數值型字符轉換爲數字(Integer,Double)
如何將數字轉換爲字符
如何去小數點前兩位,並四捨五入。
4. 日期和時間
如何取得年月日,小時分秒
Date dat=new Date();
dat.getYear();dat.getMonth();dat.getDay();dat.getHours();...
如何取得從1970年到現在的毫秒數
long now=dat.getTime();
如何獲取某個日期是當月的最後一天
如何格式化日期
DateFormate df=DateFormate.getInstance();
df.Format(dat);
5. 數組和集合
6. 文件和目錄(I/O)操作
如何列出某個目錄下的所有文件
如何列出某個目錄下的所有子目錄
判斷一個文件或目錄是否存在
如何讀寫文件
7. Java多態的實現(繼承、重載、覆蓋)
8. 編碼轉換,怎樣實現將GB2312編碼的字符串轉換爲ISO-8859-1編碼的字符串。
9. Java中訪問數據庫的步驟,Statement和PreparedStatement之間的區別。
10. 找出下列代碼可能存在的錯誤,並說明原因:
二、JSP&Servlet技術
1. 描述JSP和Servlet的區別、共同點、各自應用的範圍
2. 在Web開發中需要處理HTML標記時,應做什麼樣的處理,要篩選那些字符(< > & "")
3. 在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。
4. 描述Cookie和Session的作用,區別和各自的應用範圍,Session工作原理。
5. 列出Jsp中包含外部文件的方式,兩者有何區別。
6. 說明Jsp中errorPage的作用,應用範圍。
7. 介紹在Jsp中如何使用JavaBeans。
8. 簡單介紹JSP的標記庫
9. Jsp和Servlet中的請求轉發分別如何實現。
三、J2EE相關知識
1. 介紹J2EE、J2SE、J2SE的區別。
2. J2EE是一種技術還是一種平臺,他提供了那些技術。
3. 什麼是Application Server,它有什麼功能和優點。
4. 簡單介紹連接池的優點和原理。
5. Web.xml的作用
四、其他
1. Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮)
2. 簡單介紹您所瞭解的MVC。
3. 簡單介紹所瞭解的XML。
4. 文檔和編碼規範
5. Java中的分頁、效率考慮。
6. 簡單介紹您所瞭解的structs。

找出以下程序錯誤。
Class Test{
private String par1;
private String par2;
Test(){
}

public static void main(String[] arg){
int a ;
if(a){
System.out.println("par1="+par1);
}else{
System.out.println("par2=" + par2);
}
}
}

==================================

public class Test
{
public static int a = 5;
public static void main(String[] args)
{
Test test = new Test();
test = null;
System.out.println(test.a);
}
}
答案是5,a爲靜態變量;不依賴對象,即使爲空。

J2EE初學者需要理解的問題


原文出處: http://www.scjp.com.cn/news/article_show.asp?id=19617

一、J2EE提出的背景
1、 企業級應用框架的需求

在許多企業級應用中,例如數據庫連接、郵件服務、事務處理等都是一些通用企業需求模塊,這些模塊如果每次再開發中都由開發人員來完成的話,將會造成開發週期長和代碼可*性差等問題。於是許多大公司開發了自己的通用模塊服務。這些服務性的軟件系列統稱爲中間件。

2、 爲了通用必須要提出規範,不然無法達到通用

在上面的需求基礎之上,許多公司都開發了自己的中間件,但其與用戶的溝通都各有不同,從而導致用戶無法將各個公司不同的中間件組裝在一塊爲自己服務。從而產生瓶頸。於是提出標準的概念。其實J2EE就是基於JAVA技術的一系列標準。

注:中間件的解釋 中間件處在操作系統和更高一級應用程序之間。他充當的功能是:將應用程序運行環境與操作系統隔離,從而實現應用程序開發者不必爲更多系統問題憂慮,而直接關注該應用程序在解決問題上的能力 。我們後面說到的容器的概念就是中間件的一種。

二、相關名詞解釋
容器:充當中間件的角色

WEB容器:給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接更容器中的環境變量接口交互,不必關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規範中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行業領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規範的EJB放入該容器,馬上就會被容器進行高效率的管理。並且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理。

WEB容器和EJB容器在原理上是大體相同的,更多的區別是被隔離的外界環境。WEB容器更多的是跟基於HTTP的請求打交道。而EJB容器不是。它是更多的跟數據庫、其它服務打交道。但他們都是把與外界的交互實現從而減輕應用程序的負擔。例如SERVLET不用關心HTTP的細節,直接引用環境變量session,request,response就行、EJB不用關心數據庫連接速度、各種事務控制,直接由容器來完成。

RMI/IIOP:遠程方法調用/internet對象請求中介協議,他們主要用於通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規範才能在異構的系統之間進行通信。RMI是JAVA特有的。

JNDI:JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分佈式應用程序的功能。

JMS:JAVA消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。

JAVAMAIL:JAVA郵件服務。提供郵件的存儲、傳輸功能。他是JAVA編程中實現郵件功能的核心。相當MS中的EXCHANGE開發包。

JTA:JAVA事務服務。提供各種分佈式事務服務。應用程序只需調用其提供的接口即可。

JAF:JAVA安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。

EAI:企業應用集成。是一種概念,從而牽涉到好多技術。J2EE技術是一種很好的集成實現。

三、J2EE的優越性
1、 基於JAVA 技術,平臺無關性表現突出

2、 開放的標準,許多大型公司已經實現了對該規範支持的應用服務器。如BEA ,IBM,ORACLE等。

3、 提供相當專業的通用軟件服務。

4、 提供了一個優秀的企業級應用程序框架,對快速高質量開發打下基礎

四、現狀
J2EE是由SUN 公司開發的一套企業級應用規範。現在最高版本是1.4。支持J2EE的應用服務器有IBM WEBSPHERE APPLICATION SERVER,BEA WEBLOGIC SERVER,JBOSS,ORACLE APPLICATION SERVER,SUN ONE APPLICATION SERVER 等。 
發佈了4 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章