写了2年代码,发现在Java中盲点知识还真不少,活到老学到老,不能大意啊,现在记录下来!
1、switch语句中的Fall-through
今天看到switch语句中可能发现Fall-through现象,一时不明白是什么意思,就学习了一下,下面代码中的第二个switch就发现了Fall-through现象。
代码:
public class FallTest { public static void main(String[] args){ int i=2; switch(i){ case 1: System.out.println("woshishuaige1"); break; case 2: System.out.println("woshishuaige2"); break; case 3: System.out.println("woshishuaige3"); break; default: System.out.println("xiaosile"); } switch(i){ case 1: System.out.println("我是帅哥1"); case 2: System.out.println("我是帅哥2"); case 3: System.out.println("我是帅哥3"); default: System.out.println("笑死了"); } } }
输出结果:
woshishuaige2
我是帅哥2
我是帅哥3
笑死了
public class FallTest { public static void main(String[] args){ int i=2; switch(i){ case 1: System.out.println("woshishuaige1"); break; case 2: System.out.println("woshishuaige2"); break; case 3: System.out.println("woshishuaige3"); break; default: System.out.println("xiaosile"); } switch(i){ case 1: System.out.println("我是帅哥1"); case 2: System.out.println("我是帅哥2"); case 3: System.out.println("我是帅哥3"); default: System.out.println("笑死了"); } } }
输出结果:
woshishuaige2 我是帅哥2 我是帅哥3 笑死了
二、静态导入
- 代码
静态导入之前的代码:
public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } }
静态导入之后的代码:
import static java.lang.System.out;//导入java.lang包下的System类,通过System类直接使用out对象。因为out是一个static PrintStream 对象,可以直接使用。 public class HelloWorld{ public static void main(String[] args){ out.println("Hello World!");//既是在这里不用再写成System.out.println("Hello World!")了,因为已经导入了out。 } }
2.import xxxx 和 import static xxxx的区别:
import xxxx一般导入的是类文件如import java.util.Scanner;
import static xxxx一般是导入静态的对象引用、常量(记住,它们是static 或final)和static方法如:import static java.lang.System.out是对静态对象的引用,进行的静态导入。
3.使用静态导入的几条原则:
1).你必须说import static,不能说static import。
2).提防含糊不清的命名static成员。例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer和Long都有一个MAX_VALUE常量,并且Java不会知道你在引用哪个MAX_VALUE。
3).你可以在static对象引用、常量(记住,它们是static 或final)和static方法上进行静态导入。
public class FallTest { public static void main(String[] args){ int i=2; switch(i){ case 1: System.out.println("woshishuaige1"); break; case 2: System.out.println("woshishuaige2"); break; case 3: System.out.println("woshishuaige3"); break; default: System.out.println("xiaosile"); } switch(i){ case 1: System.out.println("我是帅哥1"); case 2: System.out.println("我是帅哥2"); case 3: System.out.println("我是帅哥3"); default: System.out.println("笑死了"); } } }
输出结果:
woshishuaige2 我是帅哥2 我是帅哥3 笑死了