java中的基本数据类型

什么是数据类型

java是一门强类型的语言,所有的数据都有其制定的类型。

java中基本数据类型的分类

基本数据类型:数值型        
                 整数型           
                 字节型: byte            
                 短整形:short           
                 整形:int           
                 长整型:long        
           小数型           
                单精度:float            
                双精度:double    
           逻辑型        
                boolean 
           字符型       
                  char

基本数据类型知识点

  • 基本数据类型所占空间及范围
符号         所占空间          范围
byte          1字节          -128-127
short         2字节          -32768-32767
int           4字节           +-21亿左右
long          8字节           非常大
float         4字节           精确度:小数点后 7-8位
double        8字节            精确度:小数点后 15-16位
boolean       1位(分配1字节)    true/false
char          2字节            0-65535
  • 基本数据类型之间的转换

整数

public class Demo02{    
    public static void main(String[] args){        
        //1:声明一个byte类型的变量       
        byte num = 120;
        System.out.println("byte类型的变量num的值是:num="+num);                
        //2:声明一个short类型的变量        
        short sh = 10000;        
        System.out.println("shrot类型的变量sh = "+sh);               
        //3:声明一个int类型的变量        
        int in = 123456789;        
        System.out.println("int类型的变量in = "+in);                
        //4:声明一个long类型的变量        
        long l = 12345678900L;       
        System.out.println("long类型的变量l = "+l);   
    }
}

tips:

所有的整数默认的数据类型是int,当把超过int范围的字面值
  赋值给long类型变量时,需要在字面值后加"l"或者"L"               
 注意当给byte和shot赋值时,只要数值不超过byte和short的取值范围,就可以正常赋值。    
 对于某些特别大的整数值,long类型也是无能为力的,后期通过BigDecimal、BigInteger去存储。

小数

public class Demo02{    
    public static void main(String[] args){        
        // 正常赋值小数        
        double d = 12.1;        
        //d = .5;        
        d = 0.000314;        
        System.out.println("d的值是:"+d);        
        //通过科学计数法给d重新赋值        
        d = 3.14E-4;        
        System.out.println("d的值是:"+d);           
    } 
}

tips:

计算机存储小数是一个近似值。    
 小数:        
      双精度:            符号      精确程度            空间             
                       double      小数点后15-16位      8字节        
     单精度            float        小数点后7-8位        4字节
     java中的小数默认类型是double,当把一个double类型的字面值   
     赋值给float变量存放的时候,要在字面值后加"F""f"    
     System.out.println(10/0.0); 正无穷    
     System.out.println(-10/0.0);负无穷    
     System.out.println(-0.0/-0.0==0.0/0.0);NaN

逻辑类型

public class Demo03{    
    public static void main(String[] args){        
        //声明一个boolean类型的变量        
        boolean flag = true;       
        System.out.println(flag);       
        //声明一个int类型的变量存放3和5的累加和        
        byte b = 3;       
        short s = 5;        
        int num = b+s+flag;                
    }
}

tips:

java规范  编写代码过程中要遵守的    
 jvm规范  虚拟机规范 hotspot  boolean类型存储还是1和0
    逻辑型 (布尔型)        符号              所占空间                   范围        
                        boolean        1位(实际存储的是1个字节)      true/false
字符型:
        boolean 类型的变量不能参与四则运算
适用场景:       
        逻辑判定,流程控制中有大用

字符型

public class Demo04{    
    public static void main(String[] args){        
        //声明一个char类型的变量        
        char ch = 97;//将字符A赋值给了char类型变量ch存放       
        System.out.println(ch+1);                
        // java采用的是unicode u十进制的数        
        ch = '\u0011';        
        System.out.println("---"+ch+"---");                
        //输出'       
        ch = '\'';
        System.out.println("---"+ch+"---");                
        //使用转义字符       
        ch = '\t';       
        System.out.println("---"+ch+"---");    
        
        System.out.println("abcdefgh\tigklmn");     
        System.out.println("abcdefghigklmn");             
        System.out.print("\n");     }
}

tips:

字符型:        符号    空间    范围      
               char     2      0-65535  
注意事项:        
       1:给char类型变量赋值时一定要注意是单引号引起来的单个字符。       
       2: '' 字符  "" 字符串 java中的字符串的类型是String       
       3: java采用unicode 可以使用中文       
       4:char类型是可以直接赋值整数的 包含0的正整数       
       5:char类型是可以参与四则运算的        
       6: 使用\ u + 十六进制数即可  (不常用)        
       7: 转义字符,           
               转变含义,在java中有些符号已经有了自己的用法,           通过转义字符,转变其含义。           \+要转义的字符

类型转换

自动类型转换

  • 示例代码:
public class Demo06{   
    public static void main(String[] args){       
        //声明一个byte类型的变量        
        byte b = 12;               
        // 声明一个int类型的变量存放byte类型的数据       
        int num = b; //把变量b中的值赋值给int类型的变量num存放                
        //声明一个boolean类型的变量       
        boolean f = true;                
        //num = f;                
        //声明一个char类型        
        char ch = 'a';        
        num = ch;               
        system.out.println(num);    
    } 
}
  • tips:
boolean类型是不可以进行类型转换的       
自动转换:            小变大            大类型 变量名 = 小类型的值;                                    char                        
              |           
byte->short->int->long->float->double

强制类型转换

  • 代码示例:
  • tips:
强制转换:(强转有风险,转换需谨慎)          
大变小            小类型 变量名 = (小类型)大类型的变量;           
如果大类型的变量的值超过了小类型的范围,结果有问题。