亚信联创java面试题_亚信联创面试题及答案
1. Vector & ArrayList
1) Vector的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,由于線程的同步必然要影響性能,因此,ArrayList的性能比Vector好。
2) 當(dāng)Vector或ArrayList中的元素超過它的初始大小時,Vector會將它的容量翻倍,而ArrayList只增加50%的大小,這樣,ArrayList就有利于節(jié)約內(nèi)存空間。
2 jsp內(nèi)置對象:
request 用戶端請求,此請求會包含來自GET/POST請求的參數(shù)
response 網(wǎng)頁傳回用戶端的回應(yīng) 包含了響應(yīng)客戶請求的有關(guān)信息
pageContext 網(wǎng)頁的屬性是在這里管理 頁面上下文對象 提供了對JSP頁面內(nèi)所有的對象及名字空間的訪問
session 與請求有關(guān)的會話期,主要用于跟蹤對話 用來保存客戶端狀態(tài)信息 此對象代表服務(wù)器與客戶端所建立的會話
application servlet 應(yīng)用程序?qū)ο?負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時的一些全局信息application對象實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務(wù)器的啟動,直到服務(wù)器的關(guān)閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進(jìn)行操作
out 用來傳送回應(yīng)的輸出 輸出對象
config 配置對象 提供一些配置信息
page JSP網(wǎng)頁本身 頁面對象 代表了正在運(yùn)行的由JSP文件產(chǎn)生的類對象
exception對象是一個例外對象,當(dāng)一個頁面在運(yùn)行過程中發(fā)生了例外,就產(chǎn)生這個對象
Java內(nèi)存溢出
原因有很多種,比如:
1.數(shù)據(jù)量過于龐大;死循環(huán) ;靜態(tài)變量和靜態(tài)方法過多;遞歸;無法確定是否被引用的對象;
2.虛擬機(jī)不回收內(nèi)存(內(nèi)存泄漏);
說白了就是程序運(yùn)行要用到的內(nèi)存大于虛擬機(jī)能提供的最大內(nèi)存就發(fā)生內(nèi)存溢出了。
內(nèi)存溢出是指應(yīng)用系統(tǒng)中存在無法回收的內(nèi)存或使用的內(nèi)存過多,最終使得程序運(yùn)行要用到的內(nèi)存大于虛擬機(jī)能提供的最大內(nèi)存
Java異常處理機(jī)制
1. Java程序在執(zhí)行過程中如果出現(xiàn)了異常,會生成一個異常對象
2. 這個異常對象會被交給java運(yùn)行時環(huán)境(jre),這一提交過程被稱為拋出(throw)異常
3. 當(dāng)jre得到一個異常對象時,它會尋找能處理這一異常的代碼。找到能處理這一異常的方法后,jre會把這一異常對象交給這個方法進(jìn)行處理,這一過程被稱為異常捕獲
4. 如果 gre 找不到可以捕獲異常的方法,則jre將終止,相應(yīng)的java程序也將退出
C++中的虛函數(shù)和純虛函數(shù)用法 象這樣定義的就是純虛函數(shù) virtual void
f(void) = 0; 象這樣的就是虛函 virtual void f(void); 1.虛函數(shù)和純虛函數(shù)可以定義在同一個類(class)中,含有純虛函數(shù)的類被稱為抽象類(abstract class),而只含有虛函數(shù)的類(class)不能被稱為抽象類(abstract class)。
2.虛函數(shù)可以被直接使用,也可以被子類(sub class)重載以后以多態(tài)的形式調(diào)用,而純虛函數(shù)必須在子類(sub class)中實現(xiàn)該函數(shù)才可以使用,因為純虛函數(shù)在基類(base class)只有聲明而沒有定義。
3.虛函數(shù)和純虛函數(shù)都可以在子類(sub class)中被重載,以多態(tài)的形式被調(diào)用。
4.虛函數(shù)和純虛函數(shù)通常存在于抽象基類(abstract base class -ABC)之中,被繼承的子類重載,目的是提供一個統(tǒng)一的接口。 …
5. 虛函數(shù)的定義形式:virtual {method body}
純虛函數(shù)的定義形式:virtual { } = 0;
在虛函數(shù)和純虛函數(shù)的定義中不能有static標(biāo)識符,原因很簡單,被static修飾的函數(shù)在編譯時候要求前期bind,然而虛函數(shù)卻是動態(tài)綁定(run-time bind),而且被兩者修飾的函數(shù)生命周期(life recycle)也不一樣。
6. 如果一個類中含有純虛函數(shù),那么任何試圖對該類進(jìn)行實例化的語句都將導(dǎo)致錯誤的產(chǎn)生,因為抽象基類(ABC)是不能被直接調(diào)用的。必須被子類繼承重載以后,根據(jù)要求調(diào)用其子類的方法
Sizeof簡單的說其作
用就是返回一個對象或者類型所占的內(nèi)存字節(jié)數(shù)。
sizeof有三種語法形式,如下:
1) sizeof( object ); // sizeof( 對象 );
2) sizeof( type_name ); // sizeof( 類型 );
3) sizeof object; // sizeof 對象;
“protected” 修飾的方法和屬性對于包外的子類是可見的
1. 公共訪問控制符 public :如果一個類被聲明為公共類,表明它可以被所有的其
它類所訪問和引用。用 public 修飾的類的域稱為公共域。如果公共域?qū)儆谝粋€公共類,則它可以被所有的其他類所引用。
2. 私有訪問控制符 private :用 private 修飾的成員變量 ( 域 ) 只能被該類自身所訪
問,而不能被任何其它類 ( 包括子類 ) 所引用。
3. 保護(hù)訪問控制符 protected :用 protected 修飾的成員變量可以被三種類所引用:
該類自身;與它在同一個包中的其它類;在其它包中的該類的子類。使用修飾符 protected 的主要作用是允許其它包中它的子類來訪問父類的特定屬性。
C++異常處理機(jī)制
.其強(qiáng)大的能力表現(xiàn)在:
A.把可能出現(xiàn)異常的代碼和異常處理代碼隔離開,結(jié)構(gòu)更清晰.
B.把內(nèi)層錯誤的處理直接轉(zhuǎn)移到適當(dāng)?shù)耐鈱觼硖幚?化簡了處理
流程.傳統(tǒng)的手段是通過一層層返回錯誤碼把錯誤處理轉(zhuǎn)移到
上層,上層再轉(zhuǎn)移到上上層,當(dāng)層數(shù)過多時將需要非常多的判斷,
以采取適當(dāng)?shù)牟呗?
C.局部出現(xiàn)異常時,在執(zhí)行處理代碼之前,會執(zhí)行堆棧回退,即為
所有局部對象調(diào)用析構(gòu)函數(shù),保證局部對象行為良好.
D.可以在出現(xiàn)異常時保證不產(chǎn)生內(nèi)存泄漏.通過適當(dāng)?shù)膖ry,catch
布局,可以保證delete pobj;一定被執(zhí)行.
E.在出現(xiàn)異常時,能夠獲取異常的信息,指出異常原因.
并可以給用戶優(yōu)雅的提示.
F.可以在處理塊中嘗試錯誤恢復(fù).保證程序幾乎不會崩潰.
通過適當(dāng)處理,即使出現(xiàn)除0異常,內(nèi)存訪問違例,也能
讓程序不崩潰,繼續(xù)運(yùn)行,這種能力在某些情況下及其重要.
在Java語言中,static表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,
被static修飾的成員變量和成員方法獨(dú)立于該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享
01 public static int searchRecursively(int[] data, int key) {
03 if (data == null || data.length < 1)
05 return -1;
07 return doSearchRecursively(data, 0, data.length - 1, key);
09 }
12 private static int doSearchRecursively(int[] data, int low, int high,int key) {
14 if (low > high)
16 return -1;
18 int mid = (low + high) / 2;
20 if (key < data[mid]) {
22 return doSearchRecursively(data, low, mid - 1, key);
24 } else if (key > data[mid]) {
26 return doSearchRecursively(data, mid + 1, high, key);
27
28 } else {
30 return mid;
1 HashMap不是線程安全的
2 HashTable是線程安全的
HashMap完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Map interf-ace的一個實現(xiàn)。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap 就必須為之提供外同步。
在jsp中include有兩種形式,分別是Include指令:和include動作:
兩者最重要的區(qū)別:JSP指令,是將被引入的JSP與原JSP融合到一起,而這個融合過程是在翻譯階段進(jìn)行的
jsp頁面是把include指令元素()所指定的頁面的實際內(nèi)容(也就是代碼段)加入到引入它的jsp頁面中,合成一個文件后被jsp容器將它轉(zhuǎn)化成servlet。可以看到這時會產(chǎn)生一個臨時class文件和一個servlet源文件。而動作元素()是在請求處理階段引入的,會被JSP容器生成兩個臨時class文件和兩個servlet原文件。而引入的只是servlet的輸出結(jié)果,即JspWriter對象的輸出結(jié)果,而不是jsp的源代碼。
SESSION傳值
如果是要利用SESSION將2.jsp傳到1.jsp,要保證1.jsp和2.jsp在一個會話期(即同在1個session),只要用超連接的形式到1.jsp即可.如果是要提交表單的話,你form里的action屬性要是post方式,即
.在2.jsp里寫setAttribute,1.jsp寫getAttribute是絕對沒有問題的.
亞信聯(lián)創(chuàng)面試題總結(jié)2017-09-09 18:12 | #2樓
1、struts2,spring,xml,js,hibernate緩存方面的問題
2、java的垃圾回收機(jī)制最簡單的讓我說一個
4、線程和多線程
5、JAVA調(diào)用數(shù)據(jù)庫的過程
6、簡單的模式,策略(單例模式,策略,工廠之類)
7、數(shù)據(jù)庫的知識
8、簡單的Java編程(如:簡單遞歸)要運(yùn)用遞歸,就必須滿足
(1).原問題可以層層轉(zhuǎn)化為規(guī)模越來越小的子問題
(2).對于規(guī)模足夠小的問題,能夠直接得解
9、軟件生命周期這個概念
10、ssh
11、spring有哪些作用
12、strut2的內(nèi)部邏輯、spring的注入方式、用過哪些io接口
13、內(nèi)部類,異常,多態(tài)的考得很多,編程題乘法口訣表,還有輸入一段字符串,輸出字母個數(shù),數(shù)字個數(shù),空格個數(shù),特殊字符個數(shù),就這兩道
14、Java的集合,內(nèi)存管理,線程
15、緩存機(jī)制
16、MVC 原理,J2EE,如何優(yōu)化數(shù)據(jù)庫
總結(jié)
以上是生活随笔為你收集整理的亚信联创java面试题_亚信联创面试题及答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地下城与勇士黑钻售货机有什么奖励
- 下一篇: 《从临海王上荆初发新渚诗》第十五句是什么