一: 寫入如下程序的執行結果
1、
public class Test {
int i = 1;
int j = 3;
public Test(int m, int n){
this.i = m;
this.j = n;
}
public Test(){}
public static void main(String[] args) {
new Test()();
}
public void test(){
new Test(4,2);
tln("i="+i+",j="+j);
}
}
我寫的是 i=2, j=4。 而實際上的執行結果爲i=1, j=3。
2、
public class A {
public int Avar;
public A(){
tln("AAA");
doSomething();
}
public void doSomething(){
Avar = 1111;
tln("mething()");
}
}
public class B extends A {
public int Bvar = 2222;
public B(){
tln("BBBB");
doSomething();
tln("Avar="+Avar);
}
public void doSomething(){
tln("Bvar="+Bvar);
}
public static void main(String[] args) {
new B();
}
}
我寫的.執行結果爲:
AAA
mething()
BBB
2222
1111
而實際執行結果爲:
AAA
Bvar=0
BBB
Bvar=2222
Avar=0
3、 Interger integer;
if(integer==42){ do something ... }。 次代碼片段在執行時拋 空指針異常。 因爲Integer爲非基本類型的變量, 其默認值爲null, 所以 .... ...
4、
/**
* 測試 string 的
*/
public static void main(String[] args) {
String str1 = new String("A");
String str2 = new String("B");
operateString(str1, str2);
tln("str1="+str1+",str2="+str2);
int x=10;
operateInt(x);
tln(x);
StringBuffer str3 = new StringBuffer("A");
StringBuffer str4 = new StringBuffer("B");
operateStringBuffer(str3, str4);
tln("str3="+str3+",str4="+str4);
testOperator();
}
public static void operateString(String a, String b){
at(b);
b=a;
}
public static void operateInt(int x){
x = x+100;
}
public static void operateStringBuffer(StringBuffer a, StringBuffer b){
nd("B");
b=a;
}
輸出結果爲: A, B, 10, AB, B. 此題給出了正解。
5、 String 類型的變量也支援重載符: “+=”。
6、 編程題, 實現 歸併排序算法:
public class MergeSort2 {
public int[] sort(int[] data) {
int[] temp=new int[th];
mergeSort(data,temp,0,th-1);
return data;
}
private void mergeSort(int[] data,int[] temp,int l,int r){
int mid=(l+r)/2;
tln(l+", "+mid+", "+r);
if(l==r) return ;
mergeSort(data,temp,l,mid);
mergeSort(data,temp,mid+1,r);
for(int i=l;i<=r;i++){
tln("i="+i);
temp[i]=data[i];
}
int i1=l;
int i2=mid+1;
for(int cur=l;cur<=r;cur++){
if(i1==mid+1)
data[cur]=temp[i2++];
else if(i2>r)
data[cur]=temp[i1++];
else if(temp[i1]<temp[i2])
data[cur]=temp[i1++];
else
data[cur]=temp[i2++];
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] datas={1,21,34,79,98,23,68,2,3,8,6,33,6,7,87,32,24,6,776};
MergeSort2 mergeSort=new MergeSort2();
datas=(datas);
for(int i=0;i<th;i++){
t(datas[i]+",");
}
}
}