【JAVA-Day05】深入理解Java数据类型和取值范围
深入理解Java数据类型和取值范围
- 深入理解Java数据类型和取值范围
- 摘要
- 一、Java的数据类型
- 1.1 存储单位
- 1.2 Java基本数据类型
- 二、Java的取值范围
- 2.1 变量定义
- 2.2 取值范围验证
- 三、总结

博主 默语带您 Go to New World.
✍ 个人主页—— 默语 的博客👦🏻
《java 面试题大全》
🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭
《MYSQL从入门到精通》数据库是开发者必会基础之一~
🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!💻⌨
🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥
深入理解Java数据类型和取值范围
摘要
本文深入介绍了Java编程语言中的基本数据类型,探讨了数据类型的概念、存储单位以及Java的八种基本数据类型,包括整数、浮点数、字符和布尔值。我们详细讨论了每种数据类型的取值范围,并提供了示例代码以展示如何在Java中声明和使用这些数据类型。此外,文章还强调了类型的安全性和类型系统的重要性,以及如何验证数据类型的取值范围。通过本文,读者将更好地理解Java编程中的数据类型,为编写高效、安全的Java代码提供了基础知识。
Java是一门广泛应用于软件开发的编程语言,其中的数据类型和取值范围在编程中起着关键作用。本文将深入探讨Java中常见的数据类型,以及它们的取值范围,帮助读者更好地理解Java编程中的基本概念。
一、Java的数据类型
在计算机科学和编程中,数据类型是数据的属性,告诉编译器或解释器程序员打算如何使用数据。Java拥有丰富的数据类型,我们将首先介绍存储单位的概念。
1.1 存储单位
计算机内存中的最小存储单元是位(bit),它表示逻辑0或逻辑1。多个位组合在一起形成字节(Byte),并以字节为基本单位进行存储。以下是一些常见存储单位的换算关系:
- 8 bit = 1 Byte(字节)
- 1024 Byte = 1 KB(千字节)
- 1024 KB = 1 MB(兆字节)
- 1024 MB = 1 GB(吉字节)
- 以此类推…
这些存储单位是计算机信息技术中的基本概念,对于理解数据类型的存储方式非常重要。
1.2 Java基本数据类型
Java中有三类基本数据类型:数值型、字符型和布尔型。数值型又分为整数类型和浮点类型,共计八种基本数据类型。以下是它们的列表:
- 整数类型:byte、short、int、long
- 浮点类型:float、double
- 字符型:char
- 布尔型:boolean
每种数据类型都有其特定的取值范围和用途,开发人员可以根据需要选择合适的数据类型来存储和处理数据。
二、Java的取值范围
在学习Java各数据类型的取值范围之前,我们首先需要了解如何定义基本变量。
2.1 变量定义
变量是用来存储数据的容器,不同的数据类型对应不同的变量类型。以下是一些示例代码,展示了如何定义和初始化各种Java基本数据类型的变量:
public class Main {public static void main(String[] args) {// 整数类型int myInt = 42; // 32位整数,范围在-2,147,483,648到2,147,483,647之间// 短整数类型short myShort = 12345; // 16位整数,范围在-32,768到32,767之间// 字节类型byte myByte = -128; // 8位整数,范围在-128到127之间// 长整数类型long myLong = 1234567890L; // 64位整数,需要在末尾加上L标识,范围更大// 浮点数类型float myFloat = 3.14f; // 单精度浮点数,用f标识,适用于小数,约6-7位有效数字// 双精度浮点数类型double myDouble = 2.71828; // 双精度浮点数,默认类型,适用于小数,约15位有效数字// 字符类型char myChar = 'A'; // 单个字符,用单引号括起来// 布尔类型boolean myBoolean = true; // 布尔值,只能是true或false// 输出各变量的值System.out.println("myInt: " + myInt);System.out.println("myShort: " + myShort);System.out.println("myByte: " + myByte);System.out.println("myLong: " + myLong);System.out.println("myFloat: " + myFloat);System.out.println("myDouble: " + myDouble);System.out.println("myChar: " + myChar);System.out.println("myBoolean: " + myBoolean);}
}
myInt: 42
myShort: 12345
myByte: -128
myLong: 1234567890
myFloat: 3.14
myDouble: 2.71828
myChar: A
myBoolean: true

代码中定义了不同类型的变量,包括整数、浮点数、字符和布尔值。每个变量都有特定的数据类型,并用注释提供了相应的解释。最后,通过 System.out.println 语句输出了每个变量的值。
2.2 取值范围验证
Java的每种数据类型都有特定的取值范围,超出范围的值将导致错误或不准确的结果。为了验证这些范围,我们可以使用以下代码示例:
public class Main {public static void main(String[] args) {// 打印各基本数据类型的最大和最小值printByteRange();printShortRange();printIntRange();printLongRange();printFloatRange();printDoubleRange();printCharRange();printBooleanValues();}// 打印字节类型的取值范围private static void printByteRange() {System.out.println("字节类型(byte):");System.out.println("最大值 = " + Byte.MAX_VALUE); // 最大值System.out.println("最小值 = " + Byte.MIN_VALUE); // 最小值System.out.println("字节类型占用位数 = " + Byte.SIZE); // 占用位数System.out.println("字节类型在内存中占用字节数 = " + Byte.BYTES); // 占用字节数System.out.println();}// 打印短整数类型的取值范围private static void printShortRange() {System.out.println("短整数类型(short):");System.out.println("最大值 = " + Short.MAX_VALUE); // 最大值System.out.println("最小值 = " + Short.MIN_VALUE); // 最小值System.out.println("短整数类型占用位数 = " + Short.SIZE); // 占用位数System.out.println("短整数类型在内存中占用字节数 = " + Short.BYTES); // 占用字节数System.out.println();}// 打印整数类型的取值范围private static void printIntRange() {System.out.println("整数类型(int):");System.out.println("最大值 = " + Integer.MAX_VALUE); // 最大值System.out.println("最小值 = " + Integer.MIN_VALUE); // 最小值System.out.println("整数类型占用位数 = " + Integer.SIZE); // 占用位数System.out.println("整数类型在内存中占用字节数 = " + Integer.BYTES); // 占用字节数System.out.println();}// 打印长整数类型的取值范围private static void printLongRange() {System.out.println("长整数类型(long):");System.out.println("最大值 = " + Long.MAX_VALUE); // 最大值System.out.println("最小值 = " + Long.MIN_VALUE); // 最小值System.out.println("长整数类型占用位数 = " + Long.SIZE); // 占用位数System.out.println("长整数类型在内存中占用字节数 = " + Long.BYTES); // 占用字节数System.out.println();}// 打印单精度浮点数类型的取值范围private static void printFloatRange() {System.out.println("单精度浮点数类型(float):");System.out.println("最大值 = " + Float.MAX_VALUE); // 最大值System.out.println("最小值 = " + Float.MIN_VALUE); // 最小正值,即最接近零的正浮点数System.out.println("单精度浮点数类型占用位数 = " + Float.SIZE); // 占用位数System.out.println("单精度浮点数类型在内存中占用字节数 = " + Float.BYTES); // 占用字节数System.out.println();}// 打印双精度浮点数类型的取值范围private static void printDoubleRange() {System.out.println("双精度浮点数类型(double):");System.out.println("最大值 = " + Double.MAX_VALUE); // 最大值System.out.println("最小值 = " + Double.MIN_VALUE); // 最小正值,即最接近零的正浮点数System.out.println("双精度浮点数类型占用位数 = " + Double.SIZE); // 占用位数System.out.println("双精度浮点数类型在内存中占用字节数 = " + Double.BYTES); // 占用字节数System.out.println();}// 打印字符类型的取值范围private static void printCharRange() {System.out.println("字符类型(char):");System.out.println("最大值 = " + (int) Character.MAX_VALUE); // 最大值System.out.println("最小值 = " + (int) Character.MIN_VALUE); // 最小值System.out.println("字符类型占用位数 = " + Character.SIZE); // 占用位数System.out.println("字符类型在内存中占用字节数 = " + Character.BYTES); // 占用字节数System.out.println();}// 打印布尔类型的取值范围private static void printBooleanValues() {System.out.println("布尔类型(boolean):");System.out.println("真 = " + Boolean.TRUE); // 真System.out.println("假 = " + Boolean.FALSE); // 假}
}

以上代码验证了各种数据类型的最大值、最小值,以及布尔型的真和假。了解这些范围有助于编写更安全和可靠的Java程序。
三、总结
在本课中,我们深入研究了Java的数据类型和取值范围。了解不同数据类型的定义和范围是成为Java程序员的重要一步。在下一课中,我们将继续讨论Java中的类型转换和自动拆箱的概念。

如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进📓;(联系微信:Solitudemind )
点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

相关文章:
【JAVA-Day05】深入理解Java数据类型和取值范围
深入理解Java数据类型和取值范围 深入理解Java数据类型和取值范围摘要一、Java的数据类型1.1 存储单位1.2 Java基本数据类型 二、Java的取值范围2.1 变量定义2.2 取值范围验证 三、总结 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻…...
“JSR303和拦截器在Java Web开发中的应用与实践“
目录 引言JSR303什么是JSR303?为什么要使用JSR303?常用注解快速入门JSR303 拦截器什么是拦截器拦截器与过滤器应用场景快速入门拦截器 总结 引言 在Java Web开发过程中,我们经常会遇到需要对输入数据进行验证和处理,同时需要对请求进行拦截与控制的需…...
第六章 图 六、最小生成树(Prim算法、Kruskal算法)
一、定义 对于一个带权连通无向图G(V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree, MST)。 二、手…...
机器学习笔记 - 什么是 MLOps?
什么是 MLOps? Machine learning operations (MLOps) 作为一个新兴领域,MLOps 在数据科学家、机器学习工程师和人工智能爱好者中迅速崛起。MLOps 代表机器学习操作。MLOps 是机器学习工程的核心功能,专注于简化将机器学习模型投入生产、然后维护和监控的过程。MLOps 是一种…...
初阶扫雷(超详解)
✨博客主页:小钱编程成长记 🎈博客专栏:C语言小游戏 🎈推荐相关博文:初阶三子棋(超详解) 初阶扫雷 1.游戏介绍2.基本思路3.实现前的准备4.实现步骤4.1 打印菜单4.2 初始化扫雷棋盘4.3 打印扫雷棋…...
计算机视觉CV:1000字总结介绍
目录 1.CV计算机视觉 2.计算机视觉的应用 3.计算机视觉的基本技术 4.计算机视觉的发展趋势 1.CV计算机视觉 计算机视觉(Computer Vision, CV)是指通过计算机技术模拟人类视觉,让计算机能够“看”懂和理解图像和视频。计算机视觉发展了多…...
JavaScript 之 Symbol 数据类型
一、简介 symbol类型是ES6新引入的一种基本数据类型,该类型具有静态属性和静态方法。其中静态属性暴露了几个内建的成员对象,静态方法暴露了全局的symbol注册。 symbol类型具有以下特点:① 唯一性:每个symbol值都是唯一的…...
在Docker中运行PostgreSQL数据库
1.下载Docker 2.设置DockerHub账号 3.运行Docker并下载Image 4.启动PostgreSQL Image 5.连接到数据库运行SQL docker run --name some-postgres -p 5432:5432 -e POSTGRES_PASSWORDmysecretpassword -d postgres 开放端口从Docker容器到主操作系统,这将允许我们…...
实现Spring Boot集成MyBatis
引言 在Java开发中,Spring Boot和MyBatis是非常常用的框架。Spring Boot是一个快速开发应用程序的框架,而MyBatis是一个持久化框架,可以方便地操作数据库。本文将介绍如何使用Idea集成Spring Boot和MyBatis,并创建一个简单的示例…...
关于算法的时间复杂度(度量算法执行时间的两种方法、渐进时间复杂度、时间复杂度的几个性质、渐进估算、常见的渐进时间复杂度排序)
目录 度量算法执行时间的两种方法 事后统计法(Post Hoc Analysis): 事前统计法(Pre Hoc Analysis): 渐进时间复杂度 时间复杂度的几个性质 渐进估算 常见的渐进时间复杂度排序 度量算法执行时间的两…...
SpringBoot项目--电脑商城【显示商品详情功能】
1.持久层[Mapper] 1规划需要执行的SQL语句 根据商品id显示商品详情的SQL语句 SELECT * FROM t_product WHERE id?2 设计接口和抽象方法 在ProductMapper接口中添加抽象方法 /*** 根据商品id查询商品详情* param id 商品id* return 匹配的商品详情,如果没有匹配…...
VLAN笔记
虚拟VLAN 什么是VLAN VLAN的作用 VLAN的优缺点 VLAN的配置方法 VLAN有哪些接口模式 access与trunk接口的区别 Hybrid接口 拓扑实验enspCiscoH3C 什么是VLAN VLAN(Virtual Local Area Network)又称虚拟局域网,是指在交换局域网的基础上&a…...
分类算法系列⑤:决策树
目录 1、认识决策树 2、决策树的概念 3、决策树分类原理 基本原理 数学公式 4、信息熵的作用 5、决策树的划分依据之一:信息增益 5.1、定义与公式 5.2、⭐手动计算案例 5.3、log值逼近 6、决策树的三种算法实现 7、API 8、⭐两个代码案例 8.1、决策树…...
前端面试(基础)
一、CSS 1.说一下CSS的盒模型。 在HTML页面中的所有元素都可以看成是一个盒子 盒子的组成:内容content、内边距padding、边框border、外边距margin 盒模型的类型: 标准盒模型 margin border padding content IE盒模型 margin content(border…...
element-ui switch开关组件二次封装,添加loading效果,点击时调用接口后改变状态
先看效果: element-ui中的switch开关无loading属性(在element-plus时加入了),而且点击时开关状态就会切换,这使得在需要调用接口后再改变开关状态变得比较麻烦。 思路:switch开关外包一层div,给…...
【GAN小白入门】Semi-Supervised GAN 理论与实战
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊🚀 文章来源:K同学的学习圈子论文原文:Semi-Supervised Learning with Generative Adversarial Networks.pdf在学习GAN的时候你有没有想过这样一个问题呢,如果我们生成的图像是带有标签的,例如数…...
Python自动化测试(1)-自动化测试及基本技术手段概述
生产力概述 在如今以google为首的互联网时代,软件的开发和生产模式都已经发生了变化, 在《参与感》一书提到:某位从微软出来的工程师很困惑,微软在google还有facebook这些公司发展的时候,为何为感觉没法有效还击&…...
小程序中如何查看会员的余额和变更记录
通过查看会员的余额和变更记录,可以帮助商家更好地管理会员资金,提供更好的服务和用户体验。下面将介绍小程序中如何查看会员的余额以及余额的变更记录。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要查看余额和记录的会员…...
【项目经验】elementui--table表格自定义表头及bug
一.思路 首先我们肯定得循环表头,我们原生js封装的表格的实现原理就是这样。其次我们要把自己循环的label显示出来,对应的prop也要和表格数据相对应。用div标签循环都会出现错误(div里面套column),大家不要踩坑。第一…...
flink实现kafka、doris精准一次说明
前言说明:本文档只讨论数据源为kafka的情况实现kafka和doris的精准一次写入 flink的kafka连接器已经实现了自动提交偏移量到kafka,当flink中的数据写入成功后,flink会将这批次数据的offset提交到kafka,程序重启时,kafka中记录了当前groupId消费的offset位置,开始消费时将…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
