java基础学习(3)

1.java中&&&的区别,&和&&都是逻辑运算符,都是判断两边为真,则语句成立. 但是&&当第一个条件不成之后,后面的条件都不执行而&则还是继续执行,直到整个条件语句执行完为止。同理 | 和||或运算一样。

2. 左移(<<)运算N位相当于完成2的N次幂运算,右移(>>)运算N位相当于除以2的N次幂运算,对于高位出现的空位,原来高位是什么就用什么补这个空位。无符号右移(>>>):右移时,无论高位的符号是什么,都用0来补。

3.两数互换,如何做最高效?

第一种

public class test {
    public static void main(String[] args){
        //两值互换
        int a=3,b=4;
        System.out.println("a="+a+",b="+b); 
        //type1:
        int c;
        c=a;
        a=b;
        b=c;
        System.out.println("a="+a+",b="+b); 
    }

第二种:

public class test {
    public static void main(String[] args){
        //两值互换
        int a=3,b=4;
        System.out.println("a="+a+",b="+b); 
        //type1:
// int c;
// c=a;
// a=b;
// b=c;
        //type2
        a = a^b;
        b = a^b;
        a = a^b;

        System.out.println("a="+a+",b="+b); 
    }

}

第三种:

public class test {
    public static void main(String[] args){
        //两值互换
        int a=3,b=4;
        System.out.println("a="+a+",b="+b); 
        //type1:
// int c;
// c=a;
// a=b;
// b=c;
        //type2
// a = a^b;
// b = a^b;
// a = a^b;
        //type3
        a = a+b;
        b = a-b;
        a = a -b;

        System.out.println("a="+a+",b="+b); 
    }

}

针对上面三种方式分析,首先方式2和3不会开劈新的内存空间,比方式1高效,但方式3不适合两个比较大的数相加减,容易越界出现精度问题,方式2,是最高效的,但可读性差,用到了异或的概念。结论:一个数A异或同一个数B两次,得到的结果还是A这样你看方式2时就会很好理解了,实际使用中推荐方式1,因为可读性好,且内存开销很廉价,另两种方式供大家赏玩。

4.下面两条语句的区别

  • 1 . System.out.print()
  • 2 . System.out.println()

1. 输出的时不换行,2. 所示会换行,在eclipse中的快捷方式是 先输入sysout 然后 alt+/,即可。

你可能感兴趣的:(java)