三十4、編碼轉換,怎樣實現將GB2312 編碼的字符串轉換爲ISO-8859-1 編碼的字符串。 java
String a=new String("中".getBytes("gb2312"),"iso-8859-1"); 程序員
String a=new String("中".getBytes("iso-8859-1")); 安全
具體示例參考:http://blog.csdn.net/u010142437/article/details/11808525 this
三十5、垃圾回收器的基本原理是什麼?垃圾回收器能夠立刻回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收? 編碼
對於GC來講,當程序員建立對象時,GC就開始監控這個對象的地址、大小以及使用狀況。一般,GC採用有向圖的方式記錄和管理堆(heap)中的全部對象。經過這種方式肯定哪些對象是"可達的",哪些對象是"不可達的"。當GC肯定一些對象爲"不可達"時,GC就有責任回收這些內存空間。能夠。程序員能夠手動執行System.gc(),通知GC運行,可是Java語言規範並不保證GC必定會執行。 spa
三十6、是否能夠從一個static方法內部發出對非static方法的調用? .net
準確回答是不能直接調用。 線程
由於非static方法是要與對象關聯在一塊兒的,必須建立一個對象後,才能夠在該對象上進行方法調用,而static方法調用時不須要建立對象,能夠直接調用。也就是說,當一個static方法被調用時,可能尚未建立任何實例對象。好比你在main方法中直接去調用一個非static的方法,是不能經過編譯的。可是你若是在靜態方法中,先去實例化一個對象,而後在調用其方法是能夠的。 code
三十7、寫clone()方法時,一般都有一行代碼,是什麼? 對象
super.clone(); Clone 有缺省行爲,他負責產生正確大小的空間,並逐位複製。(首先要把父類中的成員複製到位,而後纔是複製本身的成員)。
三十8、Collection和Collections的區別
1.Collection是集合的根接口,其下有set 及list,關於set和list前面已詳細介紹過。
2.Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各類集合的搜索、排序、線程安全化等操做。
三十9、Set 裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==仍是equals()? 它們有何區別?用contains來區分是否有重複的對象。仍是都不用。
Set集合元素不可重複,比較元素是否相等,要重寫equals和hashcode 。
在比較時先調用hashCode方法,若是不相同,證實不相等;若是相同,再調用equals方法,若是equals方法相同,證實相等;不相同,證實不相等。
也就是說只有調用hashCode和equals都相等的狀況下,才相等。其他均不相等。
至於equals()和==區別前面已經詳細介紹過。
Contains用來判斷集合中是否包含某個元素。
四10、用java 代碼編寫棧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
packagecom.lovo;
publicclassStack {
int[] data;
intmaxSize;
inttop;
publicStack(intmaxSize) {
this.maxSize = maxSize;
data =newint[maxSize];
top = -1;
}
/**
* 依次加入數據
*
*
@param data
* 要加入的數據
*
@return 添加是否成功
*/
publicbooleanpush(intdata) {
if(top +1== maxSize) {
System.out.println("棧已滿!");
returnfalse;
}
this.data[++top] = data;
returntrue;
}
/**
* 從棧中取出數據
*
*
@return 取出的數據
*/
publicintpop()throwsException {
if(top == -1) {
thrownewException("棧已空!");
}
returnthis.data[top--];
}
publicstaticvoidmain(String[] args)throwsException {
Stack stack =newStack(1000);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
while(stack.top >=0) {
System.out.println(stack.pop());
}
}
}
|