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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 该文介绍了Java中基本数据类型的转换,包括自动转换(如小容量转大容量)和强制转换,强调了强制转换可能带来的精度损失和溢出风险。此外,还概述了运算符的使用,包括算术运算符(如加法支持不同类型间的运算)、比较运算符(如`==`、`<`等)、逻辑运算符(`&&`、`||`、`!`,具有短路效果)以及赋值运算符(如`+=`、`=`)。文章提到了运算符的优先级规则,并给出了相关示例。

一、基本数据类型的转化

一.基本数据类型的转换

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天前
|
Java C语言
java中8种基本类型与运算符
java中8种基本类型与运算符
14 3
|
1天前
|
存储 Java
Java语言--->数据类型转化以及运算符
本文讲述了Java中的基本数据类型转换和运算符。在转换中,布尔型除外的8种类型可通过默认或强制转换相互转化,如`byte-&gt;short-&gt;int-&gt;long-&gt;float-&gt;double`。默认转换发生在不同类型运算时,系统会转为更大容量类型。强制转换可能引起精度损失或溢出。运算符包括算术(如+可做加法或字符串拼接)、比较、逻辑和赋值运算符。比较运算符如`==`、`&lt;`等产生`boolean`结果,逻辑运算符`&&`、`||`具有短路效应。赋值运算符如`+=`简化了赋值过程。运算符的优先级也进行了简要说明。
|
1天前
|
存储 Java 索引
Java 运算符详解与字符串处理技巧
赋值运算符 赋值运算符用于将值赋给变量。 在下面的示例中,我们使用赋值运算符(=)将值 10 赋给一个名为 x 的变量:
47 0
|
9月前
|
存储 Java
Java变量、数据类型和运算符 2
Java变量、数据类型和运算符
43 0
|
1天前
|
存储 Java C#
【从Java转C#】第七章:运算符和类型强制转换
【从Java转C#】第七章:运算符和类型强制转换
|
9月前
|
存储 SQL Java
Java变量、数据类型和运算符 1
Java变量、数据类型和运算符
42 0
|
9月前
|
存储 Java
java变量、数据类型和运算符-3
事实上,自动类型转换并非所有情况下都有效。如果不满足上述条件,当必须将double类型变量的值赋给一个int类型变量时,该如何进行转换呢?这时系统就不会完成自动类型转换了。
58 0
|
9月前
|
存储 SQL Java
java变量、数据类型和运算符-2
2.1.4 变量命名规则 旅馆可以随心所欲地给房间命名,可以是数字"1001",也可以是一些有趣的名称,如"美国总统"、"英国女王"、"埃塞俄比亚王妃"等。但是在给变量命名时,就要受到一些约束,如表2-3所示。那么什么样的名称才正确呢?
54 0
|
9月前
|
存储 Java
java变量、数据类型和运算符-4
练习——升级“我行我素购物管理系统”,实现打印购物小票和计算积分功能
102 0
|
9月前
|
存储 IDE Java
java变量、数据类型和运算符-1
本章工作任务 实现购物结算,打印购物小票 模拟商场幸运抽奖,计算会员卡各位数字之和 根据商品折扣判断折扣价 本章技能目标
55 0
http://www.vxiaotou.com