作者主页:Designer 小郑
作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。热爱技术、专注业务、开放合作、乐于分享,期待你我共同成长!
主打方向:Vue、SpringBoot、微信小程序
目录
- 一、Java 的数据类型
- 1.1 存储单位
- 1.2 Java 基本数据类型
- 二、Java 的取值范围
- 2.1 变量定义
- 2.2 取值范围验证
- 三、课时小结
一、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 大类基本数据类型,分别是数值型、字符型和布尔型。
其中数值型分为整数的 byte
、short
、int
、long
,和浮点数 float
、double
,共计 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 的基本类型转换,和自动拆箱的知识。