1.判断下面程序的输出结果:
Object o1 = true?new Integer(1) : new Double(2.0);
System.out.println(o1);//1.0
解析:编译的时候,与true无关,三元运算符得是相同类型,所以Integer会自动类型提升
输出:
public void test2(){
Object o2;
if(true)
o2 = new Integer(1);
else
o2 = new Double(2.0);
System.out.println(o2);//1
}
解析:不要求同一类型
输出:
2. 判断下面程序的输出结果:
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false 引用类型比地址
//println()的时候,除了char[]输出的是值,其他都是地址值
Integer m = 1;
Integer n = 1;//自动装箱
System.out.println(m == n);//true
Integer x = 128;///相当于new了一个Integer对象
Integer y = 128;//相当于new了另一个Integer对象
System.out.println(x == y);//false
解析:Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了-128 – 127范围内的整数。如果使用自动装箱的方式,给Integer赋值的范围在-128 – 127 范围内,可以直接使用数组中的元素,不用new,但如果超过就得new。
目的:提高效率
输出:
3.利用Vector代替数组处理,从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级。
提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的长度。
而向量类java.util.Vector可以根据需要动态伸缩。
创建Vector对象: Vector v=new Vector();
给向量添加元素: v. addElement(Object obj); / /obj必须是对象
取出向量中的元素: object obj=v.elementAt(0);
注意第一个元素的下标是0,返回值是object类型的。
计算向量的长度,v.size();
若与最高分相差10分内: A等: 20分内: B等:30分内: C等:其它: D等
//实例化Scanner,用于从键盘获取学生成绩
Scanner scan = new Scanner(System.in);
//创建Vector对象: Vector v=new Vector();相当于数组
Vector v = new Vector();
//for(;;) 方式,给Vector中添加数组:
int maxScore = 0;
for (; ; ) {
//当输入是负数时,跳出循环
System.out.println("请输入学生成绩(以负数代表输入结束):");
int score = scan.nextInt();
if (score < 0) {
break;
}
if (score > 150) {
System.out.println("请重新输入:");
continue;
}
//添加操作:v.addElement(object obi);
//jdk5.0之后
v.addElement(score);//自动装箱
//获取学生成绩的最大值
if (maxScore < score) {
maxScore = score;
}
}
//遍历vector,得到每个学生的成绩,并与 最大值比较,得到等级
char level;
for (int i = 0; i < v.size(); i++) {
Object obj = v.elementAt(i);//对象无法比较大小
//jdk5.0之后
int score = (int) obj;//先向下转型,再自动拆箱
//相当于int score = (Integer)obj;
if (maxScore - score <= 10) {
level = 'A';
} else if (maxScore - score <= 20) {
level = 'B';
} else if (maxScore - score <= 30) {
level = 'C';
} else {
level = 'D';
}
System.out.println("Student-" + i + "score is " + score +
",level is " + level);
}
输出: