数据类型是任何编程语言最重要的基础。 这是每个初学者都应该了解的最重要的概念。 数据类型对于表示存储值的类型、性质和操作至关重要。
无论是创建简单程序还是开发任何应用程序或软件, JAVA数据类型都是必须掌握的。
在本教程中,我们将学习各种各样的 Java 数据类型。 在开始学习 Java 数据类型之前,让我们先了解一下一般的数据类型。
什么是计算机科学的数据类型 ?
在计算机科学中,数据类型是数据的一种属性,它告诉编译器或解释器该数据应该怎么样储存和使用。
数据类型限制了变量的范围。它定义了该类型的数据值如何存储在内存中,可以进行那些操作。
数据类型包含存储类别,如整数、浮点值、字符串、字符等。
例如,如果一个变量是“int”数据类型,那么它只能保存整数值。
在转向 Java 数据类型之前,您必须了解编程语言的类型。
主要有两种类型的编程语言:
第一种是静态类型语言,其中每个变量的数据类型都必须在编译时定义。也就是说,我们必须先声明变量的类型,然后才能使用它。
一旦我们声明了一个特定数据类型的变量,我们就不能再改变它的数据类型。但是,它们可以通过使用显式类型转换来转换为其他类型(不包括布尔值数据类型)。
一些静态类型语言是 C、C++、C#、Java 和 Scala。
例如,如果我们写 int num = 5;
那么这意味着变量 num 是整数类型并保存一个数值,它的类型将始终相同。
另一种是动态类型语言。在这种类型的语言中,数据类型可以随时间变化,并且在运行时检查变量。
一些动态类型语言是 Ruby、Python、Erlang、Perl、VB 和 PHP。
JAVA数据类型
Java 是一种静态类型语言。任何编程语言的基础都是它的数据类型和运算符。 Java 带有一组丰富的数据类型和运算符,这使其适用于任何类型的编程。
Java中有两类数据类型:
- 原始数据类型 (基本数据类型,内置数据类型)
- 非原始数据类型 (引用数据类型)
1.基本数据类型
编程语言预先定义了基本数据类型。基本类型是 Java 中可用的最基本的数据类型。 Java 中有 8 种基本数据类型:byte、char、short、int、long、float、double 和 boolean。
基本数据类型数据是Java 语言中数据操作的根本。基本数据类型有一个约束,即它们保存相同类型的数据并具有固定大小。原始数据类型也称为固有数据类型。我们还可以对原始数据类型执行各种操作。
下图显示了原始数据类型的完整图表——
基本数据类型分类如下:
1.1 JAVA字符
- char 类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(十进制等效值为 0);
- 最大值是 \uffff(即为 65535);
- char 数据类型可以储存任何数字,字母和符号;
- 字符两边必须有单引号包括;
- 例子:char letter = ‘A’;。
语法:
char myChar = 'A' ;
例1.8.1: 显示字符
package datatype; public class datatype { public static void main(String[] args) { // TODO Auto-generated method stub char marks,grade; marks = '8'; grade = 'B'; System.out.println("Marks: "+marks); System.out.println("Grade: "+grade); } }
结果:
Marks: 8 Grade: B
我们也可以对它进行算术运算,因为它是一个无符号的 16 位类型。 例如,考虑以下程序:
例1.8.2: 显示字符和字符操作
// char can be handled like integers public class CharClass { public static void main(String args[]) { char myChar1 = 'A'; char myChar2 = 'B'; System.out.println("myChar1: " +myChar1); System.out.println("myChar2: " +myChar2); myChar2++; // valid increment operation System.out.println("The Incremented value of myChar2: " +myChar2); } }
结果
myChar1: A myChar2: B The incremented value of myChar2: C
1.2 JAVA整数数据类型
整数类型存储整数,可能是正数或负数,并且不应包含任何小数点后位数。 有效的整数类型是 – byte, short, int 和 long;变量的值或范围决定蔡奇什么样的数据类型。
1.2.1 byte 数据类型
语法:
byte myByte1 = -100 ;
byte myByte2 = 25 ;
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例1.8.3: 显示Byte整形变量和byte整形变量的操作
public class ByteDataType { public static void main(String args[]) { byte myByte1,myByte2; myByte1 = 127; myByte2 = -48; System.out.println("Byte 1: " +myByte1); System.out.println("Byte 2: " +myByte2); myByte1++; // Looping back within the range System.out.println("Incremented Value of myByte1: " +myByte1); } }
结果
Byte 1: 127 Byte 2: -48 Incremented Value of myByte1: -128
1.2.2 short 数据类型
语法
short myShort = 6000 ;
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 – 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
例1.8.4: 显示short整形变量和short整形变量的操作
public class ShortDataType { public static void main(String args[]) { short myShort = 6000; System.out.println("myShort: " + myShort); } }
结果
myShort: 6000
1.2.3 int 数据类型
如果储存空间足够,我们更喜欢用 int 数据类型。 int数据类型是32位、有符号的以二进制补码表示的正整数或负整数。
语法:
int myNum = 700000 ;
- 最小值是 -2,147,483,648(-231);
- 最大值是 2,147,483,647(231 – 1);
- 大小: 4 bytes (32 bits)
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
在 Java 标准版 (SE) 8 及更高版本中,我们可以使用 int 数据类型来表示一个无符号的 32 位整数,其值在 [0, 232-1] 范围内。 我们使用 Integer 类来使用整数的 unsigned int 数据类型。
例1.8.5: 显示int整形变量和int整形变量的操作
public class IntDataType { public static void main(String args[]) { int myNum1, myNum2, result; myNum1 = -7000; myNum2 = 90000; result = myNum1 + myNum2; System.out.println("Number 1: " +myNum1); System.out.println("Number 2: " +myNum2); System.out.println("Number 1 + Number 2: " +result); } }
结果
Number 1: -7000 Number 2: 90000 Number 1 + Number 2: 83000
1.2.4 long 数据类型
long 数据类型是具有8节64位的以二进制补码表示的整数。
语法:
long myLong = 11000000000L ;
L必须在该值的最后
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
在 Java 标准版 (SE) 8 及更高版本中,我们可以使用 long 数据类型来表示无符号的 64 位 long,其值在 [0, 264-1] 范围内。 我们使用 Long 类来使用 unsigned long 数据类型。
例1.8.6: 显示long整形变量和long整形变量的操作
public class LongDataType { public static void main(String args[]) { long myLong1, myLong2, result; myLong1 = 100000000L; myLong2 = 200L; result = myLong1 * myLong2; System.out.println("Number 1: " +myLong1); System.out.println("Number 2: " +myLong2); System.out.println("Number 1 * Number 2: " +result); } }
结果:
Number 1: 100000000 Number 2: 200 Number 1 * Number 2: 20000000000
1.3 Java 浮点数据类型
浮点数据类型能够存储具有具有小数位的浮点值或实数值。 例如,它可以存储 5.5、100.78、2090.985 等小数。有效的浮点类型是 float 和 double。
我们将详细讨论它们。
1.3.1. float 浮点数据类型
语法
float myFloat = 256.8f ;
最后要有f或F。
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 范围:1.40239846 x 10-45 to 3.40282347 x 1038
- 最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1) - 浮点数不能用来表示精确的值,如货币;
例1.8.7: 显示float浮点变量和float浮点变量的操作
public class FloatDataType { public static void main(String args[]) { float myFloat1,myFloat2,result; myFloat1=1000.666f; myFloat2=110.77f; result=myFloat1-myFloat2; System.out.println("Number1: "+myFloat1); System.out.println("Number2: "+myFloat2); System.out.println("Number1-Number2: "+result); } }
Output:
Number1: 1000.666 Number2: 110.77 Number1-Number2: 889.896
1.3.2 double数据类型
如果内存没有问题,double数据类型是我们更喜欢十进制值浮点数据类型。 由于它的精度可以高达 15 位小数。
使用 double 进行大型计算是安全的。 我们可以选择使用后缀 d 或 D 来选择double数据类型。
也就是说,19.67 和 19.67d 是相同的。
语法
double myDouble = 256.7879837 ;
- double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
- 浮点数的默认类型为 double 类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
- 范围:4.9406564584124654 x 10-324 to 1.7976931348623157 x 10308
- 最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)
例1.8.8: 显示double浮点变量和double浮点变量的操作
public class DoubleDataType { public static void main(String args[]) { double myDouble1, myDouble2, result; myDouble1 = 48976.8987; myDouble2 = 29513.7812d; result = myDouble1 + myDouble2; System.out.println("Number 1: " +myDouble1); System.out.println("Number 2: " +myDouble2); System.out.println("Number 1 + Number 2: " +result); } }
Output: Number 1: 48976.8987 Number 2: 29513.7812 Number 1 + Number 2: 78490.6799
1.4 Boolean Types ( 布尔数据类型 )
对于布尔类型boolean
,永远只有true
和false
两个值。
布尔数据类型是使用 boolean 关键字声明的 2 两个值数据类型。 它只能存储两个可能的值,即真和假。
此数据类型用于检查真假条件。 布尔数据类型仅存储 1 位信息,但大小没有精确定义。
语法:
boolean myBool = false ;
- 空间: 运行的机器确定
- 值: true, false
- 默认值: false
- 范围:true 或 false
例1.8.9: 显示布尔变量和布尔变量的操作
public class BooleanDataType { public static void main(String args[]) { boolean myBool = true; if(myBool == true) System.out.println("I am using a Boolean data type"); System.out.println(myBool); } }
Output:
I am using a Boolean data type true