深入理解 Java 的数据类型与运算符

news2025/1/22 22:14:22

Java学习资料

Java学习资料

Java学习资料


在 Java 编程中,数据类型与运算符是构建程序的基础元素。它们决定了数据在程序中的存储方式以及如何对数据进行各种操作。

一、数据类型

(一)基本数据类型

整型:

用于存储整数数值,根据取值范围的不同,分为 byte、short、int 和 long。

byte 类型占 1 个字节,取值范围是 - 128 到 127,常用于节省内存空间,比如在处理网络数据时,可使用 byte 数组来存储字节流数据。

short 类型占 2 个字节,取值范围是 - 32768 到 32767,适用于一些对内存空间要求较高且数值范围不大的场景。

int 类型占 4 个字节,取值范围是 - 2147483648 到 2147483647,是最常用的整数类型,在一般的整数运算场景中广泛使用。

long 类型占 8 个字节,取值范围极大,用于存储较大的整数,如在处理时间戳(以毫秒为单位)等场景中经常使用。

浮点型:

用于表示带有小数部分的数值,包括 float 和 double。

float 类型占 4 个字节,是单精度浮点数,可精确到小数点后 6 - 7 位,常用于对精度要求不特别高且需要节省内存的场景,如简单的图形渲染计算。

double 类型占 8 个字节,是双精度浮点数,可精确到小数点后 15 位左右,在大多数涉及小数运算的场景中,由于其更高的精度,是首选的数据类型,例如科学计算、金融计算等领域。

字符型:

char 类型占 2 个字节,用于表示单个字符,采用 Unicode 编码,可以表示世界上几乎所有的字符。它通常用于处理文本数据中的单个字符,比如在字符串处理中,通过 char 类型来获取字符串中的每一个字符。

布尔型:

boolean 类型只有两个值,即 true 和 false,用于表示逻辑判断的结果,在条件判断语句(如 if - else、while 循环等)中起着关键作用,决定程序的执行流程。

(二)引用数据类型

除了基本数据类型,Java 还有引用数据类型,如类、接口、数组等。引用数据类型变量存储的是对象在内存中的地址,而非数据本身。例如,当我们创建一个自定义类的对象时,通过对象引用变量来访问对象的属性和方法。引用数据类型为程序提供了更丰富的数据组织和操作方式,是面向对象编程的重要基础。

二、运算符

(一)算术运算符

加(+)、减(-)、乘(*)、除(/):

这是最基本的算术运算,用于对数值进行相应的数学计算。需要注意的是,整数除法会舍去小数部分,例如 5 / 2 的结果是 2。

取模(%):

用于获取两个数相除的余数,例如 7 % 3 的结果是 1。在一些需要周期性处理的场景中,取模运算符非常有用,如在循环遍历数组时,通过取模操作可以实现循环索引,避免数组越界。

(二)赋值运算符

赋值运算符 “=” 用于将右侧表达式的值赋给左侧的变量。例如,int a = 5; 表示将数值 5 赋给变量 a。此外,还有一些复合赋值运算符,如 +=、 -=、 *=、 /=、 %= 等。例如,a += 3; 相当于 a = a + 3; 这些复合赋值运算符可以简化代码书写,同时在一定程度上提高代码的可读性。

(三)比较运算符

比较运算符用于比较两个值的大小或是否相等,结果是一个布尔值(true 或 false)。常见的比较运算符有:

等于(==):

判断两个值是否相等,例如 5 == 3 的结果是 false。

不等于(!=):

判断两个值是否不相等,例如 5!= 3 的结果是 true。

大于(>)、小于(<)、大于等于(>=)、小于等于(<=):

用于比较两个数值的大小关系,例如 5 > 3 的结果是 true,而 5 <= 3 的结果是 false。这些比较运算符在条件判断语句中广泛应用,用于控制程序的执行流程。

(四)逻辑运算符

逻辑运算符用于对布尔值进行逻辑运算,结果也是布尔值。主要包括:

逻辑与(&&):

当且仅当两个操作数都为 true 时,结果才为 true,否则为 false。例如,(5> 3) && (2 < 4) 的结果是 true,因为两个条件都为真。在使用逻辑与运算符时,如果第一个操作数为 false,第二个操作数将不会被计算,这种特性称为 “短路求值”。

