Java基本数据类型与引用数据类型详解

Java数据类型


JAVA数据类型

基本数据类型


基本数据类型分为三大类:数值型,字符型,布尔型。其中数值型又分为整数类型和浮点类型。

布尔型boolean

boolean,表示一位的信息,返回true和false两个值,这种类型只作为一种标志来记录true/false两种情况,默认值是false

字符型char

char,是一个单一的16位Unicode字符,字符常量为用单引号括起来的单个字符,每个字符占两字节例如:

  • char eChar = "A"
    char cChar = "马"
    

char类型最小值是\u0000 (十进制等效值为 0) 最小值:Character.MIN_VALUE=0

​ 最大值是\uffff(即为 65535) 最大值:Character.MAX_VALUE=65535

整数类型

整数类型包括byte,short,int,long。

byte

byte数据类型是8位,有符号的,以二进制补码表示的整数。btye数据类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int变量的1/4;byte变量的默认数值为0。

  • byte a = 100;
    byte b = -50;
    

byte类型最小值是-128(-2^7) 最小值:Byte.MIN_VALUE=-128

​ 最大值是 127(2^7-1) 最大值:Byte.MAX_VALUE=127

short

short数据类型是16位,有符号的,以二进制补码表示的整数。short数据类型也可以像byte那样节省空间,一个short变量是int变量的1\2;short变量的默认数值为0。

  • short s = 1000;
    short r = -20000;
    

short类型最小值是-32768(-2^15) 最小值:Short.MIN_VALUE=-32768

​ 最大值是32767(2^15 - 1) 最大值:Short.MAX_VALUE=32767

int

int数据类型是32位,有符号的,以二进制补码表示的整数。一般的整型变量默认为int型,默认值为0。

  • int a = 100000;
    int b = -200000;
    

int类型最小值是-2,147,483,648(-2^31 ) 最小值:Integer.MIN_VALUE=-2147483648

​ 最大值是2,147,483,647(2^31 - 1) 最大值:Integer.MAX_VALUE=21474836477

long

long数据类型是64位,有符号的,以二进制补码表示的整数。这种类型主要使用在需要比较大整数的系统上。默认值为0L。

  • long a = 100000L;
    long b = -200000L;
    //"L"理论上不分大小写,但是小写"l"与数字"1"混淆,不容易分辨,所以最好大写
    

long类型最小值是-9,223,372,036,854,775,808(-2^63) 最小值:Long.MIN_VALUE=-9223372036854775808

​ 最大值是9,223,372,036,854,775,807(2^63 -1) 最大值:Long.MAX_VALUE=9223372036854775807

浮点类型

浮点类型包括float,double。

float

float数据类型是单精度,32位,符合IEEE 754标准的浮点数。float在储存大型浮点数组的时候可节省内存空间。浮点数不能用来表示精确的值,如货币。默认值是0.0f。

  • float f1 = 234.5f;
    

float类型最小值是1.4E-45 最小值:Float.MIN_VALUE=1.4E-45

​ 最大值是Float.MAX_VALUE=3.4028235E38 最大值:Float.MAX_VALUE=3.4028235E38

double

doublet数据类型是双精度,64位,符合IEEE 754标准的浮点数。浮点数的默认类型是double类型。double类型同样不能用来表示精确的值,如货币。默认值是0.0d。

  • double   d1  = 7D ;
    double   d2  = 7.; 
    double   d3  =  8.0; 
    double   d4  =  8.D; 
    double   d5  =  12.9867; 
    

    7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。

基本数据类型实例:

public class PrimitiveTypeTest {  
    public static void main(String[] args) {  
        // byte  
        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();  
  
        // short  
        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);  
        System.out.println("包装类:java.lang.Short");  
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
        System.out.println();  
  
        // int  
        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);  
        System.out.println("包装类:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();  
  
        // long  
        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);  
        System.out.println("包装类:java.lang.Long");  
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
        System.out.println();  
  
        // float  
        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);  
        System.out.println("包装类:java.lang.Float");  
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
        System.out.println();  
  
        // double  
        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();  
  
        // char  
        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);  
    }  
}

运行实例:

基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

引用数据类型


  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为-个特定的类型,比如Employee、Puppy等。变量一旦声明后,类型就不能被改变了。

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

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

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

类(class)

类是一个模板,它描述一类对象的行为和状态。

接口(interface)

intenface 关键字

  • 在接口中所有方法都是public abstract可省可不省

  • 理解:接口本身没有实现任何功能,接口表示一种能力 ,拓展很方便(通过此口实现具体的功能)

  • 接口是一种约定(体现在名称和注释上)

  • 接口不能包含字段,但可以包含属性使用: 实现

      接口的特性?
                  public static final
                  接口是一个特殊的抽象类
                  接口中的属性都是公共的静态的常量
                  接口中的方法都是公共的抽象方法
                  接口跟抽象类-样不能被实例化。
                  接口不能被final修饰
                  接口中没有构造方法
                  接口来定义功能
                  java中只支持单继承(只能有一个父类)
                  接口可以多实现(相当于继承了多个父类)弥补了单向继承的缺点!

数组(array)

语法:数据类型[] 数组名称= new 数据类型[数组长度];

​ 举例:int [] s1= new int[8];

​ 使用for循环和增强for循环(for-Each)遍历

​ for循环: for (int i = 0; i < size; i++) { total += myList[i]; }

  •  增强for循环:for(type element: array)
     {System.out.println(element);}
    

)弥补了单向继承的缺点!




### 数组(array)

 语法:数据类型[] 数组名称= new 数据类型[数组长度];

​     举例:int [] s1= new int[8];

​     使用for循环和增强for循环(for-Each)遍历

​     for循环: for (int i = 0; i < size; i++) { total += myList[i]; }

- ```java
   增强for循环:for(type element: array)
   {System.out.println(element);}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值