【Java】数据类型及类型转换

数据类型

Java语言的数据类型分为两大类:

  1. 基础数据类型
  2. 引用数据类型

基础数据类型

基础数据类型包括以下8种:

类型名称关键字占用内存取值范围区间描述
字节型byte1 字节-128~127-27~27-1
短整型short2 字节-32768~32767-215~215-1
整型int4 字节-2147483648~2147483647-231~231-1
长整型long8 字节-9223372036854775808L~9223372036854775807L-263~263-1
单精度浮点型float4 字节+/-3.4E+38F(6~7个有效位)
双精度浮点型double8 字节+/-1.8E+308(15 个有效位)
字符型char2 字节ISO单一字符集
布尔型boolean1 字节true 或 false

所有基本数据类型的大小在各种不同的平台上保持不变,有助于提高Java程序的可移植性。

引用数据类型

引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。它们由用户自定义,用于限制其他数据的类型。Java不支持C++中的指针类型、结构类型、联合类型和枚举类型。

Java是一种强制类型的语言,所有变量都必须先定义其数据类型,然后才能使用。

在这里插入图片描述

  • 对于长整型(long),若赋值超出int型最大最小值,需在数字后加Ll
  • 默认情况下,小数被视为double型。
  • 定义字符型变量时,要用单引号表示。
  • 布尔类型通常用于流程控制中作为判断条件。

类型转换

从低精度数据类型向高精度数据类型转换不会溢出且总是成功;而高精度向低精度转换可能会导致信息丢失。

隐式类型转换

小容量向大容量转换,称为自动类型转换。

  • byte,short,char --> int --> long --> float --> double

显式类型转换

大容量向小容量转换,需要使用强制类型转换符。(类型名)要转换的值

// 操作大数时,注意溢出问题
int m = 10_0000_0000;
int y = 20;
long t3 = m * ((long)y);
System.out.println(t3);

拓展

整数拓展

  • 进制:二进制(0b)、十进制、八进制(0)、十六进制(0x
int i = 10;
int i1 = 0b10;
int i2 = 007;  // 八进制
int i3 = 0x10; // 十六进制
System.out.println(i);	// 10
System.out.println(i1); // 2
System.out.println(i2); // 7
System.out.println(i3); // 16

浮点数拓展

  • float类型有限且离散,可能会有舍入误差。
  • 最好避免使用浮点数进行精确比较。
  • 使用BigDecimal类处理需要高精度的计算,如银行业务。
float f = 0.1f;
double d = 1.0 / 10;

System.out.println(f == d); // false
System.out.println(f);
System.out.println(d);

float d1 = 2333333333333f;
float d2 = d1 + 1;
System.out.println(d1 == d2);  // true

字符拓展

  • 所有字符本质上是数字。
  • Java采用Unicode编码格式。(0~65536)
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);	// 强制类型转换 97
System.out.println(c2);
System.out.println((int)c2);	// 强制类型转换 20013

布尔值拓展

boolean flag = true;
if (flag) {} // 等价于 if (flag == true)

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

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

相关文章

nftables(7)集合(SETS)

简介 在nftables中,集合(sets)是一个非常有用的特性,它允许你以集合的形式管理IP地址、端口号等网络元素,从而简化规则的配置和管理。 nftables提供了两种类型的集合:匿名集合和命名集合。 匿名集合&…

高职院校人工智能人才培养成果导向系统构建、实施要点与评量方法

一、引言 近年来,人工智能技术在全球范围内迅速发展,对各行各业产生了深远的影响。高职院校作为培养高技能人才的重要基地,肩负着培养人工智能领域专业人才的重任。为了适应社会对人工智能人才的需求,高职院校需要构建一套科学、…

大模型产品琳琅满目,企业应该如何选择?

AI 和大模型方兴未艾,我们每天都在看到和尝试不同版本、不同品牌的大模型产品,它们的能力各不相同。无论是个人还是企业,都在思考如何尽早地参与进来到大模型的浪潮当中来。 目前,一些先锋企业已经将 AI 和大模型融入到他们的日常…

C#学习

C#学习 1.B站丑萌气质狗C#的循环-判断泛型错误处理面向对象static的使用定义showInfo类和Hero类 在这里插入图片描述 然后在该解决方案add新建一个类库,点击rebuild,会在bin文件夹下生成.dll文件 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direc…

无人机之图传距离的决定因素

