以下结合实际程序谈下我的学习心得:
1.考察数组作为参数时内存地址的变化
public class Arrayparameters
{
public static void changeOrNot(int i,double x[])
{
i=-1;
x[0]=-2.0;
double y[]=x;
y[1]=-3.0;
double z[]={-4,-4,-4};
x=z;
}
public static void main(String[] args)
{
int k=1;
double A[]={1.0,2.0,3.0};
changeOrNot(k,A);
System.out.println("k: "+k);
System.out.println("A[0] "+A[0]);
System.out.println("A[1] "+A[1]);
System.out.println("A[2] "+A[2]);
}
}
最后的结果为:A[0]=-2.0,A[1]=-3.0,A[2]=3.0
2.浮点数组在为初始化时默认值为0
public class ArrayList
{
public static void main(String[] args)
{
float f1[],f2[];
f1=new float[10];
f2=f1;
System.out.println("f2[0]= "+f2[0]);
}
}
3.switch分支语句
public class SwitchTest
{
public static void main(String[] args)
{
System.out.println("value= "+switchIt(4));
}
public static int switchIt(int x)
{
int j=1;
switch(x)
{
case 1=j++;
case 2=j++;
case 3=j++;
case 4=j++;
case 5=j++;
default:j++;
}
return j+x;
}
}
运行结果:value=8,从case4执行没有break语句一直到结束
int i=9;
switch(i)
{
default:System.out.println("default");
case 0:System.out.println("zero");
break;
case 1:System.out.println("one");
break;
case 2:System.out.println("two");
break;
case 3:System.out.println("three");
break;
}
运行结果:default zero,9不在任何case,因此先执行default,在顺序执行case0,然后break。
switch((int)i){defalut:
System.out.println("Hello");}
问i可以是什么类型的变量
答案是char int byte short float double,嘿嘿原因自己想吧
4.java中的++,——运算
int x,a=2,b=3,c=4;
x=++a+b+++c++;
运行结果为:a=3,b=4,c=5,x=10,原因x=(++a)+b+c,弄清算术运算符的优先级和自左向右还是自右向左运算就可以搞定这一切了