Java 数据类型

Java 数据类型

数据类型 是指可以存储在变量中的不同大小和数值,这些变量是根据方便和情况制定的,以涵盖所有测试案例。另外,让我们来介绍一下其他重要的疾病,主要有两种类型的语言,如下所示。

  1. 首先,一种是 静态类型的语言 ,其中每个变量和表达式的类型在编译时已经知道。一旦一个变量被声明为某种数据类型,它就不能持有其他数据类型的值。例如C、C++、Java
  2. 另一种是 动态类型的语言, 这些语言可以随着时间的推移接收不同的数据类型。例如:Ruby, Python

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

Java中的数据类型

Java有两类数据类型,其中数据类型被分隔为 ****

  1. 原始数据类型: 如布尔值、char、int、short、byte、long、float和double
  2. 非原始数据类型或对象数据类型: 如字符串、阵列等。

原始数据类型的类型

原始数据只是单一的值,没有特殊的功能。有 8种原始数据类型, 它们以表格的形式描述如下。

Java中的数据类型

让我们讨论并实现以下数据类型中的每一种。

类型1:布尔型

布尔数据类型只代表一位信息,要么是真,要么是假 ,旨在代表逻辑和布尔代数的两个真值,但布尔数据类型的大小是 虚拟机器依赖的。 布尔类型的值不能隐含地或显式地(用casts)转换为任何其他类型。但程序员可以很容易地编写转换代码。

语法

boolean booleanVar;

大小: 取决于虚拟机

值: 布尔值,如真、假

默认值: false

例子

// Java Program to Demonstrate Boolean Primitive DataType
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String args[])
    {
 
          //Boolean data type is a data type that has one of two possible values (usually denoted true and false).
        // Setting boolean to false and true initially
          boolean a = false;
        boolean b = true;
 
        // If condition holds
        if (b == true){
 
            // Print statement
            System.out.println("Hi Geek");
        }
           // If condition holds
          if(a == false){
           
          // Print statement
            System.out.println("Hello Geek");        
        }
    }
}

输出

Hi Geek
Hello Geek

类型2:字节

字节数据类型是一个8位有符号的两补整数。字节数据类型对于节省大数组的内存非常有用。

语法

byte byteVar;

大小: 1个字节(8位)。

值: -128至127

默认值: 0

例子

// Java Program to demonstrate Byte Data Type
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String args[]) {
 
        byte a = 126;
 
        // byte is 8 bit value
        System.out.println(a);
 
        a++;
        System.out.println(a);
 
        // It overflows here because
        // byte can hold values from -128 to 127
        a++;
        System.out.println(a);
 
        // Looping back within the range
        a++;
        System.out.println(a);
    }
}

输出

126
127
-128
-127

类型3:short数据类型

short数据类型是一个16位有符号的二补整数。与字节类似,在大数组中使用short来节省内存,在这种情况下,节省的内存实际上很重要。

语法

short shortVar;

大小: 2个字节(16位

值: -32, 768至32, 767(包括)。

默认值: 0

类型4:int

它是一个32位有符号的二进制补码整数。

语法

int intVar;

大小: 4个字节( 32位 )

值: -2, 147, 483, 648到2, 147, 483, 647(包括)。

注意: 默认值是’0

记住: 在Java SE 8及以后的版本中,我们可以使用int数据类型来表示一个无符号的32位整数,其数值范围为[0, 232 -1]。使用Integer类来使用int数据类型作为一个无符号的整数。

类型5:long

long的范围相当大。long数据类型是一个64位的两补整数,对于那些int类型不足以容纳所需数值的场合非常有用。

语法

long longVar;

大小: 8字节(64位)。

值: {-9, 223, 372, 036, 854, 775, 808}到{9, 223, 372, 036, 854, 775, 807}。(包括在内)

注意: 默认值是’0’。

记住: 在Java SE 8及以后的版本中,你可以使用long数据类型来表示一个无符号的64位long,它的最小值为0,最大值为264 -1。Long类还包含一些方法,如无符号比较、无符号除法等,以支持无符号long的算术操作。

类型6:float

float数据类型是一个单精度的32位IEEE 754浮点。如果你需要在大的浮点数数组中节省内存,请使用float(而不是double)。

语法

float floatVar;

大小: 4字节(32位)。

值: 最多7位十进制数字

注: 默认值是’0.0’。

例子

// Java Program to Illustrate Float Primitive Data Type
 
// Importing required classes
import java.io.*;
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing float value
 
        // float value1 = 9.87;
        // Print statement
        // System.out.println(value1);
        float value2 = 9.87f;
        System.out.println(value2);
    }
}

输出

9.87

如果我们取消对第14、15、16行的注释,那么输出就会完全不同,因为我们会面临一个错误。

