JAVA基础复习笔记——day2

基础运算:

1,System.out.println(~6); 打印结果为-7。(暂不知道原因)

2,通过异或运算符来实现两个变量之间值的交换。

        int n = 3,m = 8;
        System.out.println("n="+n+",m="+m);
        n = n ^ m;
        m = n ^ m;//(n^m)^m;
        n = n ^ m;//n ^ (n ^ m)

        System.out.println("n="+n+",m="+m);  打印结果:n=8,m=3

另外还有两种方式可以达到值交换的目的:如下

a,通过第三方变量。
        int temp;
        temp = n;
        n = m;
        m = temp;

b,不用第三方变量。
     11 = 3 +  8;

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

3,相似运算符的区别

a,    &和&&

& : 只要两边的boolean表达式结果,有一个为false。那么结果就是false。
&&: 只有两边都为true,结果为true。

&:无论左边是true是false。右边都运算。
 &&:当左边为false时,右边不运算。

b,|和||

| : 两边只要有一个为true,结果为true。
||:只有两边都有false,结果为false。

|:两边都参与运算。
||:当左边为true。右边不运算。

4.toBinaryString()和toHexString()方法

toBinaryString 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。

System.out.println(Integer.toBinaryString(60)); 打印结果:111100

toHexString以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。

System.out.println(Integer.toHexString(60));    打印结果:3c

5,对整型常量所对应二进制位的运算

        int num = 26;
        //获取26的最低4位,通过&15;
        int n1 = num & 15;
        System.out.println(n1>9?(char)(n1-10+'A'):n1);  //out:65

        //要获取下一组四位,将60右移4位。
        int temp = num >>> 4;

        //对temp的值进行最低四位的获取。
        int n2 = temp & 15;
        System.out.println(n2>9?(char)(n2-10+'A'):n2);  //out:1

        /*
        0-9 'A' 'B' 'C' 'D' 'E' 'F'
ASCII值:    65   66  67  68  69  70
字符型常量:10   11  12  13  14  15

            12 - 10 = 2 + 'A' = (char)67;
        */

6,Switch语句的用法

int a=4,b =2;
        char ch = '+';

        switch(ch)
        {
            case '-':
                System.out.println(a-b);
            break;
            case '+':
                System.out.println(a+b);
            break;
            case '*':
                System.out.println(a*b);
            break;
            case '/':
                System.out.println(a/b);
            break;
            default:
                System.out.println("feifa");

        }

注:      

 if和switch语句很像。
        具体什么场景下,应用哪个语句呢?
        如果判断的具体数值不多,而是符合byte short int char这四种类型。
        虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
        其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

7,Java中的基本数据类型:

1)四种整数类型(byte、short、int、long):   
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127    
short:16 位,很少用,-32768 ~ 32767    int:32 位、最常用,-2^31-1~2^31  (21 亿)    
long:64 位、次常用    
注意事项:    int i=5; 
// 5 叫直接量(或字面量)即直接写出的常数。 整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。
小于 32 位数的变量,都按 int 结果计算。强转符比数学运算符优先级高。见常量与变量中的例子。

2)两种浮点数类型(float、double):
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。    
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾    
注意事项:二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)  
尾数:  . 1010100010   指数:1010   基数:2    

浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;
double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X    
float  的精度没有 long 高,有效位数(尾数)短。
float 的范围大于 long 指数可以很大。   
浮点数是不精确的,不能对浮点数进行精确比较。

3)一种字符类型(char):    
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。    
注意事项:不能为 0个字符。
转义字符:\n  换行  \r  回车  \t Tab 字符  \" 双引号    \\ 表示一个\    
两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。

4)一种布尔类型(boolean):true 真 和 false 假。

5)类型转换: char-->    自动转换:byte-->short-->int-->long-->float-->double                 
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。

6)记忆:
8位:Byte(字节型)          
16位:short(短整型)、char(字符型)          
32位:int(整型)、float(单精度型/浮点型)          
64位:long(长整型)、double(双精度型)          
最后一个:boolean(布尔类型)

以上为此篇文章全部内容,感谢你的阅读,希望对你有所帮助。

猜你喜欢

转载自blog.csdn.net/weixin_39506636/article/details/81625209