java 中的数据类型

 Java 是静态类型的,也是一种强类型语言,因为在 Java 中,每种类型的数据(如整数、字符、十六进制、打包十进制等)都预定义为编程语言的一部分,并且为给定程序定义的所有常量或变量都必须使用其中一种 Java 数据类型进行描述。

java 中的数据类型具有不同的大小和值,可以存储在根据方便和情况制作的变量中,以涵盖所有测试用例。Java 有两类数据类型被隔离

  1. 原始数据类型: 如 boolean、char、int、short、byte、long、float 和 double。大写 B 的 Boolean 是 Java 中原始数据类型 boolean 的包装类。
  2. 非基元数据类型或对象数据类型: 如 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 );
    }
}
java 中的数据类型的图1
输出
30

现在,让我们探索不同类型的原始和非原始数据类型。

Java 数据类型

java 中的数据类型的图3 编辑

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);
    }
}
java 中的数据类型的图4
输出
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. 类

是用户定义的蓝图或原型,从中创建对象。它表示一种类型的所有对象通用的属性或方法集。通常,类声明可以按顺序包含这些组件:

  1. 修饰符 :类可以是公共的或具有默认访问权限。
  2. 类名: 名称应以首字母开头(按照惯例大写)。
  3. 超类(如果有): 类的父类(超类)的名称(如果有),前面有关键字 extends。一个类只能扩展(子类)一个父类。
  4. Interfaces(如果有): 由类实现的接口的逗号分隔列表(如果有),前面是关键字 implements。一个类可以实现多个接口。
  5. Body: 类 body 由大括号 { } 括起来。

3. 对象

object是面向对象编程的基本单元,表示现实生活中的实体。典型的 Java 程序会创建许多对象,如您所知,这些对象通过调用方法进行交互。对象包括 :

  1. 状态 :它由对象的属性表示。它还反映了对象的属性。
  2. 行为 :它由对象的方法表示。它还反映了对象对其他对象的响应。
  3. 标识 :它为对象提供唯一名称,并使一个对象能够与其他对象交互。

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 系统的最低范围。

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1
1