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