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; // 十六进制表示:16711680
    int i2 = 0b1000000000; // 二进制表示:512
    long l1 = 9000000000000000000L; // long型的结尾需要加L
    long l2 = 900; // 没有加L,此处 900 为 int,但 int 类型可以赋值给 long
    int i3 = 900L; // 错误:不能把 long 类型赋值给 int

    byte a = 20; // 声明一个 byte类型的变量并赋予初始值为 20
    short b = 10; // 声明一个 short类型的变量并赋予初始值为 10
    int c = 30; // 声明一个 int类型的变量并赋予初始值为 30
    long d = 40; // 声明一个 long 类型的变量并赋予初始值为 40
    long sum = a + b + c + d;
    
    // 打印输出的最终结果:20+10+30+40=100
    System.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 类型,不能赋值给 float

double 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,并赋予初值为 false

boolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 计算结果为 true

int 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 | 【版权所有 侵权必究】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机毕业设计】基于微信小程序的电子购物系统的设计与实现【源码+lw+部署文档】

包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取 免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

Java基础知识-集合类

1、HashMap 和 Hashtable 的区别? HashMap 和 Hashtable是Map接口的实现类,它们大体有一下几个区别: 1. 继承的父类不同。HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary类。 2. 线程安全性不同。Hashtable 中的方…

智能灌溉系统

智能灌溉系统是一种利用现代信息技术、自动控制技术和传感器技术等高新技术,实现对农田灌溉的智能化管理和控制的系统。其主要目的是在保证农作物需水量的前提下,最大限度地节约用水,提高水资源的利用率。 系统目标 通过物联网技术实现农田…

[OtterCTF 2018]Name Game

Name Game 题目描述:我们知道这个帐号登录到了一个名为Lunar-3的频道。账户名是什么?猜想:既然登陆了游戏,我们尝试直接搜索镜像中的字符串 Lunar-3 。 直接搜索 Lunar-3 先把字符串 重定向到 txt文件里面去然后里面查找 Lunar-3…

利用SHAP算法解释BERT模型的输出

1 何为SHAP? 传统的 feature importance 只告诉哪个特征重要,但并不清楚该特征如何影响预测结果。SHAP 算法的最大优势是能反应每一个样本中特征的影响力,且可表现出影响的正负性。SHAP算法的主要思想为:控制变量法,如果某个特征…

python系列30:各种爬虫技术总结

1. 使用requests获取网页内容 以巴鲁夫产品为例,可以用get请求获取内容: https://www.balluff.com.cn/zh-cn/products/BES02YF 对应的网页为: 使用简单方法进行解析即可 import requests r BES02YF res requests.get("https://www.…

JavaSE主要内容(全套超完整)

一、为什么选择Java(Java的优势) 1、应用面广: 相较于其他语言,Java的应用面可谓是非常广,这得益于他的跨平台性和其性能的稳定性。他在服务器后端,Android应用开发,大数据开发&#xf…

FastAPI-Cookie

fastapi-learning-notes/codes/ch01/main.py at master Relph1119/fastapi-learning-notes GitHub 1、Cookie的作用 Cookie可以充当用户认证的令牌,使得用户在首次登录后无需每次手动输入用户名和密码,即可访问受限资源,直到Cookie过期或…

设计模式——责任链

责任链模式是一种行为设计模式,用于将请求的发送者和接收者解耦。在这种模式中,请求通过一条由多个对象组成的链传递,直到有一个对象能够处理该请求为止。每个对象都可以决定是否处理请求以及是否将请求传递给下一个对象。 责任链模式通常在…

数字时代的软件架构:持续架构的兴起与架构师角色的转变

在数字化浪潮的推动下,软件架构领域正经历着前所未有的变革。Eoin Woods在《数字时代的软件架构》演讲中,深入探讨了这一变革,并提出了“持续架构”这一概念。本文将基于Eoin的观点,结合个人理解,探讨持续架构的重要性…

2000-2021年县域金融机构存贷款数据

2000-2021年县域金融机构存贷款数据 1、时间:2000-2021年 2、指标:统计年度、地区编码ID、县域代码、县域名称、所属地级市、所属省份、年末金融机构贷款余额/亿元、年末金融机构存款余额/亿元、年末城乡居民储蓄存款余额/亿元 3、来源:县…

音频Balance源码总结

音频Balance源码总结 何为音频Balance? 顾名思义,Balance及平衡,平衡也就是涉及多方,音频左右甚至四通道,调节所有通道的音量比,使用户在空间内听到各个通道的音频大小不一,好似置身于真实环境…

姚期智、张亚勤、薛澜、Stuart Russell、Max Tegmark,DeepMind研究员等共话全球AI治理丨大会回顾...

为什么AI安全已迫在眉睫?如何构建全球范围内的合作?民众该如何参与到其中?未来的AI系统将是什么样的? 2024年6月15日,智源大会第二天,多位AI安全领域专家进行圆桌讨论,连接中国北京和美国加利福…

Android隐藏状态栏和修改状态栏颜色_亲测有效

本文记录了隐藏状态栏和修改状态栏颜色以及电量、WiFi标志等内容的模式显示,亲测有效。 1、隐藏屏幕状态栏 public void hideStatusBar(BaseActivity activity) {Window window activity.getWindow();//没有这一行无效window.addFlags(WindowManager.LayoutParam…

基于自组织长短期记忆神经网络的时间序列预测(MATLAB)

LSTM是为了解决RNN 的梯度消失问题而诞生的特殊循环神经网络。该网络开发了一种异于普通神经元的节点结构,引入了3 个控制门的概念。该节点称为LSTM 单元。LSTM 神经网络避免了梯度消失的情况,能够记忆更长久的历史信息,更能有效地拟合长期时…

Spring Cloud LoadBalancer基础入门与应用实践

官网地址:https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器,它包含在SpringCloud-commons中用…

[OtterCTF 2018]Recovery

里克必须找回他的文件!用于加密文件的随机密码是什么 恢复他的文件 ,感染的文件 ? vmware-tray.ex 前面导出的3720.dmp 查找一下 搜索主机 strings -e l 3720.dmp | grep “WIN-LO6FAF3DTFE” 主机名 后面跟着一串 代码 aDOBofVYUNVnmp7 是不…

C++并发之环形队列(ring,queue)

目录 1 概述2 实现3 测试4 运行 1 概述 最近研究了C11的并发编程的线程/互斥/锁/条件变量,利用互斥/锁/条件变量实现一个支持多线程并发的环形队列,队列大小通过模板参数传递。 环形队列是一个模板类,有两个模块参数,参数1是元素…

【操作系统期末速成】 EP02 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言🚀🚀🚀二、正文:☀️☀️☀️2.1 考点二:操作系统的功能及接口2.2 考点三:操作系统的发展及分类2.3 考点四:操作系统的运行环境(重要) 一、前言&#x…

C++输出彩色方块

1.使用方法 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xab); ———————————————————————————————————————— 0 黑色 1 蓝色 2 绿色 3 湖蓝色 4 红色 5 紫色 6 黄色 7 白色 8 灰色 9 …