【JavaSE专栏5】Java 基本数据类型和取值范围

简介: 【JavaSE专栏5】Java 基本数据类型和取值范围

一、Java 的数据类型

在计算机科学和计算机编程中,数据类型或简单的类型是数据的一个属性,它告诉编译器或解释器程序员打算如何使用数据。大多数编程语言支持整数(大小不同)、浮点数(近似实数)、字符和布尔值的基本数据类型。数据类型约束表达式的值,例如变量或函数,可能需要。此数据类型定义了可以对数据执行的操作、数据的含义以及存储该类型值的方式。数据类型提供一组值,表达式(即变量、函数等)可以从中获取其值。

数据类型在类型系统中使用,类型系统提供了定义、实现和使用它们的各种方法。不同的类型系统确保不同程度的类型安全。

几乎所有的编程语言都明确包含数据类型的概念,尽管不同的语言可能使用不同的术语。


1.1 存储单位

在学习数据类型之前,首先需要学习什么是存储单位。

在计算机中,每一块内存都被划分为一个个最小存储单元。

比特(位)是计算机中最基本的单位,位是最基本的概念,在计算机中,由于只有逻辑0和逻辑1的存在,即每一个逻辑0或者1便是一个位.

每个最小存储单元只能存储 0 或者 1,称作 bit (比特),八个比特等于一个字节,单位换算如下所示。

  • 8 bit = 1 Byte 一字节
  • 1024 B = 1 KB (KiloByte) 千字节
  • 1024 KB = 1 MB (MegaByte) 兆字节
  • 1024 MB = 1 GB (GigaByte) 吉字节
  • 1024 GB = 1 TB (TeraByte) 太字节
  • 1024 TB = 1 PB (PetaByte) 拍字节
  • 1024 PB = 1 EB (ExaByte) 艾字节
  • 1024 EB = 1 ZB (ZetaByte) 泽字节
  • 1024 ZB = 1 YB (YottaByte) 尧字节
  • 1024 YB = 1BB(Brontobyte)珀字节
  • 1024 BB = 1 NB (NonaByte) 诺字节
  • 1024 NB = 1 DB (DoggaByte)刀字节

聪明的小伙伴看了上面的公式,就会理解为什么 100 M 的宽带,实际下载速度只有12.5 MB/S 了。

字节是计算机信息技术用于计量存储容量的一种计量单位,字节表示计算机编程语言中的数据类型和语言字符,在计算机中八位作为一个字节,字节是构成信息的一个小单位,并作为一个整体来参加操作。在微型计算机中,用字节来表示存储器的存储容量。


1.2 Java 基本数据类型

Java 中有着 3 大类基本数据类型,分别是数值型、字符型和布尔型。

其中数值型分为整数的 byteshortintlong,和浮点数 floatdouble,共计 8 种,如下图所示。

提示:Java 中除了基本数据类型外,还有引用数据类型,包括类、接口、数组,将在后面的课时中讲解。


二、Java 的取值范围

在学习 Java 各数据类型的取值范围前,首先要学习基本变量的定义方法。

2.1 变量定义

首先参考《JavaSE专栏3】JDK安装、IntelliJ IDEA安装、配置环境变量》 完成基本项目的创建,后面课时不在提示本段。

整型 Int

首先定义一个整型 int,并且赋值为 1,代码如下所示。

public class Main {
    public static void main(String[] args) {
        int a = 1;
        System.out.println(a);
    }
}

整型 short

定义一个整型 short,并且赋值为 2,代码如下所示。

public class Main {
    public static void main(String[] args) {
        short a = 2;
        System.out.println(a);
    }
}

整型 byte

定义一个整型 byte,并且赋值为 3,代码如下所示。

public class Main {
    public static void main(String[] args) {
        byte a = 3;
        System.out.println(a);
    }
}

整型 long

定义一个整型 long,并且赋值为 4,请注意需要加上后缀 L,否则默认为 int,代码如下所示。

public class Main {
    public static void main(String[] args) {
        long a = 4L;
        System.out.println(a);
    }
}

浮点型 float

定义一个浮点型 float,并且赋值为 5.0,请注意需要加上后缀 f,否则默认为 double,代码如下所示。

public class Main {
    public static void main(String[] args) {
        float a = 5.0f;
        System.out.println(a);
    }
}

浮点型 double

定义一个浮点型 double,并且赋值为 6.0,代码如下所示。

public class Main {
    public static void main(String[] args) {
        double a = 6.0;
        System.out.println(a);
    }
}

字符型 char

定义一个字符型 char,并且赋值为 ‘a’,代码如下所示。

