java毕向东day2-day3

       

1.转义字符:通过\转变后面字母或者符号的含义

        \n:换行。
        \b:退格。相当于backspace。
        \r:按下回车键。window系统,回车符是由两个字符来表示\r\n.
        \t:制表符。相当于tab键。   

        \\:转义\; \":转义"

2.面试题:short s=4;s=s+5和s+=5;有什么区别:

       第一个进行了两次运算,首先是加法然后是赋值,第二个是一次运算(+=是一个运算符),将s+5的和赋值给左边。两者的区别在于,第一个不会进行自动类型转换,因此会报精度丢失的错误,第二个虚拟机会计算s+5的值,只要在s(short)的范围中,便会进行自动类型转换赋值给s,跟short s=4一样,只要4在s的范围中便会赋值成功。

3. 逻辑运算符

^ : 异或;就是和|有点不一样。当true ^ true = false;
        true ^ true = false;
        true ^ false = true;
        false ^ true = true;
        false ^ false = false;
        ^ : 两边相同结果是false。
            两边不同结果是true

4.位运算符

<<:其实就是乘以2的移动的位数次幂;>>:就是除以2的移动的位数次幂;

>>:最高位补什么由原有数据的最高位的数字决定;-6>>2=-2;

>>>:无论最高位是什么,右移后,都用0补;

~:反码运算符,其实就是对二进制取反,~6=-7    0110取反后1111....1111-1001,这个数就是-7

^:异或(应用:加密解密):一个数异或相同的数两次,结果还是这个数  7^5^5=7

5.不使用第三方变量交换m,n的值;

(1)

        n = n + m;   //如果n和m的值非常大,容易超出int范围。
        m = n - m;
        n = n - m;

(2)

        n = n ^ m;

        m = n ^ m;//(n^m)^m;

        n = n ^ m;//n ^ (n ^ m)

6.计算二进制到十六进制的转化数字的时候,首先&15(取最低四位),如果大于10,计算char(差值+'A'),然后右移4位>>>4,  此处用>>>,避免最高位一直补有效位1!

7.(P27)三元运算符:     好处:可以简化if else代码。      弊端:因为是一个运算符,所以运算完必须要有一个结果。

8.(P29)switch 语句的四个特点

  • switch语句选择的类型只有5种: byte, short, int , char,string。
  • case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
  • 结束switch语句的两种情况:遇到break,执行到switch语句结束。
  • 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束
int x = 3;        
switch(x)        
{            
    default:               
        System.out.println("d");                
        //break;            
    case 4:                
        System.out.println("a");               
        //break;            
    case 6:               
        System.out.println("b");                
        break;            
    case 2:                
        System.out.println("c");                
        break;                               
}       

上面的结果是dab,x=3,从case 4开始匹配,最后执行default,因为没有break语句也没有执行到结尾大括号处,所以继续向下执行且不再判断case 条件,以此执行a b,遇到break语句后结束循环。

9.  if和switch语句很像。具体什么场景下,应用哪个语句呢?
        如果判断的具体数值不多,而是符合byte short int char这四种类型。
        虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。

        其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

10.函数的重载与返回值类型无关,只与参数个数和参数类型有关。

猜你喜欢

转载自blog.csdn.net/u013164983/article/details/83628909