- 相關(guān)推薦
用友軟件Java工程師筆試題(含答案)
Java軟件工程師運(yùn)用Java這種編程語(yǔ)言去完成軟件產(chǎn)品的軟件程序設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、維護(hù)升級(jí)等工作。下面CN人才網(wǎng)小編為大家?guī)?lái)的是用友軟件Java工程師筆試題(含答案),希望對(duì)大家有所幫助~
1.web 中的 forward 和 redirect 的區(qū)別?
前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用 forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用 sendRedirect()方法。
2. xml 在解釋的時(shí)候 DOM 和 SAX 協(xié)議的區(qū)別和含義?
DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問(wèn)題是由 DOM 的樹(shù)結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM 必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對(duì) XML 的隨機(jī)訪問(wèn)
SAX:不現(xiàn)于 DOM,SAX 是事件驅(qū)動(dòng)型的 XML 解析方式。它順序讀取 XML 文件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開(kāi)頭,文檔結(jié)束,或者標(biāo)簽開(kāi)頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸發(fā)一個(gè)事件,用戶通過(guò)在其回調(diào)事件中寫(xiě)入處理代碼來(lái)處理 XML 文件,適合對(duì) XML 的順序訪問(wèn)
3 說(shuō)明 JNDI、JMS、JTA、RMI 的意思?
JNDI(Java Naming and Directory Interface)是一個(gè)應(yīng)用程序設(shè)計(jì)的 API,為開(kāi)發(fā)人員提供了查找和訪問(wèn)各種命名和目錄服務(wù)的通用、統(tǒng)一的接口,類似 JDBC 都是構(gòu)建在抽象層上。
JMS(Java Messaging Service)是 Java 平臺(tái)上有關(guān)面向消息中間件的技術(shù)規(guī)范,翻譯為 Java 消息服務(wù)。JMS 支持點(diǎn)對(duì)點(diǎn)和發(fā)布/訂閱兩種消息模型。
JTA(Java Transaction API) 為 J2EE 平臺(tái)提供了分布式事務(wù)服務(wù)。要用 JTA 進(jìn)行事務(wù)界定,應(yīng)用程序要調(diào)用 javax.transaction.UserTransaction 接口中的方法。
RMI 是 Java 的一組擁護(hù)開(kāi)發(fā)分布式應(yīng)用程序的 API。RMI 使用 Java 語(yǔ)言接口定義了遠(yuǎn)程對(duì)象,它集合了 Java 序列化和Java 遠(yuǎn)程方法協(xié)議(Java Remote Method Protocol)。它大大增強(qiáng)了 Java 開(kāi)發(fā)分布式應(yīng)用的能力。
4.單例模式
Public class Signle{
Private Signle(){
}
Pirvate static Signle signle = new Signle();
Public static Signle gets(){
Retrun signle;
}
}
5 數(shù)據(jù)庫(kù)中 left join 的意思,和在什么場(chǎng)合中應(yīng)用?
LEFT JOIN 操作用于在任何的 FROM 子句中,組合來(lái)源表的記錄。使用 LEFT JOIN 運(yùn)算來(lái)創(chuàng)建一個(gè)左邊外部聯(lián)接。左邊外部聯(lián)接將包含了從第一個(gè)(左邊)開(kāi)始的兩個(gè)表中的全部記錄,即使在第二個(gè)(右邊)表中并沒(méi)有相符值的記錄。
6 ejb 中的 sessionbean 和 entitybean 的區(qū)別和含義?
SessionBean在J2EE應(yīng)用程序中被用來(lái)完成一些服務(wù)器端的業(yè)務(wù)操作,例如訪問(wèn)數(shù)據(jù)庫(kù)、調(diào)用其他EJB組件。EntityBean被用來(lái)代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)。
對(duì)于客戶機(jī),SessionBean 是一種非持久性對(duì)象,它實(shí)現(xiàn)某些在服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯。
對(duì)于客戶機(jī),EntityBean 是一種持久性對(duì)象,它代表一個(gè)存儲(chǔ)在持久性存儲(chǔ)器中的實(shí)體的對(duì)象視圖,或是一個(gè)由現(xiàn)有企業(yè)應(yīng)用程序?qū)崿F(xiàn)的實(shí)體。
7 抽象類和接口的區(qū)別
1:一個(gè)類可以實(shí)現(xiàn)任意多的接口,但是最多只能對(duì)一個(gè)抽象類進(jìn)行子類化。
2:一個(gè)抽象類可以包括非抽象方法,而一個(gè)接口的所有方法在效果上都是抽象的。
3:一個(gè)抽象類可以申明并使用變量,而一個(gè)接口不行。
4:一個(gè)抽象類中的方法的訪問(wèn)修飾符可以使 public,internal,protected,protected internal,private,而接口成員的訪問(wèn)修飾符在默認(rèn)情況下都是 public,而且,在申明接口成員時(shí),不允許使用訪問(wèn)修飾符(甚至不能使用 public)。
5:一個(gè)抽象類可以定義構(gòu)造函數(shù),而一個(gè)接口不行。
8 對(duì)象序列化的含義
Java 序列化技術(shù)可以使你將一個(gè)對(duì)象的狀態(tài)寫(xiě)入一個(gè) Byte 流里,并且可以從其它地方 把該 Byte 流里的數(shù)據(jù)讀出來(lái)。重新構(gòu)造一個(gè)相同的對(duì)象。這種機(jī)制允許你將對(duì)象通過(guò)網(wǎng)絡(luò) 進(jìn)行傳播,并可以隨時(shí)把對(duì)象持久化到數(shù)據(jù)庫(kù)、文件等系統(tǒng)里。Java 的序列化機(jī)制是 RMI、 EJB、JNNI 等技術(shù)的技術(shù)基礎(chǔ)。
9 數(shù)據(jù)庫(kù)中的鎖包括什么?
基本的封鎖類型有兩種:排它鎖(X 鎖)和共享鎖(S 鎖).
所謂 X 鎖,是事務(wù) T 對(duì)數(shù)據(jù) A 加上 X 鎖時(shí),只允許事務(wù) T 讀取和修改數(shù)據(jù) A,…
所謂 S 鎖,是事務(wù) T 對(duì)數(shù)據(jù) A 加上 S 鎖時(shí),其他事務(wù)只能再對(duì)數(shù)據(jù) A 加 S 鎖,而不能加 X 鎖,直到 T 釋放 A 上的 S 鎖若事務(wù) T 對(duì)數(shù)據(jù)對(duì)象 A 加了 S 鎖,則 T 就可以對(duì) A 進(jìn)行讀取,但不能進(jìn)行更新(S 鎖因此又稱為讀鎖),在 T 釋放 A 上的 S 鎖以前,其他事務(wù)可以再對(duì) A 加 S 鎖,但不能加 X 鎖,從而可以讀取 A,但不能更新 A.
10 jsp 和 serverlet 的區(qū)別
(1).簡(jiǎn)單的來(lái)說(shuō) Jsp 就是含有 Java 代碼的 html,而 servlet 是含有 html 的 Java 代碼;
(2).Jsp 最終也是被解釋為 servlet 并編譯再執(zhí)行,Jsp 不過(guò)是 servlet 的另一種編寫(xiě)方式;
(3).Jsp 擅長(zhǎng)表示,servlet 擅長(zhǎng)數(shù)據(jù)處理,在 MVC 三層結(jié)構(gòu)中,Jsp 負(fù)責(zé) V(視圖),servlet 負(fù)責(zé) C(控制),各有優(yōu)勢(shì),各司其職;
11. oracle 中數(shù)據(jù)表的交集怎么表示
第一種方法:利用操作符 intersect
第二種方法: in 子句
12 jsp 頁(yè)面中如何傳遞參數(shù)
(1)直接在 URL 請(qǐng)求后添加
(2)jsp:param
(3)設(shè)置 session 和 request
13 jsp 中的 doget()和 dopost()方法的作用?
這個(gè)兩個(gè)方法都是 http 協(xié)議的方法,doget 用于傳輸數(shù)據(jù)量較小(密碼會(huì)泄露),dopost 數(shù)據(jù)量較大,
14 什么是用例?如何確定用例?
在不展現(xiàn)一個(gè)系統(tǒng)或子系統(tǒng)內(nèi)部結(jié)構(gòu)的情況下,對(duì)系統(tǒng)或子系統(tǒng)的某個(gè)連貫的功能單元的定義和描述。 一個(gè)用例可以看作是系統(tǒng)的一個(gè)功能,例如增加用戶,增加角色,查詢一個(gè)具體的一個(gè)事物,在 Ejb 的設(shè)計(jì)中,一個(gè) use case 跟 Session bean 的一個(gè)方法是對(duì)應(yīng)的(使用的 session fasade 模式),你說(shuō)的基礎(chǔ)數(shù)據(jù)管理,我會(huì)把它處理成為一個(gè)抽象用例,因?yàn)槲艺J(rèn)為基礎(chǔ)數(shù)據(jù)這個(gè)概念非常的抽象,什么是真正的基礎(chǔ)數(shù)據(jù)?例如說(shuō)一個(gè)系統(tǒng)中郵政編碼算是這個(gè)系統(tǒng)的基礎(chǔ)數(shù)據(jù),那么”郵政編碼修改”這個(gè)就應(yīng)該算是用例了.
15 活動(dòng)圖和時(shí)序圖的區(qū)別?
時(shí)序圖主要強(qiáng)調(diào)時(shí)間的順序 活動(dòng)圖主要強(qiáng)調(diào)空間上類的交互
16 什么是策略模式?什么情況下使用?
策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來(lái),而且使它們還可以相互替換 Context(應(yīng)用場(chǎng)景):
1、需要使用 ConcreteStrategy 提供的算法。
2、 內(nèi)部維護(hù)一個(gè) Strategy 的實(shí)例。
3、 負(fù)責(zé)動(dòng)態(tài)設(shè)置運(yùn)行時(shí) Strategy 具體的實(shí)現(xiàn)算法。
4、負(fù)責(zé)跟 Strategy 之間的交互和數(shù)據(jù)傳遞。
17 面向接口編程的好處
使用接口編程,易于程序擴(kuò)展,降低程序耦合性。 包括結(jié)構(gòu)清晰,類之間通信簡(jiǎn)單易懂,擴(kuò)展性好,提高復(fù)用性等等。
18 事物
事務(wù)就是一系列的操作,這些操作完成一項(xiàng)任務(wù).只要這些操作里有一個(gè)操作沒(méi)有成功,事務(wù)就操作失敗,發(fā)生回滾事件.即撤消前面的操作,這樣可以保證數(shù)據(jù)的一致性.而且可以把操作暫時(shí)放在緩存里,等所有操作都成功有提交數(shù)據(jù)庫(kù),這樣保證費(fèi)時(shí)的操作都是有效操作。