首页 > 代码库 > 类型转换问题
类型转换问题
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
类型转换问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。