一、发射功率:图传设备的发射功率越大,信号能够传播的距离就越远 二、工作频段:不同频段具有不同的传播特性,一些频段在相同条件下可能具有更远的传输距离。 三、天线性能:优质的天线可以增强信号的发送和接收能力&a…

php相关

php相关 ​ 借鉴了小迪安全以及各位大佬的博客,如果一切顺利,会不定期更新。 如果感觉不妥,可以私信删除。 默认有php基础。 文章目录 php相关1. php 缺陷函数1. 与2. MD53. intval()4. preg_match() 2. php特性1. php字符串解析特性2. 杂…

jdk22+maven环境配置教程+idea的maven环境配置(Windows系统)

前言 jdk是Java开发必要的编程环境,idea是常用的Java开发工具,这里着重解释一下maven。 maven就是我们经常看见的pom.xml文件,maven有以下三点功能: 1.项目构建(可以帮助我们更快速的打包、构建项目) 2.依…

<数据集>钢铁缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1800张 标注数量(xml文件个数):1800 标注数量(txt文件个数):1800 标注类别数:6 标注类别名称:[crazing, patches, inclusion, pitted_surface, rolled-in_scale, scr…

Blender使用(二)点线面基本操作

Blender使用之点线面 1.编辑模式 tab键进行切换,为了方便菜单调出,可以设置键位映射为拖动时的饼菜单。 设置好后,按住tab键移动鼠标(注意不要点击鼠标),即可弹出编辑菜单。 默认是点模式,在左上角可进行点线面的切换…

C++从入门到精通(第2版) 中文电子版

前言 C(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼斯特劳斯特卢普在AT&T贝尔工作室研发。C既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对…

[C++] 由浅入深理解面向对象思想的组成模块

文章目录 (一) 类的默认成员函数(二) 构造函数构造函数的特征构造函数示例无参构造带参构造 冲突:全缺省参数的构造函数与无参构造函数 (三)析构函数特性析构函数的析构过程解析 (四)拷贝构造函数什么是拷贝构造?特性为…

H2数据库启动时,设置非“全零监听”

全零监听 全零监听(即将监听地址设置为全零地址,如IPv4中的0.0.0.0或IPv6中的::)在网络服务配置中确实存在一定的安全风险。以下是全零监听可能带来的安全风险: 1. 暴露服务到不安全网络 全网段监听:将监听地址设置…

nuitka 打包python程序成windows exe可执行文件

参考: https://www.zhihu.com/question/281858271/answer/2466245521 https://www.zhihu.com/question/281858271 https://zhuanlan.zhihu.com/p/689115995 https://blog.csdn.net/Pan_peter/article/details/136411229 下载: pydantic-2.6.1 pydantic-…

【linux高级IO(三)】初识epoll

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux高级IO 1. 前言2. 初识e…

微服务到底是个什么东东?

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务运行在其独立的进程中,服务和服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的…

在设计电气系统时,电气工程师需要考虑哪些关键因素?

在设计电气系统时,电气工程师需要考虑多个关键因素,以确保系统的安全性、可靠性、效率和经济性。我收集归类了一份plc学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言…

浅析stm32启动文件

浅析stm32启动文件 文章目录 浅析stm32启动文件1.什么是启动文件?2.启动文件的命名规则3.stm32芯片的命名规则 1.什么是启动文件? 我们来看gpt给出的答案: STM32的启动文件是一个关键的汇编语言源文件,它负责在微控制器上电或复位…

SpringBoot使用开发环境的application.properties

在Spring Boot项目中,application.properties 或 application.yml 文件是用于配置应用程序外部属性的重要文件。这些文件允许定制你的应用,而无需更改代码。根据不同的运行环境,可以通过创建以application-{profile}.properties格式命名的文件…

高效运转!便携式果汁机必备霍尔板

文章目录 文章目录 前言 一、 直流电机原理 二、 通过霍尔传感器控制无刷直流电机 三、 霍尔在霍尔板上的位置 前言 今天给大家带来一款运用在果汁机上的霍尔板,饮料再好,终归是饮料,果汁再好喝,也不如自己亲自榨得健康。 生活水…

『大模型笔记』什么是 AI 智能体?

『大模型笔记』什么是 AI 智能体? 文章目录 一. 什么是 AI 智能体?从单一模型向复合 AI 系统的转变示例:查询假期天数复合 AI 系统的模块化设计检索增强生成(RAG)AI 智能体的作用大语言模型智能体的组成部分推理能力行动能力访问记忆的能力ReACT 方法示例:度假计划复合 A…