public class Main {
    public static void main(String[] args) {
        char a = 'a';
        System.out.println(a);
    }
}

布尔型 boolean

定义一个布尔型 boolean,并且赋值为 true,代码如下所示。

public class Main {
    public static void main(String[] args) {
        boolean a = true;
        System.out.println(a);
    }
}

Java 中还存在包装类的定义方式,效果基本等同,如 int a = 1 也可以定义为 Integer a = 1。

包装类有着不同的存储位置、初始值和使用方式。

包装类的概念、使用方法和自动装箱拆箱在后续课时中会讲到。


2.2 取值范围验证

在验证之前首先展示结果,如下图所示。

取值范围验证代码如下:

public class Main {
    public static void main(String[] args) {
        System.out.println("Byte 最大值 = " + Byte.MAX_VALUE);
        System.out.println("Byte 最大值 = " + Byte.MIN_VALUE);
        System.out.println("Short 最大值 = " + Short.MAX_VALUE);
        System.out.println("Short 最大值 = " + Short.MIN_VALUE);
        System.out.println("Int 最大值 = " + Integer.MAX_VALUE);
        System.out.println("Int 最大值 = " + Integer.MIN_VALUE);
        System.out.println("Long 最大值 = " + Long.MAX_VALUE);
        System.out.println("Long 最大值 = " + Long.MIN_VALUE);
        System.out.println("Float 最大值 = " + Float.MAX_VALUE);
        System.out.println("Float 最大值 = " + Float.MIN_VALUE);
        System.out.println("Double 最大值 = " + Double.MAX_VALUE);
        System.out.println("Double 最大值 = " + Double.MIN_VALUE);
        System.out.println("Char 最大值 = " + Character.MAX_VALUE);
        System.out.println("Char 最大值 = " + Character.MIN_VALUE);
        System.out.println("boolean 真 = " + Boolean.TRUE);
        System.out.println("boolean 假 = " + Boolean.FALSE);
    }
}

输出结果

Byte 最大值 = 127
Byte 最大值 = -128
Short 最大值 = 32767
Short 最大值 = -32768
Int 最大值 = 2147483647
Int 最大值 = -2147483648
Long 最大值 = 9223372036854775807
Long 最大值 = -9223372036854775808
Float 最大值 = 3.4028235E38
Float 最大值 = 1.4E-45
Double 最大值 = 1.7976931348623157E308
Double 最大值 = 4.9E-324
Char 最大值 = 
Char 最大值 =  
boolean 真 = true
boolean 假 = false
进程已结束,退出代码0

除此之外还可以在 IntelliJ IDEA 按住 Ctrl + 鼠标左键,查看类的源码。

如果定义了超出取值范围的变量,IntelliJ IDEA 会给与编译提示,也无法通过编译,如下图所示。


三、课时小结

在本节课时中,首先学习了数据类型、存储单位的基本概念,从而引申出 Java 的八大基本数据类型,讲解这八种数据类型的定义方式和取值范围。在下节课时中将讲解 Java 的基本类型转换,和自动拆箱的知识。

相关文章
|
1天前
|
存储 安全 Java
【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型
【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型
15 6
|
1天前
|
存储 Java
【JAVA基础篇教学】第一篇:Java基础数据类型
【JAVA基础篇教学】第一篇:Java基础数据类型
|
1天前
|
小程序 Java 容器
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
9 0
|
1天前
|
Java
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
7 0
|
1天前
|
存储 Java 定位技术
轻松理解Java中的数据类型和变量
轻松理解Java中的数据类型和变量
8 0
|
1天前
|
存储 安全 Java
Java一分钟之Java数据类型概览:基本类型与引用类型
【5月更文挑战第7天】本文概述了Java中的基本和引用数据类型,强调了理解它们对高效编程的重要性。基本类型包括数值、布尔和字符类型,而引用类型涉及类、接口、数组等。注意基本类型的精度损失和溢出问题,以及引用类型的空指针异常和内存泄漏。通过明确类型范围、使用包装类、空值检查和及时释放资源来避免这些问题。代码示例展示了基本类型和引用类型的使用。理解这些核心概念有助于编写更健壮的Java代码。
16 1
|
1天前
|
存储 Java 程序员
Java中的基本数据类型有哪些?
【4月更文挑战第30天】Java中的基本数据类型有哪些?
16 1
|
1天前
|
Java
【Java探索之旅】数据类型与变量 字面常量 整型变量
【Java探索之旅】数据类型与变量 字面常量 整型变量
23 0
|
1天前
|
存储 Java C语言
【Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串型
【Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串型
20 0
|
1天前
|
存储 Java 开发者
JAVA基本数据类型
JAVA基本数据类型
19 1