intValue()
1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有intValue方法,Double,Long等都有此方法。2.此方法的意思是:输出int数据。每个数值类中具体的实现是不同的。例如:
Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue方法又不一样的
Double s = 2.5; Float k = 2.7f; double kk = 2.9; Double double1 = new Double(2.9); System.out.println(k.intValue()); System.out.println(s.intValue()); 输出结果: 2 2
valueOf()
String 类中的valueOf():
static String valueOf(boolean b)
返回 boolean 参数的字符串表示形式。
static String valueOf(Object obj)
返回 Object 参数的字符串表示形式。
表示的是将( )中的 值, 转换 成 字符串类型
eg.
String a = "abcdefbac"; String kkk = a.valueOf(true); System.out.println(kkk.getBytes()); System.out.println(Arrays.toString(kkk.getBytes())); 输出结果: [B@4554617c [116, 114, 117, 101]
原因分析:
因为a.valueOf(true) 与 a 其实没有关系(String a = null ,也是可以的 ),主要是将()中的值变成字符串类型。
字符串类型通过.getbytes() 转成 字符数组输出的是:字符数组的首地址的 hashcode 值
通过Arrays.toString()方法 可以输出 字符数组中的内容。
数据类型的转换方式:
所以有如下转换方式:
Double s = 2.5; System.out.println(s.valueOf(2.5f)); System.out.println(s.valueOf("2")); 输出结果: 2.5 2.0 Float k = 2.7f; System.out.println(k.valueOf(2.9f)); System.out.println(k.valueOf("2.533435")); System.out.println(k.valueOf((float) 2.5d)); 输出结果: 2.9 2.533435 2.5 Integer aa = 9; System.out.println(aa.valueOf("23.0")); 输出结果: 报错Exception in thread "main" java.lang.NumberFormatException: For input string: "23.0" 原因:因为"23.0" 默认是double类型的,而aa类型是int。又因为"23.0"是字符串,无法强制转换 只能是
System.out.println(aa.valueOf((int)23.0));强转类型必须和aa一致