包装类(类型之间的相互转化)

包装类

  • 包装类在java.lang中作为基础类使用,它们的出现是为了解决基本类型不能
  • 直接参与面向对象开发,让基本类型可以以"对象"的形式存在.
   int a = 123;
    Integer i1 = new Integer(a);        //将基本类型转换为引用类型    
    Integer i2 = Integer.valueOf(a);

包装类有一个静态方法:parseXXX可以将字符串转换为基本类型
前提是该字符串正确描述了基本类型可以保存的值,否则会抛出异常:
NumberFormatException:数字格式异常

String num = "123";
int d = Integer.parseInt(num);
System.out.println(d);
double dou = Double.parseDouble(num);
System.out.println(dou);
   long lmax = Long.MAX_VALUE;   //long的最大值
    System.out.println(lmax);
    long lmin = Long.MIN_VALUE;   //long的最小值
    System.out.println(lmin);

    double dmax = Double.MAX_VALUE;  //double的最大值
    System.out.println(dmax);
    double dmin = Double.MIN_VALUE;  //double的最小值
    System.out.println(dmin);

JDK1.5推出时推出了一个新的特性:自动拆装箱

  • 该特性是编译器认可的而不是java虚拟机认可的,当编译器在编译代码时发现有基本类型与
  • 引用类型相互赋值操作时会自动添加转换代码,这样我们在源代码中就不在需要编码来完成相互转换
 int d = 123;
    /*
    下面的代码会触发:自动装箱特性,编译器会补全转换代码
    Integer i = Integer.valueOf(d);
     */
    Integer i = d;
    /*
    自动拆箱
    d = i.intValue();
     */
    d = i;
    System.out.println(i);
    System.out.println(d);

在这里插入图片描述

Point p = new Point(1,2);

    开发中将一个对象内容输出到控制台的操作很频繁,而这个方法输出对象
    时输出的是这个对象toString方法返回的字符串.
    Object中定义了这个方法,所以java中所有的类都有toString,但如果
    不妥善重写,则使用Object提供的该方法时会返回的字符串格式为:
    类名@地址,这个对我们开发的帮助不大
:java API提供类大多已经重写了toString方法,通常只有我们自己
    定义类在使用它不理想是需要自行重写这个方法
     */
    System.out.println(p);
    /*
        java中任何类型与字符串连接结果都是字符串,而实际操作是将调用
        该类型实例的toString方法并将返回的字符串与字符串进行连接操作
     */
    String line = "这个对象是"+p;
    System.out.println(line);

    /*
    Object提供了一个方法equals,目的就是比较两个对象的"内容"是否相同
    对于引用类型变量而言保存的是对象的地址,"=="比较变量的值,因此
    就是比较地址,只有两个引用类型变量保存的地址相同(指向同一对象)时
    才会为true
    而equals并不关心它们是否为同一对象,判断的是它们的内容是否相同

    注:Object的equals内部用"=="实现,因此如果之类不重写这个方法则没有意义.
     */
    Point p2 = new Point(1,2);
    System.out.println(p==p2); //比地址,判定是否为同一个对象
    System.out.println(p.equals(p2));
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值