Java 基本数据类型【基础篇】





目录

    • Java 数据类型
      • 基本数据类型
        • 整数类型【byte、short、int、long】
        • 浮点类型【float、double】
        • 布尔类型【boolean】
        • 字符类型【char】
      • 引用数据类型




Java 数据类型


Java 语言支持的数据类型分为两种:基本数据类型引用数据类型。其数据类型结构如下图所示:


故屿




基本数据类型


基本数据类型共八种,可分为六种数字类型(四个整数型,两个浮点型),整体又可分为四大类:

i. 整数类型(byte、short、int、long)
ii. 浮点类型(float、double)
iii. 布尔类型(boolean)
iiii. 字符类型(char)

Java 的基本数据类型取值范围如下表:


类型名称关键字包装类默认值占用内存/位数取值范围
字节型byteByte0一个字节/8位-27 ~ 27-1 ( -128~127)
短整型shortShort0两个字节/16位-215 ~ 215-1 (-32768~32767)
整型intInteger0四个字节/32位-231 ~ 231-1 (-2147483648~2147483647)
长整型longLong0L八个字节/64位-263 ~ 263-1 (-9223372036854775808L~9223372036854775807L)
单精度浮点型floatFloat0.0f四个字节/6~7个有效位+/-3.4E+38F
双精度浮点型doubleDouble0.0d八个字节/15个有效位+/-1.8E+308
字符型charCharacter‘u0000’两个字节/16位 Unicode 字符最小值: \u0000(十进制等效值为0)、最大值是 \uffff(即为 65535)
布尔型booleanBooleanfalse一个字节(非规范强制)true 或 false



整数类型【byte、short、int、long】

对于整数类型,Java 只定义了带符号的整型,因此,最高位的 bit 表示符号位(0表示正数,1表示负数)。 Java 四种整数类型变量说明如下:


①byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。

了解计算机内存的基本结构:

a. 计算机内存的最小存储单元是字节(byte),一个字节就是一个 8 位二进制数,即 8 个 bit。
b. 它的二进制表示范围从 00000000 ~ 11111111,换算成十进制是 0 ~ 255,换算成十六进制是 00 ~ ff。
c. 内存单元从0开始编号,称为内存地址。

一个字节是 1byte,1024字节是 1K,1024K是 1M,1024M是 1G,1024G是 1T。一个拥有 4T 内存的计算机的字节数量如下:

4T = 4 x 1024G
= 4 x 1024 x 1024M
= 4 x 1024 x 1024 x 1024K
= 4 x 1024 x 1024 x 1024 x 1024
= 4398046511104

②short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。

③int 类型是最常使用的一种整数类型。

④对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型。


  • 示例如下

public static void main(String[] args) {int i1 = 0xff0000; // 十六进制表示:16711680int i2 = 0b1000000000; // 二进制表示:512long l1 = 9000000000000000000L; // long型的结尾需要加Llong l2 = 900; // 没有加L,此处 900 为 int,但 int 类型可以赋值给 longint i3 = 900L; // 错误:不能把 long 类型赋值给 intbyte a = 20; // 声明一个 byte类型的变量并赋予初始值为 20short b = 10; // 声明一个 short类型的变量并赋予初始值为 10int c = 30; // 声明一个 int类型的变量并赋予初始值为 30long d = 40; // 声明一个 long 类型的变量并赋予初始值为 40long sum = a + b + c + d;// 打印输出的最终结果:20+10+30+40=100System.out.println("20+10+30+40=" + sum);
}

如上注意:整数类型计算可以使用 “+” 相加,而非字符串之间的连接。




浮点类型【float、double】

注意:在声明 float 类型的变量时,需要在数值后添加 “F” 或 “f”。
若不带 f 结尾的则是 double 类型,不能赋值给 float

Java 默认的浮点型是 double,例如,3.14 和 3.1415d 都是 double 型数值。如果要说明一个 float 类型数值,就需要在其后追加字母 f 或 F,如 3.14f 和 3.1415F 都是 float 类型的常数。


  • 示例如下

float price = 65.7f;  // 定义 float 类型的变量并赋予初始值
float f2 = 3.14e38f; // 科学计数法表示为:3.14x10^38
float f3 = 1.0; // 错误:不带 f 结尾的是 double 类型,不能赋值给 floatdouble price = 12.254d; // 定义 double 类型的变量并赋予初始值,此类型数值后默认可以不写 “d”
double d2 = -1.79e308; // 科学计数法表示为:-1.79x10^308



