各种数据类型转换

1.immutable object(不可变对象)

不可变对象指一旦被创建,状态就不能改变。任何修改都会创建一个新的对象,如String、Integer及其他包装类。

2.(byte、short、char)---> int ---> long ---> folat ---> double

(1)自动类型转换、强制类型转换

(2)包装类过渡类型转换:Java共有8个包装类,分别是Boolean、Character、Byte、Short、Integer、Long、Float、Double,从字面上可以看出分别对应每一种基本类型。 

在进行简单数据类型之间的转换(自动转换或强制转换)时,可以利用包装类进行中间过渡。一般情况下,首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。

int a=5;
Integer b=new Integer(a);
double c=b.doubleValue();

(3)其他数据类型转换为String

char[] 和String之间的相互转换:

       char[] chars={'a','b','c'};
       System.out.println(chars.toString());
       System.out.println(new String(chars));
       System.out.println(String.valueOf(chars));
结果:
[C@4554617c
abc
abc

补充:toString详细分析

问题描述:我定义了一个类,类名是Job,当我输出Job.toString()是可以按我重载的toString方法输出的,但是如果输出jobs[]这个数组时,只会输出[Lmodel.Job;@45e228。那么这是为什么呢?怎么输出数组内容呢?

解决方法:使用Arrays.toString(jobs)来输出。,

分析: java里,所有的类,不管是java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么所有的类创建的时候,都有一个toString的方法。这个方法是干什么的呢? 
  首先我们得了解,java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。 
  当print检测到输出的是一个对象而不是字符或者数字时,那么它会去调用这个对象类里面的toString 方法,输出结果为[类型@哈希值]。

例如:

        int[] a={1,2,3};
        System.out.println(a);
        System.out.println(a.toString());
        System.out.println(Arrays.toString(a));

结果为:

[I@1b6d3586
[I@1b6d3586
[1, 2, 3]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值