首页 > 代码库 > 类型转换问题

类型转换问题

1. 输出结果为:168888

public static void main(String[] args) {       System.out.println(8+8+"88"+8+8);}

解释:

  1.从左往右看,前边两个8都为 int 类型,8+8=16;
  2."88"为 String 类型,16 +"88" = 1688;  字符串拼接后依然是  String类型

  3.因此 1688 + 8 = 16888; 16888 + 8 = 168888;

 

2. 输出结果为:出现 NullPointException 空指针异常

static Integer i;public static void main(String[] args) {        if( i == 1) {            System.out.println("OK");        }}                

解释:

  Integer 是 int 的包装类,属于引用类型,默认值为 null;

  if ( null == 1 ) 在编译其不会报错,但运行会报错

  解决方法:1. 为 i 赋初始值;  2. 将 Integer 改为 int

 

3.输出结果: 编译期 出现 not have been initialized

static final int i;public static void main(String[] args) {        System.out.println(i);    }

解释: final 修饰的变量,要赋初始值;

4.这段代码共创建了几个对象:5

String s=”Fred”;s=s+”47”;s=s.substring(2,5);s=s.toUpperCase();return s.toString;

解释:

  String s = "Fred"  创建了一个 Fred

  s = s + "47"  创建了2个  ( s = s 会创建一个 Fred,s = s + "47"会再创建一个 Fred47)

  s=s.substring(2,5);  创建一个 ed47

  s=s.toUpperCase();  创建一个 ED47

类型转换问题