【JAVA-Day05】深入理解Java数据类型和取值范围

news2024/11/19 13:39:42

深入理解Java数据类型和取值范围

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

在这里插入图片描述

博主 默语带您 Go to New World.
个人主页—— 默语 的博客👦🏻
《java 面试题大全》
🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭
《MYSQL从入门到精通》数据库是开发者必会基础之一~
🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!💻⌨

![在这里插入图片描述](https://img-blog.csdnimg.cn/1797a73dae6c4d159e4ba8b9519fed06.png)

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

深入理解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技术核心学习团队。一起探索科技的未来,共同成长。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1001129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

孙哥Spring源码第21集

第21集 refresh-invokeBeanFactoryPostProcessor-下半部分BeanFactoryPostPrcessor处理 【视频来源于:B站up主孙帅suns Spring源码视频】【微信号:suns45】 1、注解处理添加的的BeanDefinitionRegistryFactoryProcessor在哪个地方? 在第一…

【Flutter】引入网络图片时,提示:Failed host lookup: ‘[图片host]‘

在使用 NetworkImage 组件加载外部图片时,提示 Failed host lookup: [图片host] 错误。 排查方向 1、清理缓存 解决方案: 尝试flutter clean清空缓存后重新安装依赖flutter pub get重新构建项目flutter create . 走完上述三个步骤后,再次…

COMO-ViT论文阅读笔记

Low-Light Image Enhancement with Illumination-Aware Gamma Correction and Complete Image Modelling Network 这是一篇美团、旷视、深先院、华为诺亚方舟实验室、中国电子科技大学 五个单位合作的ICCV2023的暗图增强论文,不过没有开源代码。 文章的贡献点一个是…

工作游戏时mfc140u.dll丢失的解决方法,哪个方法可快速修复mfc140u.dll问题

在 Windows 操作系统中,mfc140u.dll 文件是非常重要的一个组件,许多基于 MFC(Microsoft Foundation Classes)的程序都需要依赖这个文件。然而,有些用户在运行这些程序时可能会遇到mfc140u.dll丢失的问题,导…

技术分析需谨慎,各位投资者应该这样做

技术市场分析中存在许多工具,其中之一便是烛台模式。然而对于这些模式和指标,FPmarkets澳福和各位投资者应持谨慎的态度,因为它们仅仅展示了一种可能的结果,而无法确保其绝对准确。 关于蜡烛图交易的提示,包括Maruboz…

RK3399平台开发系列讲解(内核调试篇)spidev_test工具使用

🚀返回专栏总目录 文章目录 一、环境二、执行测试三、回环测试四、字节发送测试五、32位数据发送测试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上,“spidev_test” 是一个用于测试和配置 SPI(Serial Peripheral Interface)设备的命令行工具。…

2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐✅

一、前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 毕业设计选题非常重要&a…

页面优化技术

页面优化技术 文章目录 页面优化技术1.概述2.页面缓存URL缓存对象缓存2.1 页面缓存2.2 对象缓存2.3 测试效果 3.页面静态化 1.概述 Aim:减少对数据库的访问 页面缓存URL缓存对象缓存’ Aim:实现前后端分离 页面静态化,前后端分离 Aim: 静态资…

华为Mate60 Pro手机重大突破,资本要做空iPhone?Android开发市场将来会如何?

在9月10日有消息称,在华为的Mate60 Pro手机取得重大突破,其研发的 麒麟9000s芯片的研制, 国际卫星通信技术的应用 等这一系列的重大突破,导致美国的一家对冲基金Satori Fund创始人公开要做空iPhone。 而摩根大通发布报告称&#x…

LeetCode(力扣)122. 买卖股票的最佳时机 II

LeetCode122. 买卖股票的最佳时机 II 题目链接代码 题目链接 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/ 代码 class Solution:def maxProfit(self, prices: List[int]) -> int:result 0for i in range(1, len(prices)):result max((prices[i…

Mybatis 动态语言 - mybatis-velocity

前面我们介绍了Mybatis动态SQL的使用;本篇我们介绍使用mybatis-velocity动态语言生成动态SQL。 如果您对Mybatis动态SQL不太了解,建议您先进行了解后再阅读本篇,可以参考: Mybatis 动态SQL – 使用if,where标签动态生成条件语句…

FFMPEG视频压缩与Python使用方法

一、简介 FFMPEG 是一个完整的,跨平台的解决方案,记录,转换和流音频和视频。 官网:https://ffmpeg.org/ 二、安装 1、Linux: sudo apt install ffmpeg 2、Mac: brew install ffmpeg 3、Windows: 下载文件&#…

web UI自动化介绍

文章目录 一、web UI自动化介绍1.1 执行UI自动化测试前提1.2 Selenium介绍以及知识点梳理 二、Selenium 学习2.1 基础2.1.1 环境安装与基础使用2.1.2 web浏览器控制2.1.3 常见控件的八大定位方式2.1.3.1 八大定位方式介绍2.1.3.2 NAME、ID定位2.1.3.3 css_selector定位2.1.3.4 …

第六章 图 六、最小生成树(Prim算法、Kruskal算法)

一、定义 对于一个带权连通无向图G(V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree, MST)。 二、手…

PCD235A101-3BHE032025R010 为航海级用户提供卓越的性能

PCD235A101-3BHE032025R010 为航海级用户提供卓越的性能 PCD235A101 系列提供 12.1 英寸、19 英寸和 24 英寸 LCD 尺寸,配备宽视角屏幕,以满足不同船舶的要求。船用PC符合DNV标准,通过IEC 60945认证,具有日光/月光可读、防腐涂层…

C语言入门Day_18 判断和循坏的小结

目录 前言: 1.判断 2.循环 3.课堂笔记 4.思维导图 前言: 判断语句和循环语句都可以大致分为三个部分,第一个部分是固定的语法格式;第二部分是代码的执行顺序,第三部分是判断和循环成立与否的判断条件。 1.判断 1…

小米13Pro/13Ultra刷面具ROOT后激活LSPosed框架微X模块详细教程

喜欢买小米手机,很多是因为小米手机的开放,支持root权限,而ROOT对普通用户来说更多的是刷入DIY模块功能,今天ROM乐园小编就教大家如何使用面具ROOT,实现大家日常情况下非常依赖的微X模块功能,体验微X模块的…

10.2 整流电路

在分析整流电路时,为了突出重点,简化分析过程,一般均假定负载为纯电阻性;整流二极管为理想二极管,即导通时正向压降为零,截止时反向电流为零;变压器无损耗,内部压降为零等。 一、整…

信息化发展35

IT审计技术-风险评估技术 常用的IT 审计技术包括风险评估技术、审计抽样技术、计算机辅助审计技术及大数据审计技术。 IT 风险评估技术一般包括: 1 )风险识别技术: 用以识别可能影响一个或多个目标的不确定性, 包括德…

W11下CMake MinGW配置OpenCV和Qt

💂 个人主页:风间琉璃🤟 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 前言 前几天将cuda版本的opencv给编译成功了,当时用的VS的MSVC&…