欢迎来到天天文库
浏览记录
ID:37710721
大小:33.79 KB
页数:7页
时间:2019-05-29
《Java容易搞错的知识点-觉得基础扎实的来看》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、关于Switch代码:Java代码 1.public class TestSwitch { 2. public static void main(String[] args) { 3. int i = 2; 4. switch (i) { 5. case 1: 6. System.out.println(1); 7. case 2: 8. System.out.println(2);
2、 9. case 3: 10. System.out.println(3); 11. default: 12. System.out.println(4); 13. } 14. } 15.} publicclassTestSwitch{publicstaticvoidmain(String[]args){inti=2;switch(i){case1:System.out.println(1);cas
3、e2:System.out.println(2);case3:System.out.println(3);default:System.out.println(4);}}}结果:234分析:少了break;所以2以下的case和default都执行了一遍。二、Equals和==运算符代码:Java代码 1.public static void test() { 2. String x = "hello"; 3. String y = "world"; 4. String z = n
4、ew String("helloworld"); 5. String a = "helloworld"; 6. System.out.println("x+y equals z:" + (x + y).equals(z)); 7. System.out.println("a == z:" + (a == z)); 1. System.out.println("x == hello:" + (x == "hello")); 2. System.out.println(
5、"a == helloworld:" + (a == "hello" + "world")); 3. System.out.println("a == x+y:" + (a == (x + y))); 4.} publicstaticvoidtest(){Stringx="hello";Stringy="world";Stringz=newString("helloworld");Stringa="helloworld";System.out.println("x+yequalsz:"+(x+
6、y).equals(z));System.out.println("a==z:"+(a==z));System.out.println("x==hello:"+(x=="hello"));System.out.println("a==helloworld:"+(a=="hello"+"world"));System.out.println("a==x+y:"+(a==(x+y)));}结果:x+yequalsz:truea==z:falsex==hello:truea==helloworld:truea=
7、=x+y:false分析:1.String.equals()方法比较的是字符串的内容,所以(x+y).equals(z)为true.2.“==”比较的是String实例的引用,很明显a和z并不是同一个String实例,所以(a==z)为false.3.根据常量池的知识,容易得知(x=="hello")和(a=="hello"+"world")都为true.(常量池指的是在编译期被确定并被保存在已编译的.class文件中的一些数据。它包含了关于方法、类、接口等,当然还有字符串常量的信息。也就是所谓的持久代。
8、)4.那么(a==(x+y))为什么是false呢?这点暂点有点不大清楚。初步认为是x+y是引用相加,不能放入常量池。三、Override覆盖代码:Java代码 1.public class Parent { 2. 3. public static String say() { 4. return "parent static say"; 5. } 6. 7. public Stri
此文档下载收益归作者所有