三、经典示例及讲解:
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