Java基础--基本数据类型与常用运算符

基本数据类型
Java有8中基本数据类型:byte short  float int  long  double boolean  char
 整数类型:byte short int long 
 浮点型:float double 
 字符型:char
 布尔型:boolean
数值类型
 byte       1个字节     8位二进制数
 short      2个字节     16位二进制数
 float      4个字节     32位二进制数
 int        4个字节     32位二进制数 
 long       8个字节     64位二进制数
 double     8个字节     64位二进制数
非数值类型 
 boolean    1/8个字节   1位二进制数
 char       2个字节     8位二进制数
数值类型装换
 自动类型转换
   自动类型转换只能由低向高位转换,反之则不行。浮点型可以对数值进行更加精准的描述,所以任何整型都可以自动转换为浮点型。
   自动类型转换值使用于数值类型不包括boolean、char 
   数值类型自动转换的关系如下:byte->short->int->long->float->double
 强制类型转换

double num = 10.6;
int num1 = (int)num;

运算符
 赋值运算符

 int a = 1;
 int b = 2;
 System.out.println("交换之前a=" + a + "  b=" + b);
 int c = a;
 a = b;
 b = c;
 System.out.println("交换之后a=" + a + "  b=" + b);


 基本算术运算符
  +、-、*、/、%、++、--
   

    int a = 10;
    int b = 2;
    System.out.println("a+b=" + (a + b));//求出变量A和变量B相加之和
    System.out.println("a-b=" + (a - b));//求两数之差
    System.out.println("a*b=" + (a * b));//求两数之积
    System.out.println("a/b=" + (a / b));//求两数之商
    System.out.println("a%b=" + (a % b));//求余数
    System.out.println("a++=" + (a++));//求出变量A+1,需要注意的是++在后是先用在加1
    System.out.println("++a=" + (++a));//求出变量A+1,需要注意的是++在前是先加1再使用
    System.out.println("a--=" + (a--));//求出变量A-1,需要注意的是--在后是先用在减1
    System.out.println("--a=" + (--a));//求出变量A-1,需要注意的是--在前是先减1再使用


 整合小案例
 

   //取当前变量的对应的位数及位数之和
    int num = 678;
    int hundreds = num/100;
    System.out.println("百位数字是:"+hundreds);
    int tens = num%100/10;
    System.out.println("十位数字是:"+tens);
    int ones = num%10;
    System.out.println("个位数字是:"+ones);
    int sum = hundreds+tens+ones;
    System.out.println(num+"各位数字之和是:"+sum);

复合算术运算符
   +=、-=、*=、/=、%=

    int a=100;
    System.out.println(a+=10);
    System.out.println(a-=10);
    System.out.println(a*=10);
    System.out.println(a/=10);
    System.out.println(a%=10);


 关系运算符
   ==、!=、>、<、>=、<=
   关系只能用作数值类型的比较,判断条件的时候使用

int a=20;
int b=10;
if(a>b){
   System.out.println("a>b");
}

if(b<a){
 System.out.println("b<a");
}

if(b!=a){
 System.out.println("b!=a");
}


 逻辑运算符
    &、|、&&、||、!
   逻辑运算符只能用于 boolean 类型的数据运算,判断boolean数据之间的逻辑关系,包括与、或、非这3种关系。
   &与&&的区别

    int a=100;
    int b=10;
    if ((a == b) && (1 / 0 == 0)) {
        System.out.println("1");
    }else{
        System.out.println("执行不报错");
    }

执行结果是不报错 因为条件一不成立 后面的一个条件被短路了 直接就进入else中了

    int a=100;
    int b=10;
    if ((a == b) & (1 / 0 == 0)) {
        System.out.println("1");
    }else{
        System.out.println("执行不报错");}
    }

 直接报错/by zero 由此了解到&运算符判断的是所有的条件。
  |与||的区别

    int a = 100;
    int b = 100;
    if ((a == b) || (1 / 0 == 0)) {
        System.out.println("1");
    } else {
        System.out.println("执行不报错");
    }

执行结果为1 ||运算符第一个条件达到条件就成立

    int a = 100;
    int b = 100;
    if ((a == b) | (1 / 0 == 0)) {
        System.out.println("1");
    } else {
        System.out.println("执行不报错");
    }


    直接报错/by zero 由此了解到|运算符也是判断所有的条件。
  !的使用
   

       boolean c=true;
        if(c){
            System.out.println("true");
        }else{
            System.out.println("false");
        }
//输出为true

 

        boolean c=true;
        if(!c){
            System.out.println("true");
        }else{
            System.out.println("false");
        }

//    输出为false


 条件运算符
   条件运算符也叫三元运算符,可以完成给变量赋值的操作,根据不同的条件给同⼀个变量赋不同的值,
 基本语法:
 

     String name="张三";
     System.out.println("张三".equals(name)?"姓名匹配":"姓名不匹配");

位运算符
十进制和二进制的转换。
 十进制转二进制:目标数除以二,如果能除尽,则该位计作零,如果除不尽,则该位计作一,再对
  商继续除以二,以此类推,直到商为零,然后将每一位的结果进反序组合就是对应的二进制结果,
  位预算符包括:&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)
    &算符每一位的数值一一对应,若都为1,则该位计作1,否则计作0

/**
*结果输出0    20的二进制是10100
*             8的二进制位 1000 
*                       00000
*/   
 System.out.println(20&8);  


    |算符每一位的数值一一对应,只要有1个为1,该位计作1,否则计作0。
  

/**
*结果输出28   20的二进制是10100                                              
*            8的二进制位  1000 
*                       11100  
*0*2的零次方+0*2的一次方+1*2的二次方+1*2的三次方+1*2的四次方
*0+0+4+8+16=28 
*/  
System.out.println(20|8);   


    ^算符每一位的数值一一对应,相同计作0,不同计作1。                                                          

/**
*结果输出28   20的二进制是10100                                              
*              8的二进制位  1000 
*                         11100  
*0*2的零次方+0*2的一次方+1*2的二次方+1*2的三次方+1*2的四次方
*0+0+4+8+16=28 
*/
System.out.println(20^8);  
    //<<算符
    System.out.println(20<<8); //结果输出5120   结果就是20*258   
    //>>算符
    System.out.println(20>>8); //结果输出0      结果就是20/258  

如有整理的不足之处,多多指点!!
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章