小芳同学的错题总结(七)

1.题目:给定JAVA代码如下。编译运行,结果( )。
public static void main(String[] args){
     int i;
     System.out.println("i="+i);
}

A 编译错误   B  可以通过编译但运行时出现错误   C  正常运行,输入i=-1    D  正常运行,输入i=0

答案:A

通不过编译,在JAVA中变量先要经过初始化才能被使用,本题中i没有进行初始化,无法执行输出语句,这段代码在Eclipse会提示这样的错误。结合下面图所示The local variable i may not have been initialized(会提醒你还没初始化)

小芳同学的错题总结(七)

2.JAVA中一些常见的转义字符

题目:在Java中,表示换行符的转义字符是

A  /f  B  /n  C  /dd   D  /t

答案:B

\n  换行    \t  相当于键盘的Tab键   \\ 为\     \' 为'      \" 为"      \0为null(空字符)/f为换页

这些常见的记住就行了

3.对String中"=="的补充

在前面已经介绍了”==“时比较值和比较地址的,那我们加大一点难度,看看下面这道题

public class Test1 {
public static void main(String[] args) {
        //编译时优化
        String str1="欢迎来到java的世界";
        String str2="欢迎来到"+"java的世界";
        System.out.println(str1==str2);
        System.out.println(str1.equals(str2));
        
        String str4="欢迎来到";
        String str3=str4+"java的世界";
        System.out.println(str3==str1);
        System.out.println(str3.equals(str1));
        
}
}

请问结果会输出什么?

输出结果请看下图

小芳同学的错题总结(七)

   String str1="欢迎来到java的世界";String str2="欢迎来到"+"java的世界";理解一下这两句代码,首先在常量池中开辟一个空间存放“欢迎来到java的世界”这个字符串,在进行str2的初始化的时候,通过编译时知道赋给str2的值也是“欢迎来到java的世界”,所以就将常量池中原来已经存在的“欢迎来到java的世界”的地址给了str2,这就意味这str1和str2的值和地址都一样,所以str1==str2就为true,但是这两句就不同了String str4="欢迎来到";String str3=str4+"java的世界";程序编译时无法知道str3的值为“欢迎来到java的世界”,所以需要运行,经过程序的运行,又在常量池中重新开辟了一个空间来存放"欢迎来到",通过String str3=str4+"java的世界";进行字符串拼接再赋值给str3,所以str3的地址和str1的地址不一样,所以str3==str1为false

宝剑锋从磨砺出,梅花香自苦寒来。--冯梦龙

加油!小芳同学

上一篇:Java中的String类


下一篇:Android端抓包方法