Java 包装类的使用,面试题,练习

方式一:连接运算
基本数据类型(包括boolean)都可以这么做

int num=10;
String str=num+"";

方式二:调用String重载的valueOf方法(形参是基本数据类型)(返回的是String)
虽然形参是基本数据类型,但由于自动拆箱,包装类对象也可以充当

float f=12.3f;
String str=String.valueOf(f);//12.3
Double d=new Double(12.4);
String str1=String.valueOf(d);

String类型转化成基本数据类型,包装类
调用包装类的parseXxx(String str)方法(比如ParseInt)

String str="123";
//int num=(int)str;不可以这么写,会报错,也不能这么写Integer num=(Integer)str
//强制类型转换要求类型之间存在子父类关系,否则编译不会过

int i=Integer.parseInt(str);//该方法返回的是int类型的值
System.out.println(i+1);//124

String srt1="true";
boolean b=Boolean.parseBoolean(srt1);
System.out.println(b);//true
//如果把str1改成"true1",输出结果就是false 

面试题:

Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);//1.0,三元运算符前后数据类型相同,Integer会扩展成Double,自动拆箱输出1.0
Object o2;
if (true)
o2 = new Integer(1);
else
o2 = new Double(2.0);
System.out.println(o2);//1,自动拆箱
public void method1() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false,因为时new出来的地址不同
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true,-128~127之间不用new,所以说他俩是相同的。
Integer x = 128;
Integer y = 128;
System.out.println(x == y);//false,大于127,所以x,y都是new出来的。
System.out.println(i);//1,自动拆箱
System.out.println(m);//1,自动拆箱
System.out.println(x);//128,自动拆箱
}

利用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等

import java.util.Scanner;
import java.util.Vector;

public class helloworld {
    public static void main(String[] args) {
                Vector c=new Vector();
                Integer n=0;
                Integer max=0;
                System.out.println("请输入学生成绩:");
                System.out.println("提示:若输出为负数则录入结束");
                while(n>=0){
                    Scanner input=new Scanner(System.in);
                    n=input.nextInt();
                    if(n>=0&&n<=100) {
                        c.addElement(n);
                    }
                }
                System.out.println(c.size());
                for(int i=0;i<c.size();i++) {
                    if(((int)c.elementAt(i))>max) {
                        max=(int)c.elementAt(i);
                    }
                    System.out.println(c.elementAt(i));
                }
                System.out.println("最高分为:"+max);
                for(int i=0;i<c.size();i++) {
                    if(max-((int)c.elementAt(i))<=10) {
                        System.out.println(c.elementAt(i)+"\tA等");
                    }else if(max-((int)c.elementAt(i))<=20) {
                        System.out.println(c.elementAt(i)+"\tB等");
                    }else if(max-((int)c.elementAt(i))<=30) {
                        System.out.println(c.elementAt(i)+"\tC等");
                    }else {
                        System.out.println(c.elementAt(i)+"\tD等");
                    }
                }
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值