码迷,mamicode.com
首页 > 其他好文 > 详细

类型转换问题

时间:2015-01-15 15:44:38      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

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

类型转换问题

标签:

原文地址:http://www.cnblogs.com/cfb513142804/p/4226208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!