Java基礎(chǔ)面試題編程篇
LINUX實現(xiàn)的就是基于核心輕量級進(jìn)程的"一對一"線程模型,一個線程實體對應(yīng)一個核心輕量級進(jìn)程,而線程之間的管理在核外函數(shù)庫中實現(xiàn)。下面就由學(xué)習(xí)啦小編為大家介紹一下Java基礎(chǔ)面試題編程篇的文章,歡迎閱讀。
Java基礎(chǔ)面試題編程篇篇1
1 、什么是 web 容器
答: 給處于其中的應(yīng)用程序組件( JSP , SERVLET )提供一個環(huán)境,使 JSP,SERVLET 直接更容器中的環(huán)境變量接 ** 互,不必關(guān)注其它系統(tǒng)問題。主要有 WEB 服務(wù)器來實現(xiàn)。例如: TOMCAT,WEBLOGIC,WEBSPHERE 等。該容器提供的接口嚴(yán)格遵守 J2EE 規(guī)范中的 WEB APPLICATION 標(biāo)準(zhǔn)。我們把遵守以上標(biāo)準(zhǔn)的 WEB 服務(wù)器就叫做 J2EE 中的 WEB 容器。
2 、什么是 EJB 容器
答: Enterprise java bean 容器。更具有行業(yè)領(lǐng)域特色。他提供給運行在其中的組件 EJB 各種管理功能。只要滿足 J2EE 規(guī)范的 EJB 放入該容器,馬上就會被容器進(jìn)行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務(wù)。例如郵件服務(wù)、事務(wù)管理
3 、 什么是 JNDI
答: ( Java Naming & Directory Interface ) JAVA 命名目錄服務(wù)。主要提供的功能是:提供一個目錄系統(tǒng),讓其它各地的應(yīng)用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應(yīng)用程序的功能。
4 、什么是 JMS
答: ( Java Message Service ) JAVA 消息服務(wù)。主要實現(xiàn)各個應(yīng)用程序之間的通訊。包括點對點和廣播。
5 、什么是 JTA
答: ( Java Transaction API ) JAVA 事務(wù)服務(wù)。提供各種分布式事務(wù)服務(wù)。應(yīng)用程序只需調(diào)用其提供的接口即可。
6 、什么是 JAF
答: ( Java Action FrameWork ) JAVA 安全認(rèn)證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實現(xiàn)自己的個性安全控制策略。
RMI/IIOP: ( Remote Method Invocation /internet 對象請求中介協(xié)議)他們主要用于通過遠(yuǎn)程調(diào)用服務(wù)。例如,遠(yuǎn)程有一臺計算機上運行一個程序,它提供股票分析服務(wù),我們可以在本地計算機上實現(xiàn)對其直接調(diào)用。當(dāng)然這是要通過一定的規(guī)范才能在異構(gòu)的系統(tǒng)之間進(jìn)行通信。 RMI 是 JAVA 特有的。
7 、 MVC 的各個部分都有那些技術(shù)來實現(xiàn) ? 如何實現(xiàn) ?
答: MVC 是 Model - View - Controller 的簡寫。 "Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過 JavaBean , EJB 組件實現(xiàn)), "View" 是應(yīng)用的表示面(由 JSP 頁面產(chǎn)生), "Controller" 是提供應(yīng)用的處理過程控制(一般是一個 Servlet ),通過這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進(jìn)行交互和重用。
Java基礎(chǔ)面試題編程篇篇2
1 、開發(fā)中都用到了那些設(shè)計模式 ? 用在什么場合 ?
答: 每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。主要用到了 MVC 的設(shè)計模式。用來開發(fā) JSP/Servlet 或者 J2EE 的相關(guān)應(yīng)用。簡單工廠模式等。
2 、說說你所熟悉或聽說過的 j2ee 中的幾種常用模式 ? 及對設(shè)計模式的一些看法
答: Session Facade Pattern :使用 SessionBean 訪問 EntityBean
Message Facade Pattern :實現(xiàn)異步調(diào)用
EJB Command Pattern :使用 Command JavaBeans 取代 SessionBean ,實現(xiàn)輕量級訪問
Data Transfer Object Factory :通過 DTO Factory 簡化 EntityBean 數(shù)據(jù)提供特性
Generic Attribute Access :通過 AttibuteAccess 接口簡化 EntityBean 數(shù)據(jù)提供特性
Business Interface :通過遠(yuǎn)程(本地)接口和 Bean 類實現(xiàn)相同接口規(guī)范業(yè)務(wù)邏輯一致性
EJB架構(gòu)的設(shè)計好壞將直接影響系統(tǒng)的性能、可擴展性、可維護(hù)性、組件可重用性及開發(fā)效率。項目越復(fù)雜,項目隊伍越龐大則越能體現(xiàn)良好設(shè)計的重要性。
3 、 j2ee 常用的設(shè)計模式?說明工廠模式。
答: Java 中的 23 種設(shè)計模式:
Factory (工廠模式), Builder (建造模式), Factory Method (工廠方法模式),
Prototype (原始模型模式), Singleton (單例模式), Facade (門面模式),
Adapter (適配器模式), Bridge (橋梁模式), Composite (合成模式),
Decorator (裝飾模式), Flyweight (享元模式), Proxy (代理模式),
Command (命令模式), Interpreter (解釋器模式), Visitor (訪問者模式),
Iterator (迭代子模式), Mediator (調(diào)停者模式), Memento (備忘錄模式),
Observer (觀察者模式), State (狀態(tài)模式), Strategy (策略模式),
Template Method (模板方法模式), Chain Of Responsibleity (責(zé)任鏈模式)
工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類并且實現(xiàn)了相同的方法,但是這些方法針對不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現(xiàn)了基類中的方法。然后需要定義一個工廠類,工廠類可以根據(jù)條件生成不同的子類實例。當(dāng)?shù)玫阶宇惖膶嵗?,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個子類的實例。
UML方面
Java基礎(chǔ)面試題編程篇篇3
1、 UML 方面
答: 標(biāo)準(zhǔn)建模語言 UML 。用例圖 , 靜態(tài)圖 ( 包括類圖、對象圖和包圖 ), 行為圖 , 交互圖 ( 順序圖 , 合作圖 ), 實現(xiàn)圖 ,
CORBA 方面
2 、 CORBA 是什么 ? 用途是什么 ?
答: CORBA 標(biāo)準(zhǔn)是公共對象請求代理結(jié)構(gòu) (Common Object Request Broker Architecture) ,由對象管理組織 (Object Management Group ,縮寫為 OMG) 標(biāo)準(zhǔn)化。它的組成是接口定義語言 (IDL), 語言綁定 (binding: 也譯為聯(lián)編 ) 和允許應(yīng)用程序間互操作的協(xié)議。 其目的為:
用不同的程序設(shè)計語言書寫
在不同的進(jìn)程中運行
為不同的操作系統(tǒng)開發(fā)
LINUX 方面
3 、 LINUX 下線程, GDI 類的解釋。
答: LINUX實現(xiàn)的就是基于核心輕量級進(jìn)程的"一對一"線程模型,一個線程實體對應(yīng)一個核心輕量級進(jìn)程,而線程之間的管理在核外函數(shù)庫中實現(xiàn)。
GDI類為圖像設(shè)備編程接口類庫。
4 、 LINUX 下線程, GDI 類的解釋。
答: LINUX 實現(xiàn)的就是基于核心輕量級進(jìn)程的 " 一對一 " 線程模型,一個線程實體對應(yīng)一個核心輕量級進(jìn)程,而線程之間的管理在核外函數(shù)庫中實現(xiàn)。
GDI 類為圖像設(shè)備編程接口類庫。
5 、寫一個 Singleton 出來
答: Singleton 模式主要作用是保證在 Java 應(yīng)用程序中,一個類 Class 只有一個實例存在。
一般 Singleton 模式通常有幾種種形式 :
第一種形式 : 定義一個類,它的構(gòu)造函數(shù)為 private 的,它有一個 static 的 private 的該類變量,在類初始化時實例話,通過一個 public 的 getInstance 方法獲取對它的引用 , 繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
// 在自己內(nèi)部定義自己一個實例,是不是很奇怪?
// 注意這是 private 只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
// 這里提供了一個供外部訪問本 class 的靜態(tài)方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式 :
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
// 這個方法比上面有所改進(jìn),不用每次都進(jìn)行生成對象,只是第一次
// 使用時生成實例,提高了效率!
if (instance==null)
instance = new Singleton();
return instance; }
}
其他形式 :
定義一個類,它的構(gòu)造函數(shù)為 private 的,所有方法為 static 的。
一般認(rèn)為第一種形式要更加安全些
6 、繼承時候類的執(zhí)行順序問題 , 一般都是選擇題 , 問你將會打印出什么 ?
答 : 父類:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子類 :
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結(jié)果:
C:\>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create