Java语言--->数据类型转化以及运算符

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文讲述了Java中的基本数据类型转换和运算符。在转换中,布尔型除外的8种类型可通过默认或强制转换相互转化,如`byte->short->int->long->float->double`。默认转换发生在不同类型运算时,系统会转为更大容量类型。强制转换可能引起精度损失或溢出。运算符包括算术(如+可做加法或字符串拼接)、比较、逻辑和赋值运算符。比较运算符如`==`、`<`等产生`boolean`结果,逻辑运算符`&&`、`||`具有短路效应。赋值运算符如`+=`简化了赋值过程。运算符的优先级也进行了简要说明。

一、基本数据类型的转化

一.基本数据类型的转换

8种基本数据类型出了布尔型都可以进行相互转换 (byte,short,int,long,float,double,char)
转化的方向byte-->short(char)-->int-->long-->float-->double

  ● 在程序语言中必须要进行数值之间的传递,会有类型不一样,所以必须进行数据类型之间的转换

1.默认转化
当多种数据类型进行运算时,系统会默认转化成容量大的类型
☞实例: int a,b=1;byte c=5;a=b+c;
▶此处的b+c,系统会默认将c转化成int类型来计算
小容量转化为大容量
([为什么8字节的long可以向字节更小的float转化呢]
▶因为是由于float类型的 小数点位特殊储存数据方式,详细请看--->float中小数点特殊存储方式
!!!进行数据之间计算时候有特殊的三个数据类型,分别是byte,short,char,他们会,默认转化成int类型的变量再进行运算
☞实例: byte a= 1; short b = 2; short c = a+b;此处报错

 ▶ !!!此处的代码会报错,在运行a+b时会将a与b转化成int类型,再赋值给a,因为a时short的所有会报错,要将(a+b)进行强制转化成int才行

2.强制转化:
此处要注意:强制转化可能导致精度降低数据溢出,要谨慎使用
●当要满足运算的需要,或者要求结果的数据类型时就要 强制转化数据类型
☞实例: 将short转化成int short a = 5; int b = (int)a;
*数据的溢出:
当将int数据转化成short时,会将int前16个[比特位]直接去掉,剩下的就是转化后的值
二、运算符*
1.算术运算符
●算术运算符有,+,-,*,/,%
运算符"+":数值加数值,相当于数学里的求和运算;
数值加字符串,进行字符串的相加
☞实例:int a=110; String str=100;System.out.println(a+str)
输出结果是110100;
2.比较运算符

赋值运算符包括:

==
比较符号两边数据是否相等,相等结果是true
<
比较符号左边的数据是否小于右边的数据,如果小于结果是true
>
比较符号左边的数据是否大于右边的数据,如果大于结果是true
<=
比较符号左边的数据是否小于等于右边的数据,如果小于等于结果是true
>=
比较符号左边的数据是否大于等于右边的数据,如果大于等于结果是true
!
比较符号两边数据是否不相等,不相等结果是true

注意事项:
⑴比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。
⑵.如果进行多次判断,不能连着写,例如1<x<3,此时需要用到逻辑运算符

3.逻辑运算符

       与(并且) && 全都是true才是true,否则是false

  或(或者) || 有一个是true就是true;全都是false就是false

   非(取反) !本来是true,变成false;本来是false,变成true

注意:与&&,或||,具有短路效果,如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能

注意事项:

   1.逻辑运算符只能用于boolean值。

   2.与、或需要左右各自有一个boolean值,
   但是取反只要有一个唯一的boolean值即可。

  3.与、或两种运算符,如果有多个条件,可以连续写。

          两个条件:条件A && 条件B

          多个条件:条件A && 条件B && 条件C && ...

Tips:

对于1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来:

int x = 2;

1 < x && x < 3

4.赋值运算符

+= 将该运算符左边的数值加上右边的数值, 其结果赋 值给左边变量本身 int a=5; a+=2; a=7 
-= 将该运算符左边的数值减去右边的数值, 其结果赋 值给左边变量本身 int a=5; a-=2; a=3 = 将该运算符左边的数值乘以右边的数值, 其结果赋 值给左边变量本身 int a=5; a=2; a=10

/=
将该运算符左边的数值整除右边的数值, 其结果赋
值给左边变量本身 int a=5; a/=2; a=2
%=
将该运算符左边的数值除以右边的数值后取余,其
结果赋值给左边变量本身 int a=5; a%=2; a=1
                                    关系运算符的优先级
优先级 运算符分类 结合顺序 运算符
分隔符 左结合 . [ ] () ; ,-
一元运算符 右结合 ++ -- ~
算术运算符与移位运算符 左结合 + - * / % << >> >>>
关系运算符 左结合 < > <= >= instanceof == !=
逻辑运算符 左结合 ! && 逻辑或 ~ & ^
三目运算符 右结合 布尔表达式?表达式1:表达式2
赋值运算符 右结合 = += -= *= /= %= <<= >>= >>>= &=
相关文章
|
1月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
66 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
7天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
18 4
|
8天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
27 4
|
6天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
15 1
|
21天前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
30 7
|
23天前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
15 3
|
21天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
33 0
[Java]“不同族”基本数据类型间只能“强转”吗?
|
23天前
|
Java 测试技术 开发者
🌟Java零基础-Lambda运算符详解 🌟
【10月更文挑战第12天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
21 1
|
28天前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
42 3
|
30天前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
47 4