逻辑或(||):

只要两个操作数中有一个为 true,结果就为 true,只有当两个操作数都为 false 时,结果才为 false。例如,(5> 3) || (2 > 4) 的结果是 true。同样,逻辑或运算符也存在 “短路求值” 特性,当第一个操作数为 true 时,第二个操作数不会被计算。

逻辑非(!):

用于对一个布尔值取反,例如!true 的结果是 false,!false 的结果是 true。逻辑非运算符常用于需要对条件进行反向判断的场景。

(五)位运算符

位运算符用于对二进制位进行操作,主要包括:

按位与(&):

将两个操作数的对应二进制位进行与运算,只有当两个对应位都为 1 时,结果位才为 1,否则为 0。例如,5 & 3,5 的二进制表示为 101,3 的二进制表示为 011,经过按位与运算后,结果为 001,即 1。

按位或(|):

将两个操作数的对应二进制位进行或运算,只要两个对应位中有一个为 1,结果位就为 1,否则为 0。例如,5 | 3 的结果为 111,即 7。

按位异或(^):

将两个操作数的对应二进制位进行异或运算,当两个对应位不同时,结果位为 1,相同时为 0。例如,5 ^ 3 的结果为 110,即 6。

按位取反(~):

对一个操作数的二进制位进行取反操作,0 变为 1,1 变为 0。例如,~5 的结果为 - 6,因为 5 的二进制表示为 00000101,取反后为 11111010,这是 - 6 的补码表示。

了解和熟练掌握 Java 的数据类型与运算符,是编写高效、准确的 Java 程序的基础。通过合理运用这些基础元素,开发者能够实现各种复杂的业务逻辑和功能需求。

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

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

相关文章

Python新春烟花

目录 系列文章 写在前面 技术需求 完整代码 下载代码 代码分析 1. 程序初始化与显示设置 2. 烟花类 (Firework) 3. 粒子类 (Particle) 4. 痕迹类 (Trail) 5. 烟花更新与显示 6. 主函数 (fire) 7. 游戏循环 8. 总结 注意事项 写在后面 系列文章 序号直达链接爱…

【leetcode 24】151.翻转字符串里的单词==❗没看懂❗==

思路&#xff1a; 一些同学会使用split库函数&#xff0c;分隔单词&#xff0c;然后定义一个新的string字符串&#xff0c;最后再把单词倒序相加&#xff0c;那么这道题题目就是一道水题了&#xff0c;失去了它的意义。 所以这里我还是提高一下本题的难度&#xff1a;不要使用辅…

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED&#xff08;u8g2&#xff09;显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…

Oracle审计

审计是监控选定的用户数据库操作的过程 审计的目的&#xff1a; 调查可疑的数据库活动&#xff1a; 审计可以帮助检测和跟踪潜在的 security breaches、未授权的访问尝试或其他异常行为。通过分析审计日志&#xff0c;可以确定可疑活动的来源、时间、频率和影响。 收集特定数…

智能新浪潮:亚马逊云科技发布Amazon Nova模型

在2024亚马逊云科技re:Invent全球大会上&#xff0c;亚马逊云科技宣布推出新一代基础模型Amazon Nova&#xff0c;其隶属于Amazon Bedrock&#xff0c;这些模型精准切入不同领域&#xff0c;解锁多元业务可能&#xff0c;为人工智能领域带来革新。 带你认识一起了解Amazon Nova…

2025 OWASP十大智能合约漏洞

随着去中心化金融&#xff08;DeFi&#xff09;和区块链技术的不断发展&#xff0c;智能合约安全的重要性愈发凸显。在此背景下&#xff0c;开放网络应用安全项目&#xff08;OWASP&#xff09;发布了备受期待的《2025年智能合约十大漏洞》报告。 这份最新报告反映了不断演变的…

力扣面试经典题

目录 前言 一、合并两个有序数组 二、移除元素 三、删除有序数组的重复项 四、删除有序数组的重复项Ⅱ 五、取数组中出现次数大于数组长度/2的元素 六、移动数组元素 七、计算数组中相差最大的值 八、字母异位词分组 九、最长连续序列 十、移动0 十一、盛水最多的容…

【RabbitMq】RabbitMq高级特性-延迟消息