布尔类型【boolean】

boolean:布尔型,那 boolean 到底占用几个字节

占1个字节,查看 Java 官方 doc 教程上显示:boolean 的字节数是不确定,布尔数据类型只有两个可能的值:true 和 false。将此数据类型用于跟踪真/假条件的简单标志。这种数据类型表示一位信息,但它的 “大小” 并不是精确定义的;
也有说 boolean 一般占4个字节,因为 32 位 CPU 一次读4个字节,会直接把 boolean 当作 int 处理;但是 boolean[] 数组反而会按1字节算,原因是省内存;

总之,boolean 实际上并不一定是1个字节,JVM 规范并没有明确规定,其字节数其实是不确定的。

布尔类型:用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。
Java 中用保留字 true 和 false 来代表逻辑运算中的“真”和“假”。因此,一个 boolean 类型的变量或表达式只能是取 true 和 false 这两个值中的一个。


  • 示例如下

boolean isable;    // 声明 boolean 类型的变量 isable
boolean b = false;    // 声明 boolean 类型的变量 b,并赋予初值为 falseboolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 计算结果为 trueint age = 10;
boolean isAdult = age >= 15; // 计算结果为 false



字符类型【char】

char(字符型):单个字符,两个字节,16位,即一个单一的 16 位 Unicode 字符;
由 ASCII 码表:

48 ~ 57 为 0 ~ 9;
65 ~ 90 为 A ~ Z;
97~ 122 为 a ~ z;

最大值:\uffff 即为 65535,
最小值:\u0000 即 十进制等效值为 0;

注意:在Java中,字符类型是以 Unicode 码表示的。


  • 示例如下

char letter = 'D'; // char 字符型变量的类型用来表示单个的字符,单引号表示
char numChar = '5'; 
char c = 'c'; // 在 ASCII 码表中'D' 对应表示 68,


  • 注:
      long 和 double 都不需要添加 " "
      char 单引号表字符一个 ‘ ’
      string 双引号表示字符串多个 " ",String字符串是引用类型!






引用数据类型


引用数据类型是建立在基本数据类型的基础上,包括:数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。



  • 注意:空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个 null 值赋给基本数据类型的变量。













Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
知者,感谢您在茫茫人海中阅读了我的文章
没有个性 哪来的签名!
详情请关注点我
持续更新中

扫一扫 有惊喜!
© 2024 06 - Guyu.com | 【版权所有 侵权必究】

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

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

相关文章

24年hvv前夕,微步也要收费了,情报共享会在今年结束么?

一个人走的很快,但一群人才能走的更远。吉祥同学学安全https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&scene21#wechat_redirect这个星球🔗里面已经沉淀了: 《Ja…

30 哈希的应用

位图 概念 题目 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何判断一个数是否在这40亿个整数中 1.遍历,时间复杂度O(N) 2.二分查找,需要先排序,排序(N*logN),二分查找,logN。…

2024年【焊工(初级)】考试及焊工(初级)报名考试

