java 中的数据类型
更新于2024年12月18日 11:29
Java 是静态类型的,也是一种强类型语言,因为在 Java 中,每种类型的数据(如整数、字符、十六进制、打包十进制等)都预定义为编程语言的一部分,并且为给定程序定义的所有常量或变量都必须使用其中一种 Java 数据类型进行描述。
java 中的数据类型具有不同的大小和值,可以存储在根据方便和情况制作的变量中,以涵盖所有测试用例。Java 有两类数据类型被隔离
- 原始数据类型: 如 boolean、char、int、short、byte、long、float 和 double。大写 B 的 Boolean 是 Java 中原始数据类型 boolean 的包装类。
- 非基元数据类型或对象数据类型: 如 String、Array 等。
与使用 ASCII 字符集的语言(如 C 或 C++)不同 ,Java 使用 Unicode 字符集来支持国际化。Unicode 需要 8 位以上的位来表示来自不同语言的各种字符,包括拉丁语、希腊语、西里尔语、中文、阿拉伯语等。因此,Java 使用 2 个字节来存储一个字符,确保它可以表示任何 Unicode 字符。
// Java Program to demonstrate int data-type
import java.io.*;
class GFG
{
public static void main (String[] args)
{
// declaring two int variables
int a = 10;
int b = 20;
System.out.println( a + b );
}
}
30
现在,让我们探索不同类型的原始和非原始数据类型。
JAVA 中的数据类型
Java 中的原始数据类型
原始数据只是单个值,没有特殊功能。有 8 种原始数据类型。它们在下面以表格格式描述如下:
类型
描述
违约
大小
示例文本
值范围
原始数据类型
1. boolean 数据类型
boolean 数据类型表示一个逻辑值,该值可以是 true 或 false。从概念上讲,它表示单个位信息,但虚拟机使用的实际大小取决于实现,在实践中通常至少是一个字节(八位)。boolean 类型的值不会使用强制转换隐式或显式转换为任何其他类型。但是,如果需要,程序员可以编写转换代码。
语法:
boolean booleanVar;
大小 :取决于虚拟机(通常为 1 字节,8 位)
2. byte 数据类型
byte 数据类型是 8 位有符号 2 的补码整数。byte 数据类型对于在大型数组中节省内存非常有用。
语法:
byte byteVar;
大小 : 1 字节 (8 位)
3. short 数据类型
short 数据类型是 16 位有符号 2 的补码整数。与 byte 类似,当内存节省很重要时,尤其是在空间受限的大型数组中,使用 short。
语法:
short shortVar;
大小 : 2 字节 (16 位)
4. int 数据类型
它是一个 32 位有符号 2 的补码整数。
语法:
int intVar;
大小 : 4 字节 ( 32 位 )
请记住: 在 Java SE 8 及更高版本中,我们可以使用 int 数据类型来表示无符号 32 位整数,其值在 [0, 2 32-1].使用 Integer 类将 int 数据类型用作无符号整数。
5. long 数据类型
long 数据类型是 64 位有符号 2 补码整数。当 int 不够大,无法容纳值时,使用它,从而提供更宽的范围。
语法:
long longVar;
大小 : 8 字节(64 位)
请记住: 在 Java SE 8 及更高版本中,您可以使用 long 数据类型来表示无符号的 64 位 long,其最小值为 0,最大值为 2 64-1.Long 类还包含比较 Unsigned、除以 Unsigned 等方法,以支持 unsigned long 的算术运算。
6. float 数据类型
float 数据类型是单精度 32 位 IEEE 754 浮点。如果需要在大型浮点数数组中节省内存,请使用 float (而不是 double)。float 数据类型的大小为 4 字节(32 位)。
语法:
float floatVar;
大小 : 4 字节(32 位)
7. double 数据类型
double 数据类型是双精度 64 位 IEEE 754 浮点。对于十进制值,此数据类型通常是默认选择。double 数据类型的大小为 8 字节或 64 位。
语法:
double doubleVar;
大小 : 8 字节(64 位)
注: float 和 double 数据类型都是专为科学计算而设计的,其中近似误差是可以接受的。如果准确性是首要考虑因素,则建议不要使用这些数据类型,而应使用 BigDecimal 类。
建议在 java 中四舍五入错误。
8. char 数据类型
char 数据类型是单个 16 位 Unicode 字符,大小为 2 字节(16 位)。
语法:
char charVar;
大小 : 2 字节 (16 位)
// Java Program to Demonstrate Char Primitive Data Type
class GFG
{
public static void main(String args[])
{
// Creating and initializing custom character
char a = 'G';
// Integer data type is generally
// used for numeric values
int i = 89;
// use byte and short
// if memory is a constraint
byte b = 4;
// this will give error as number is
// larger than byte range
// byte b1 = 7888888955;
short s = 56;
// this will give error as number is
// larger than short range
// short s1 = 87878787878;
// by default fraction value
// is double in java
double d = 4.355453532;
// for float use 'f' as suffix as standard
float f = 4.7333434f;
// need to hold big range of numbers then we need
// this data type
long l = 12121;
System.out.println("char: " + a);
System.out.println("integer: " + i);
System.out.println("byte: " + b);
System.out.println("short: " + s);
System.out.println("float: " + f);
System.out.println("double: " + d);
System.out.println("long: " + l);
}
}
char: G
integer: 89
byte: 4
short: 56
float: 4.7333436
double: 4.355453532
long: 12121
非基元 (引用) 数据类型
Non-Primitive (Reference) 数据类型 将包含变量值的内存地址,因为引用类型不会将变量值直接存储在内存中。它们是字符串、对象、数组等。
1. 字符串
定义为字符数组。Java 中字符数组和字符串之间的区别在于,字符串旨在在单个变量中保存字符序列,而字符数组是单独的 char 类型实体的集合。与 C/C++ 不同,Java 字符串不以 null 字符结尾。
语法: 声明字符串
<String_Type> <string_variable> = “<sequence_of_string>”;
例:
// Declare String without using new operator
String s = "GeeksforGeeks";
// Declare String using new operator
String s1 = new String("GeeksforGeeks");
2. 类
是用户定义的蓝图或原型,从中创建对象。它表示一种类型的所有对象通用的属性或方法集。通常,类声明可以按顺序包含这些组件:
- 修饰符 :类可以是公共的或具有默认访问权限。
- 类名: 名称应以首字母开头(按照惯例大写)。
- 超类(如果有): 类的父类(超类)的名称(如果有),前面有关键字 extends。一个类只能扩展(子类)一个父类。
- Interfaces(如果有): 由类实现的接口的逗号分隔列表(如果有),前面是关键字 implements。一个类可以实现多个接口。
- Body: 类 body 由大括号 { } 括起来。
3. 对象
object是面向对象编程的基本单元,表示现实生活中的实体。典型的 Java 程序会创建许多对象,如您所知,这些对象通过调用方法进行交互。对象包括 :
- 状态 :它由对象的属性表示。它还反映了对象的属性。
- 行为 :它由对象的方法表示。它还反映了对象对其他对象的响应。
- 标识 :它为对象提供唯一名称,并使一个对象能够与其他对象交互。
4. 界面
与类一样, 接口可以具有方法和变量,但在接口中声明的方法默认是抽象的(只有方法签名,没有正文)。
- 接口指定类必须做什么,而不是如何操作。它是该类的蓝图。
- Interface 是关于功能,比如 Player 可能是一个接口,任何实现 Player 的类都必须能够(或必须实现)move()。因此,它指定了类必须实现的一组方法。
- 如果类实现接口,并且不为接口中指定的所有函数提供方法体,则必须将该类声明为 abstract。
-
- Java 库示例是 Comparator Interface 。如果一个类实现了这个接口,那么它就可以用来对集合进行排序。
-
5. 数组
是一组由通用名称引用的类似类型的变量。Java 中的数组与 C/C++ 中的工作方式不同。以下是有关 Java 数组的一些要点。
- 在 Java 中,所有数组都是动态分配的。(讨论如下)
- 由于数组在 Java 中是对象,我们可以使用 member length 来找到它们的长度。这与 C/C++ 不同,在 C/ 中,我们使用 size 来查找 length。
- Java 数组变量也可以像其他变量一样在数据类型后使用 [] 声明。
- 数组中的变量是有序的,每个变量都有一个以 0 开头的索引。
- Java 数组还可以用作静态字段、局部变量或方法参数。
- 数组的大小必须由 int 值指定,而不是 long 或 short。
- 数组类型的直接超类是 Object。
-
- 每个数组类型都实现接口 Cloneable 和 java.io.Serializable。
-
要记住的关键点
- 强类型:Java 在编译时强制执行严格的类型检查,从而减少运行时错误。
- 内存效率:根据所需的范围和精度选择正确的数据类型有助于高效的内存管理。
- 字符串的不变性:Java 中的字符串一旦创建就无法更改,从而确保多线程环境中的安全性。
- 数组长度:Java 中数组的长度一旦声明就固定了,可以使用 属性
length
了解 Java 的数据类型是高效编程的基础。每种数据类型都有特定的用例和约束,因此必须为手头的任务选择正确的类型。这确保了最佳的内存使用和程序性能,同时利用 Java 的强大类型系统在开发过程的早期捕获错误。
签出: Java 数据类型测验
常见问题解答 – Java 数据类型
Java 中的数据类型是什么?
数据类型具有不同的大小和值,可以存储在根据方便和情况制作的变量中,以涵盖所有测试用例。
Java 中使用的 8 种数据类型是什么?
java 中有 8 种主要的原始数据类型,如下所述:
- 布尔
- 字节
- 煳
- 短
- int
- 长
- 浮
- 双
哪个是 Java 中的原始类型?
原始数据类型是 java 中可以存储单个值且不提供任何特殊功能的类型。
为什么 char 在 Java 中使用 2 个字节,什么是 \u0000?
Char 在 java 中使用 2 个字节,因为它使用 Unicode 系统而不是 ASCII 系统。“\u000” 是 Unicode 系统的最低范围。
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP





