Java中的数据类型

类型7:double

double数据类型是一个双精度的64位IEEE 754浮点。对于十进制数值,这种数据类型通常是默认选择。

语法

double doubleVar;

大小: 8字节或64位

数值: 最多16位小数

注意

  • 默认值为’0.0’。
  • float和double数据类型是专门为科学计算而设计的,其中近似误差是可以接受的。如果精度是最重要的问题,那么建议不要使用这些数据类型,而使用BigDecimal类。

建议在java中浏览一下四舍五入的错误。

类型8:char

char数据类型是一个单一的16位Unicode字符。

语法

char charVar;

大小: 2个字节(16位

值: ‘\u0000’ (0) 到 ‘\uffff’ (65535)

注意: 默认值是’\u0000’。

你一定想知道为什么Java中char的大小是2字节?

在其他语言中,如C/C++只使用ASCII字符,要表示所有ASCII字符,8位就足够了。但是java使用的是 Unicode系统,而不是ASCII 码系统,为了表示Unicode系统,8比特不足以表示所有的字符,所以java使用2字节的字符。 Unicode 定义了一个完全国际化的字符集,可以表示世界上大多数的书面语言。它是几十个字符集的统一,如拉丁语、希腊语、西里尔语、片假名、阿拉伯语等等。

例子

// Java Program to Demonstrate Char Primitive Data Type
 
// Class
class GFG {
 
    // Main driver method
    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

非原始数据类型或参考数据类型

参考数据类型 将包含变量值的内存地址,因为参考类型不会直接在内存中存储变量值。它们是字符串、对象、数组等。

A:字符串

字符串被定义为一个字符数组。在Java中,字符数组和字符串的区别在于,字符串被设计为在一个单一的变量中保存一个字符序列,而字符数组是一个独立的char类型实体的集合。与C/C++不同,Java字符串不以空字符结尾。

语法: 声明一个字符串

<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"); 

B:类

类是一个用户定义的蓝图或原型,对象就是从这里创建的。 它代表了一种类型的所有对象所共有的属性或方法的集合。一般来说,类的声明可以依次包括这些部分。

  1. 修饰语 :一个类可以是公共的,也可以有默认的访问。请参考Java中类或接口的访问指定符
  2. 类名: 名称应该以首字母开始(按惯例大写)。
  3. 超类(如果有的话): 类的父类(超类)的名称,如果有的话,前面要加上关键字extends。一个类只能扩展(子类)一个父类。
  4. 接口(如果有的话): 以逗号分隔的列表,列出该类所实现的接口(如果有的话),前面加上关键字 implements。一个类可以实现一个以上的接口。
  5. 主体: 类的主体由大括号{ }包围。

C:对象

它是面向对象编程的一个基本单位,代表现实生活中的实体。 一个典型的Java程序会创建许多对象,如你所知,这些对象通过调用方法进行交互。一个对象由以下部分组成。

  1. 状态 :它由一个对象的属性表示。它也反映了一个对象的属性。
  2. 行为 :它由一个对象的方法来表示。它也反映了一个对象对其他对象的反应。
  3. 身份 :它给一个对象一个独特的名字,并使一个对象能够与其他对象互动。

D:接口

像类一样,接口可以有方法和变量,但在接口中声明的方法默认是抽象的(只有方法签名,没有主体)。

  • 接口规定了一个类必须做什么,而不是如何做。它是类的蓝图。
  • 一个接口是关于能力的,比如播放器可以是一个接口,任何实现播放器的类都必须能够(或必须实现)move()。所以它规定了类必须实现的一组方法。
  • 如果一个类实现了一个接口,但没有为接口中指定的所有函数提供方法体,那么该类必须被声明为抽象的。
  • 一个Java库的例子是比较器接口。如果一个类实现了这个接口,那么它就可以用来对一个集合进行排序。

E:数组

数组是一组类型相似的变量,它们用一个共同的名字来指代。Java中的数组与C/C++中的数组工作方式不同。下面是关于Java数组的一些重要观点。

  • 在Java中,所有数组都是动态分配的。(下面讨论)
  • 由于数组在Java中是对象,我们可以用成员长度来查找它们的长度。这与C/C++不同,在C/C++中我们使用size来查找长度。
  • 一个Java数组变量也可以像其他变量一样用[]在数据类型后声明。
  • 数组中的变量是有序的,每个变量都有一个从0开始的索引。
  • Java数组也可以作为一个静态字段、局部变量或方法参数使用。
  • 数组的 大小 必须由一个int值指定,而不是long或short。
  • 数组类型的直接超类是Object。
  • 每个数组类型都实现了Cloneable和java.io.Serializable接口。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程