延迟消息 什么是延迟消息死信交换机延迟消息插件-DelayExchange其他文章 什么是延迟消息 延迟消息&#xff1a;发送者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间之后才收到消息。 延迟任务&#xff1a;设置在一定时间之后才执行的任…

抖音小程序一键获取手机号

前端代码组件 <button v-if"!isFromOrderList"class"get-phone-btn" open-type"getPhoneNumber"getphonenumber"onGetPhoneNumber">一键获取</button>// 获取手机号回调onGetPhoneNumber(e) {var that this tt.login({f…

CSS:语法、样式表、选择器

目录 一、语法 二、创建 外部样式表 内部样式表 内联样式 三、选择器 ID选择器 类选择器 伪类选择器 :hover a:link a:active a:visited 属性选择器 伪元素选择器 ::first-letter ::first-line ::selection ::placeholder ::before 和::after 通配选择器 标…

配电自动化中的进线监控技术

进线监控技术是配电网自动化中的一项关键技术&#xff0c;它主要用于对配电网进线变电站的开关状态以及母线电压、电流、有功功率、无功功率及电度量等参数进行实时监测。以下是对进线监控技术的详细介绍&#xff1a; 一、技术原理 进线监控技术基于传感器技术、数据采集技术、…

【三维分割】Gaga:通过3D感知的 Memory Bank 分组任意高斯

文章目录 摘要一、引言二、主要方法2.1 3D-aware Memory Bank2.2 三维分割的渲染与下游应用 三、实验消融实验应用: Scene Manipulation 地址&#xff1a;https://www.gaga.gallery 标题&#xff1a;Gaga: Group Any Gaussians via 3D-aware Memory Bank 来源&#xff1a;加利福…

《王者荣耀》皮肤爬虫源码

1.爬取网页 https://pvp.qq.com/web201605/herolist.shtml 2.python代码 import requests from bs4 import BeautifulSoup import os import threading from queue import Queuedef mul(x):if not os.path.exists(x):os.mkdir(x)print("目录创建成功")else:pass h…

iconfont等图标托管网站上传svg显示未轮廓化解决办法

打开即时设计 即时设计 - 可实时协作的专业 UI 设计工具 导入图标后拖入画板里面&#xff0c;右键选择轮廓化 将图标导出

【Linux系列】查看服务器是否使用了 SSD 的多种方法

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【AIGC】ChatGPT 的 Prompt Hacker 技巧:让简历轻松通过 AI 筛选

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;背景简化简历格式 &#x1f4af;简化 Prompt Hacker 的逻辑使用 Prompt Hacker 技巧**示例 Prompt&#xff1a;引导 AI 筛选简历**如何利用 Prompt 优化简历筛…

AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引发DDoS风险/OpenAI 代理工具即将发布

1、OpenAI 的安全疏忽&#xff1a;ChatGPT API 漏洞引发DDoS风险 德国安全研究员 Benjamin Flesch 发现了一个严重的安全漏洞&#xff1a;攻击者可以通过向 ChatGPT API 发送一个 HTTP 请求&#xff0c;利用 ChatGPT 的爬虫对目标网站发起 DDoS 攻击。该漏洞源于 OpenAI 在处理…

windows下使用docker执行器并配置 hosts 解析

本篇目录 1. 问题背景2. 环境准备2.1 云上开通windows 2022 英文版机器2.1.1 安装 git2.1.2 安装 runner2.1.3 装docker2.1.4 注册runner并使用docker执行器 3. 项目信息3.1 编写window bat脚本3.2 项目.gitlab-ci.yml文件 4. 测试结论4.1 运行流水线 5. troubleshooting问题1&…

centos9编译安装opensips 二【进阶篇-定制目录+模块】推荐

环境&#xff1a;centos9 last opensips -V version: opensips 3.6.0-dev (x86_64/linux) flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, CC_O0, FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS1024, MAX_RE…

靶机复现-pikachu靶机文件包含漏洞

本篇文章旨在为网络安全渗透测试靶机复现学习。通过阅读本文&#xff0c;读者将能够对渗透pikachu靶场文件包含漏洞复现有一定的了解 原文学习链接 CSDN博主&#xff1a;One_Blanks主页地址 靶机资源下载 PHPStudy pikachu 一、前言 文件包含漏洞是编程中的一种安全隐患&a…