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]