各种数据类型转换

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

各种数据类型转换_第1张图片

各种数据类型转换_第2张图片

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]

 

你可能感兴趣的:(找工作)