Java的数据类型

  • 变量
  • 整型变量 int
  • 长整型变量 long
  • 单精度浮点数 float
  • 双精度浮点数 double
  • 字符类型 char
  • 字节类型 byte
  • 短整型变量 short
  • 布尔类型变量 boolean
  • 字符串类型 String


变量

整型变量 int

在 Java 当中,最常用的也是整型变量。语法如下:

int 变量名 = 初始值;

代码示例:

int num = 10;
System.out.println(num) ;

这里就是定义一个整型变量,变量名是 num 赋初值为 10。然后输出 num 的值。

int取值范围 java java中(int)_int取值范围 java


在 Java 当中 int 是 4 个字节,和操作系统没有关系,因为 Java 的运行是在 Java 虚拟机 JVM 当中运行的,所以类型的大小和操作系统没有关系。

在 Java 当中,可以直接求出某个类型的最大值和最小值。例如求 int 类型的最大和最小值,就可以用到 Java 的包装类 Integer :

System.out.println(Integer.MAX_VALUE);  
System.out.println(Integer.MIN_VALUE);

int取值范围 java java中(int)_System_02


因为 1 个字节是 8 个比特位。所以 4 个字节就是 32 个比特位。所以能表示的大小就是:最大是 2^31-1 最小是 -2^31 。

平时使用 int 类型的时候,一定要注意大小和范围,不然就会导致溢出,溢出就会使结果不准确。

长整型变量 long

长整型变量也是整型,不过表示的范围比整型更大。当整型表示的范围不够的时候,就可以使用长整型来表示。要注意的是,定义的时候要在数字的后面加上 L 。语法格式:

long 变量名 = 初始值;

代码举例:

long a = 10L;
System.out.println(a);

int取值范围 java java中(int)_数据类型_03


Java 当中 Long 占 8 个字节,就是 64 个比特位。所以 long 的表示范围是: -2^63 到 2^63-1 。当然 long 类型也有对应的包装类 Long 。使用其包装类也可以求出对应的最大和最小值。

long a = Long.MAX_VALUE;
long b = Long.MIN_VALUE;
System.out.println(a);
System.out.println(b);

int取值范围 java java中(int)_数据类型_04


long 表示的范围比 int 大很多,所以需要很大的数的时候,就使用 long 。

单精度浮点数 float

在求小数的时候,如果对精度要求不高,就可以使用 float 。float 占 4 个字节,就是 32 个比特位,适用于对精度要求不高的场景。使用语法:

float 变量名 = 初始值;

使用的时候,也要在数字后面加上 F 来表示这是一个浮点数。代码示例:

float a = 1.0f;
System.out.println(a);

int取值范围 java java中(int)_Java_05


当然 float 也有对应的包装类:Float 。但是在项目当中使用浮点数的时候,能用 double 就用 double 因为 double 的精度更高。而且精度范围更大。下面我们来认识 double 。

双精度浮点数 double

双精度浮点数 double 用来表示小数,但是精度更高。语法如下:

double 变量名 = 初始值;

代码如下:

double a = 1.0;
System.out.println(a);

int取值范围 java java中(int)_int取值范围 java_06


我们在使用除法求小数的时候,一定要将一个除数变为 double 类型,不然就会出现下面这样的情况:

int a = 1;
int b = 2;
System.out.println(a / b);

int取值范围 java java中(int)_数据类型_07


结果是 0 ,因为除的结果应该是 0.5 但因为是 int 类型,所以结果就变成了 0 。当我们要求得小数的时候,一定要让一个除数变成小数。

Java 的 double 类型精度很高,比如下面这个例子:

double num = 1.1;
System.out.println(num * num);

int取值范围 java java中(int)_java_08


在我们的认识当中,结果应该是 1.21 但这里的结果却不一样。因为浮点数的内存布局和整数差别很大, 不能单纯的用 2^n 的形式表示数据范围。

字符类型 char

char 在 Java 当中是表示字符,语法格式:

char 变量名 = 初始值;

用单引号引起来的是表示字符,例如:

char ch = 'A';
System.out.println(ch);

int取值范围 java java中(int)_System_09


在 Java 当中,用 Unicode 表示字符,因此一个字符占两个字节,这样就能表示更多的字符,包括中文。

字节类型 byte

byte 是 Java 当中新出来的类型,大小为一个字节,8 个比特位,所以表示的范围就是 -128 到 127 。语法格式:

byte 变量名 = 初始值;

代码如下:

byte value = 10; 
System.out.println(value);

int取值范围 java java中(int)_System_10

短整型变量 short

short 也是整型的一种,不过是两个字节,表示的范围更小了,范围是:-32768 到 +32767 。语法如下:

short 变量名 = 初始值;

代码示例:

short value = 10; 
System.out.println(value);

int取值范围 java java中(int)_System_11


在项目当中使用到时候,一般不建议使用 short 因为表示的范围较小,不如直接使用 int 。

布尔类型变量 boolean

在 Java 当中 boolean 类型用来表示表达式的真假,真:true 、假:false 。表达式:

boolean 变量名 = 初始值;

代码示例:

boolean value = true; 
System.out.println(value);

int取值范围 java java中(int)_Java_12


要注意的是:

  1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
  2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.
  3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定.

字符串类型 String

把一些字符合起来就变成了字符串,String 就是表示字符串的类型。语法:

String 变量名 = “初始值”;

代码示例:

String name = "Lockey"; 
System.out.println(name);

int取值范围 java java中(int)_数据类型_13


要注意的是:Java 使用 双引号+若干字符 的方式来表示字符串。

字符串的 + 表示字符串拼接。既可以拼接字符,也可以拼接数字。例如:

String str = "Lockey";
String str1 = "qwer";
System.out.println(str+str1);
System.out.println(str+123);

int取值范围 java java中(int)_System_14


所以我们平时输出字符串的时候,就可以使用字符串的拼接来实现想要的功能。