美文网首页
Java的数据类型

Java的数据类型

作者: JocelynLee33 | 来源:发表于2019-01-07 09:32 被阅读0次

      创建变量时,需要在内存中申请空间。内存管理根据变量的类型为变量分配空间,分配的空间,只能用来存储该类型的数据。

    Java的两大数据类型:

    1.内置数据类型; 

    2.引用数据类型。

    1.内置数据类型:一共8种。六种数字(四个整数型、两个浮点型),一种字符类型,一种布尔型。

    byte:8位、有符号的,以二进制补码表示的整数;

    最小值是 -128(-2^7);

    最大值是 127(2^7-1);

    默认值是 0。

    注意:byte用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。

    eg:byte a=100,byte b=-50.

    short:16位、有符号的,以二进制补码表示的整数;

    最小值是 -32768(-2^15);

    最大值是 32767(2^15 - 1);

    默认值是 0;

    注意:Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

    例子:short s = 5000,short r = -10000。

    int:32位、有符号的,以二进制补码表示的整数;

    最小值是 -2,147,483,648(-2^31);

    最大值是 2,147,483,647(2^31 - 1);

    默认值是 0 ;

    一般地整型变量默认为 int 类型;

    eg:int a=50000,int b=-400000

    long:64位、有符号的,以二进制补码表示的整数;

    最小值是 -9,223,372,036,854,775,808(-2^63);

    最大值是 9,223,372,036,854,775,807(2^63 -1);

    这种类型主要使用在需要比较大整数的系统上;

    默认值是 0L;

    例子: long a = 100000L,Long b = -200000L。

    注意:"L"理论上不分大小写,但是最好大写。

    float:单精度、32位、符合IEEE标准的浮点数;

    float 在储存大型浮点数组的时候可节省内存空间;

    默认值是 0.0f;

    浮点数不能用来表示精确的值,如货币;

    例子:float f1 = 234.5f。

    double:双精度、64 位、符合IEEE 754标准的浮点数;

    浮点数的默认类型为double类型;

    double类型同样不能表示精确的值,如货币;

    默认值是 0.0d;

    例子:double d1 = 123.4。

    boolean:表示一位的信息;

    只有两个取值:true 和 false;

    这种类型只作为一种标志来记录 true/false 情况;

    默认值是 false;

    例子:boolean one = true。

    char:单一的 16 位 Unicode 字符;

    最小值是 \u0000(即为0);

    最大值是 \uffff(即为65,535);

    char 数据类型可以储存任何字符;

    例子:char letter = 'A'

    public class PrimitiveTypeTest {

        public static void main(String[] args) {    

           System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); 

            System.out.println("包装类:java.lang.Byte"); 

            System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); 

            System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); 

            System.out.println(); 

     System.out.println("基本类型:double 二进制位数:" + Double.SIZE);

            System.out.println("包装类:java.lang.Double"); 

            System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); 

            System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); 

            System.out.println(); 

     System.out.println("基本类型:char 二进制位数:" + Character.SIZE); 

            System.out.println("包装类:java.lang.Character"); 

            // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台          System.out.println("最小值:Character.MIN_VALUE="    + (int) Character.MIN_VALUE);

    // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台          System.out.println("最大值:Character.MAX_VALUE="  + (int) Character.MAX_VALUE); 

        } 

    }

    注:Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

    2.引用数据类型

    引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。

    对象、数组都是引用数据类型。

    所有引用类型的默认值都是null。

    一个引用变量可以用来引用任何与之兼容的类型。

    例子:Site site = new Site("Runoob")。

    Java常量

    常量在运行的时候不可以被修改。

    在Java中我们使用final关键字来修饰常量,声明方式和变量类似:

    final double PI = 3.1415;

    常量名称通常大写。

    字面量可以赋给任何内置类型的变量。例如:byte a = 68;char a = 'A'

    byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。前缀 0 表示 8 进制,而前缀 0x 代表 16 进制 。 decimal = 100  ;  int octal = 0144;  int hexa = 0x64;

    Java语言支持一些特殊的转义字符序列。

    转自https://www.runoob.com/java/java-basic-datatypes.html

    自动类型转换

    整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

    转自https://www.runoob.com/java/java-basic-datatypes.html

    数据类型转换必须满足如下规则:

    1. 不能对boolean类型进行类型转换。

    2. 不能把对象类型转换成不相关类的对象。

    3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

    4. 转换过程中可能导致溢出或损失精度,例如:int i =128; byte b = (byte)i;

    因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

    5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。

    (int)23.7 == 23;        (int)-45.89f == -45

    强制类型转换

    1. 条件是转换的数据类型必须是兼容的。

    2. 格式:(type)value type是要强制类型转换后的数据类型

    public class QiangZhiZhuanHuan{ 

     public static void main(String[] args){ 

     int i1 = 123;

            byte b = (byte)i1;//强制类型转换为byte        

    System.out.println("int强制类型转换为byte后的值等于"+b);

        }

    }

    隐含强制类型转换

    1. 整数的默认类型是 int。

    2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。

    相关文章

      网友评论

          本文标题:Java的数据类型

          本文链接:https://www.haomeiwen.com/subject/jibgzftx.html