Java原始数据类型

时间:2020-01-09 10:34:43  来源:igfitidea点击:

基本类型由编程语言预定义,并由保留关键字命名。基本类型表示单个值而不是对象,并且基本值不与其他基本值共享状态。 Java中有八种原始数据类型,如下所示:

  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

Java中的这些原始类型可以分为四类

  • 整数–属于此组的基本类型为byte,short,int和long。所有这些原始类型都代表全值有符号数。
  • 浮点数–此组中包含的基本类型为浮点数和带分数的双精度表示数字。
  • 字符–该组包括char,其值为16位Unicode字符。
  • 布尔值–该组包括布尔值原始类型,其值为true或者false。

Java中的原始数据类型

字节-字节数据类型是8位带符号的2的补码整数。最小值为-128,最大值为127(含)。字节数据类型对于在大型数组中保存内存很有用。

public class Test {
  public static void main(String[] args) {
    //Error - range is -128 to 127	
    //byte b = 145;
    byte b = 124;
    System.out.println("Value- " + ++b);
  }
}

输出:

Value- 125

short:short数据类型是一个16位带符号的二进制补码整数。最小值为-32,768,最大值为32,767(含)。

int:int数据类型是32位带符号的2的补码整数,最小值为-231,最大值为231-1(即-2,147,483,648至2,147,483,647)。在Java SE 8和更高版本中,可以使用int数据类型表示无符号的32位整数,其最小值为0,最大值为232-1. 包装器类Integer提供了将int数据类型用作无符号整数的方法。

long:long数据类型是64位二进制补码整数。带符号的long的最小值为-263,最大值为263-1. 在Java SE 8和更高版本中,可以使用long数据类型来表示无符号的64位long,其最小值为0,最大值为244-1. 当我们需要一个比int提供的值宽的值范围时,请使用此数据类型。

float:float数据类型是单精度32位IEEE 754浮点。

对于浮点数据类型数字,我们需要使用后缀f或者F,否则数字将被视为双精度。

float f = 4.678f;

永远不要将这种数据类型用于精确值,例如货币。需要小数部分时可以使用float类型的字段,但是不需要很高的精度。

public class Test {
  public static void main(String[] args) {		
    float f = 0.72f;
    float result = 1 - f;
    System.out.println("Value- " + result);	
  }
}

输出:

Value- 0.27999997

如我们所见,价值失去了一些精度。

double:double数据类型是双精度64位IEEE 754浮点。对于十进制值,此数据类型通常是默认选择。像float一样,这种数据类型绝对不能用于货币等精确值。

布尔值:布尔数据类型只有两个可能的值:true和false。将此数据类型用于跟踪真/假条件的简单标志。

public class Test {
  public static void main(String[] args) {	
    boolean b = false;
    if(!b){
      System.out.println("I am here!");
    }
  }
}

输出:

I am here!

char:char数据类型是单个16位Unicode字符。最小值为" \ u0000"(或者0),最大值为" \ uffff"(或者65,535(含))。

要定义字符,可以使用单引号引起来的字符,也可以提供该字符的unicode。

例如,在以下程序中,两个char变量都分配了char'a'。

public class Test {
  public static void main(String[] args) {
    char c = 'a';
    char ch = '\u0061';		
    System.out.println("Value- " + c);
    System.out.println("Value- " + ch);
  }
}

基本类型的默认值

声明字段时,不一定总是需要分配值。编译器会将已声明但未初始化的字段设置为合理的默认值。
下表总结了Java中原始数据类型的默认值。

数据类型默认值(对于字段)
byte0
short0
int0
long0L
float0.0f
double0.0d
char‘\u0000’
booleanfalse

参考:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html