小芳同学的错题总结(七)
作者:互联网
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,str3,str2,str1,错题,小芳,欢迎 来源: https://blog.csdn.net/qq_50074343/article/details/120589415