三、经典示例及讲解:
1.分析下面移位运算符合传统运算的特点:
package com.date3; /** *事实上,经过多次调试,运行速度都差不多,只是理论上移位运算符更高效一些。 * */ public class Demo2 { public static void main(String[] args){ method1(); } private static void method2() { long time1 = System.currentTimeMillis(); int x = 0; for(int i=0;i<10000000;i++){ x = 2 * 8; } long time2 = System.currentTimeMillis(); System.out.print(x+"\t"); System.out.println("传统运算方式:"+(time2-time1)); } /** * 采用移位运算符处理 */ private static void method1() { long time1 = System.currentTimeMillis(); int x = 0; for(int i=0;i<10000000;i++){ x = 2 << 3; } long time2 = System.currentTimeMillis(); System.out.print(x+"\t"); System.out.println("移位运算方式"+(time2-time1)); } }2.理解下面三种不同的交换值的方式:
package com.date3; /** *交换值a,b值的三种方式 */ public class Demo3 { public static void main(String[] args){ method3(); } //方式一:采用中间值 private static void method1(){ int a = 3,b = 5; int c; c = a; a = b; b = c; System.out.println("a="+a+",b="+b); } //方式二:不采用中间值(不建议使用这种方法,可能会溢出) private static void method2(){ int a = 3,b = 5; a = a + b; b = a - b; a = a - b; System.out.println("a="+a+",b="+b); } //方式三:采用异或运算符^ a^b^b = a; private static void method3(){ int a = 3,b = 5; a = a ^ b; b = a ^ b; a = a ^ b; System.out.println("a="+a+",b="+b); } }3.理解局部代码块和if(true);{}方式的特点:
package com.date3; /** *由于if(true);语句后面加了分号,这个判断会执行, *但是判断后的结果不会对下面的局部代码块执行造成影响。 *后面的语句为局部代码块,它会自动加载运行,局部代码块可以用来释放内存。 *switch语句选择的类型只有四种:byte,short,int,char。 */ public class Demo4 { public static void main(String[] args) { int x; if(true); { System.out.println("hello world!"); x = 5; } System.out.println(x); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u014344668/article/details/46723869