题库来源:安全生产模拟考试一点通公众号小程序 焊工(初级)考试是安全生产模拟考试一点通生成的,焊工(初级)证模拟考试题库是根据焊工(初级)最新版教材汇编出焊工(初级&a…

C++ 史上首次超越 C,仅次于Python!【送源码】

TIOBE 公布了 2024 年 6 月的编程语言排行榜——C 史上首次超越 C,跃至榜二,仅次于 Python。 C 是一种广泛应用于嵌入式系统、游戏开发和金融交易软件等领域的语言,在本月成功超越了 C, 成为了 TIOBE 指数中新的第二名。 这是 C …

四川省高等职业学校大数据技术专业建设暨专业质量监测研讨活动顺利开展

6月21日,省教育评估院在四川邮电职业技术学院组织开展全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动。省教育评估院副院长赖长春,四川邮电职业技术学院党委副书记、校长冯远洪,四川邮电职业技术学院党委委员、副校长程德杰等出席…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputConsumer (组合按键)】

组合按键 InputConsumer模块提供对按键事件的监听。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口均为系统接口,三方应用不支持调用。 导入模块 import inputConsumer …

36.基于多目标螳螂优化算法的微电网优化matlab

微♥关注“电击小子程高兴的MATLAB小屋”获取资源 基于螳螂优化算法的多目标优化算法 求解微电网多目标优化调度 比较不同目标函数寻优对调度结果的影响 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图 第2种寻找…

AI助力校园安全:EasyCVR视频智能技术在校园欺凌中的应用

一、背景分析 近年来,各地深入开展中小学生欺凌行为治理工作,但有的地方学生欺凌事件仍时有发生,严重损害学生身心健康,引发社会广泛关注。为此,教育部制定了《防范中小学生欺凌专项治理行动工作方案》进一步防范和遏…

json文件 增删查改

默认收藏夹 qt操作json格式文件... 这个人的 写的很好 我的demo全是抄他的 抄了就能用 —————————— 下次有空把我的demo 传上来 在E盘的demo文件夹 json什么名字

Leetcode - 133双周赛

目录 一,3190. 使所有元素都可以被 3 整除的最少操作数 二,3191. 使二进制数组全部等于 1 的最少操作次数 I 三,3192. 使二进制数组全部等于 1 的最少操作次数 II 四,3193. 统计逆序对的数目 一,3190. 使所有元素都…

PyQt问题汇总(持续更新)

目录 1.抛出异常后QAppliaction自动闪退 2.Unbuntu共享文件夹自动挂载 1.抛出异常后QAppliaction自动闪退 开发阶段,PyQt5 QAppliaction会在遇到未捕获的异常时立即退出,它能够快速发现并报告错误,我在调用一些密码算法库的时候&#xff0…

FreeBSD虚拟化解决之道:高效、安全、灵活的虚拟解决方案全览

FreeBSD下的虚拟化技术 虚拟化软件可让一台计算机同时运行多个操作系统。这种用于个人电脑的系统软件通常涉及一个运行虚拟化软件的宿主机(host)操作系统,并支持任何数量的客户机(guest)操作系统。 FreeBSD下的虚拟解…

基于Java的地方废物回收机构管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,MIS的总体思想,MySQL数据库 工具:Eclipse,…

【数据结构】详解二叉树之堆

失败只是暂时停止成功,假如我不能,我就一定要;假如我要,我就一定能!💓💓💓 目录 ✨说在前面 🍋知识点一:树的概念和结构 • 🌰1.什么是树&#x…

【漏洞复现】学分制系统GetTimeTableData SQL注入

0x01 产品简介 学分制系统由上海鹏达计算机系统开发有限公司研发,是基于对职业教育特点和需求的深入理解,结合教育部相关文件精神,并广泛吸纳专家、学者意见而开发的一款综合性管理系统。系统采用模块化的设计方法,方便学校根据自…

新奥集团校招面试经验分享、测评笔试题型分析

一、走进新奥集团 新奥集团成立于1989年,总部位于河北廊坊,是中国领先的清洁能源企业集团。业务涵盖城市燃气、能源化工、环保科技等多个领域,致力于构建现代能源体系,提升生活品质。 二、新奥集团校招面试经验分享 新奥集团的…

小程序驾校预约系统的设计

管理员账户功能包括:系统首页,个人中心,学员管理,教练管理,驾校信息管理,驾校车辆管理,教练预约管理,考试信息管理 微信端账号功能包括:系统首页,驾校信息&a…

ROS2创建自定义接口

ROS2提供了四种通信方式: 话题-Topics 服务-Services 动作-Action 参数-Parameters 查看系统自定义接口命令 使用ros2 interface package sensor_msgs命令可以查看某一个接口包下所有的接口 除了参数之外,话题、服务和动作(Action)都支持自定义接口&am…

【智能算法】决策树算法

目录 一、基本概念 二、工作原理 三、决策树算法优点和缺点 3.1 决策树算法优点 3.2 决策树算法缺点 四、常见的决策树算法及matlab代码实现 4.1 ID3 4.1.1 定义 4.1.2 matlab代码实现 4.2 C4.5 4.2.1 定义 4.2.2 matlab代码实现 4.3 CART 4.3.1 定义 4.3.2 mat…

android轮播图入门1——简单无限自动轮播图

目标 目标是实现一个简单的轮播图,特征如下: 只展示本地图片可以无限轮播,在第一帧时也可以向前轮播可以自动轮播 code 先上代码,需要事先准备几张本地图片当素材 MainActivity: package com.example.loopapplication;import…