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

news/2024/11/29 10:49:08/

作者主页: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 大类基本数据类型,分别是数值型、字符型和布尔型。

其中数值型分为整数的 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 的基本类型转换,和自动拆箱的知识。
在这里插入图片描述


http://www.ppmy.cn/news/19260.html

相关文章

英语学习打卡day4

2023.1.24 1.out of curiosity 出于好奇 out of necessity 出于必要 out of interest 出于利益 out of sympathy 出于同情 out of respect 出于尊敬 out of’ fear 出于害怕 out of desperation 出于不得已/绝望 2.ashore adv.向(或在)岸上;上岸 a在… …的 shore岸- >在…

CS61A 2022 fall HW 01: Functions, Control

CS61A 2022 fall HW 01: Functions, Control 文章目录CS61A 2022 fall HW 01: Functions, ControlQ1: A Plus Abs BQ2: Two of ThreeQ3: Largest FactorQ4: HailstoneHW01对应的是Textbook的1.1和1.2 Q1: A Plus Abs B 题目: Fill in the blanks in the following f…

【进阶C语言】程序环境与预处理

文章目录一.程序环境1.翻译环境编译器1.预处理2.编译3.汇编链接器2.运行环境总图解二.预处理1.预定义符号2.define1.define的定义2.替换规则3.定义的建议和使用的缺点1.加括号2.避免使用带有副作用的符号3.命名约定4.#和##1.#2.##5.宏和函数的对比6.undef3.条件编译1.常量表达式…

机器学习(五):机器学习算法分类

文章目录 机器学习算法分类 一、监督学习 1、回归问题 2、分类问题 二、无监督学习 三、半监督学习 四、强化学习 机器学习算法分类 根据数据集组成不同,可以把机器学习算法分为: 监督学习无监督学习半监督学习强化学习一、监督学习 定义&…

几种觉排序优劣

冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持…

Tkinter的Listbox控件

Tkinter的Listbox控件是个选项框,主要是用来在给定的选项中选择一个 使用方法 创建选项框Listbox 和其他控件的创建方法一样,直接创建即可,命名为Lb Lbtk.Listbox(root) Lb.pack() 在选项框中加入选项 可以边创建边添加,即利…

一些数字分组的计算结果,也许对你的二码运算有用

把2N个数分成N份,每份2个号码,应该共有combin(2N,N)种, 但这有一个问题,生成的二码重复太多,对于观测二码很不方便。 能不能让生成的组数中二码只出现一次,也就是最小覆盖? 经过努力我把以下三种…

Python---文件操作

专栏:python 个人主页:HaiFan. 专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。 文件操作思维导图前言文件是什么文件路径文件操…