码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员--java基础学习笔记3

时间:2015-07-02 14:12:57      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:黑马程序员   java基础编程   java   

黑马程序员--java基础学习笔记3
        一、笔记内容概述:
            比较运算符&逻辑运算符、位运算符、移位运算符、三元运算符、if语句、局部代码块、switch语句、while语句、do-while语句、for循环语句、循环结构的使用场景。
        二、常用内容介绍:
                1.>>>无符号右移,数据进行右移时,高位出现的空位,无论原来的最高位是什么,空位都用0补。
                2.^运算符的特点:
                    true ^ true = false;
                    true ^ false = true;
                    false ^ true = true;
                    true ^ true = false;
                    ^ 符号的两边结果相同,结果就是false。
                3.&和&&运算结果是一样的,但是运算过程中有小区别:
                    3>5 && 3<6      3>5 & 3<6                  
                    &:无论左边的结果是什么,右边都参与运算。
                    &&:当左边为false时,右边就不参与运算了,提高了运算效率。
                4.if语句和switch语句的区别:
                    if:
                    a.对于具体的值进行判断。
                    b.对区间判断。
                    c.对运算结果是boolean类型的表达式进行判断。
                    switch:
                    a.对具体的值进行判断。
                    b.值的个数通常都是固定的。
                    对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高。不过一般情况下,都是用if语句,因为switch语句功能扩展性较差,且书写麻烦(关键字较多),而if语句相对灵活,if语句常用语开发。
                5.while与for的区别:
                    while与for可以互换,区别在于for为了循环而定义的变量在for循环结束后就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。
                6.for循环执行的顺序:
                      for(初始化表达式;循环条件表达式;循环后的操作表达式)

技术分享

        三、经典示例及讲解:

            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);
	}
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

黑马程序员--java基础学习笔记3

标签:黑马程序员   java基础编程   java   

原文地址:http://blog.csdn.net/u014344668/article/details/46723869

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!