java运算符与基本数据类型转换

简介: 本节将介绍java运算符与基本数据类型转换。

运算符

算数运算符

+//数字,字符串

-

*

/

% //取余:11%9=2

++与– –

前加加,先运算后取值

后加加,先取值后运算

关系运算符

relational operator

结果都是布尔值

==

!= //不等

<>=结合操作

位运算符

举个例子吧

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

我们仔细看下最后一个~的运算

这个需要兄弟们学习补码原码反码的知识

我只简单说下原理吧

e.g

我们算~4

先写出他的原码:0000 0100

再取反 1111 1011

减一 1111 1010

负数的反码等于原码除了符号位以外的全部位取反加,补码等于反码加一(所以反码=补码-1)

取反 1000 0101

所以返回-5

总结一下:

正数是先直接取反运算,再转原码取值。
负数是先转原码,在进行取反运算取值。

这个先有个大致概念吧,等练习的时候会有深入讲解的。

逻辑运算符

这个和高中讲的逻辑电路一样的道理

如果家人们高中没好好学习,可以看下下面的解释:

&& (且) 当且仅当两个操作数都为真,条件才为真。

|| (或) 如果任何两个操作数任何一个为真,条件为真。

! (非) 用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false

是不是非常简单,不过还有一个我们必须了解的短路逻辑运算符

当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

条件运算符(?:)

该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量

public class Test {
   public static void main(String[] args){
      int a , b;
      a = 2;
      b = (a == 1) ? 20 : 30;
//if a = 1则b 为 20,否则为 30
      System.out.println(b);
>>>30
      b = (a == 2) ? 20 : 30;
//if a = 2则b 为 20,否则为 30
      System.out.println(b);
>>>20
   }
}

基本数值类型转换

自动转换

byte b = 10;

int a =20;

byte c;

c= a + b;

error:Incompatible types. Found: 'int', required: 'byte'

他告诉我们: 不兼容的类型: 从int转换到byte可能会有损失

如果两个值不一致,会自动将小类型转化为大类型

强制转换

当然,我们也可以进行强制转换

e.g

byte b = 10;

int a =20;

byte c;

c= (byte)[a + b];

这样就不会报错了。

是不是很简单

but 真的这么简单吗?

我们输入以下代码

byte b = 10;

int a =200;

byte c;

c= (byte)[a + b];

然后运行出来发现结果竟然是-46!!!

为什么捏?简单来说,byte只能储存8位机器数值,但是210显然远远超过了其可存的最大值,因此,就值取了后八位

那么,为了避免强制转换所带来的风险

我们一般使用int,long类型来进行操作

long b = 10;

long a =200;

long c;

c= (long) (a + b);
System.out.println(c);
>>>210

这样输出的就是正确的值了。

目录
相关文章
|
6天前
|
存储 缓存 安全
Java中的数据类型
Java语言提供了八种基本类型,分为4类8种:六个数值型(四个整数型byte、short、int、long,两个浮点型float、double)、一个字符型char和一个布尔型boolean。每种基本类型有固定的位数、取值范围及默认值。此外,还存在`void`类型,但无法直接操作。基本类型支持隐式和显式类型转换,并有对应的包装类如`Integer`、`Double`等,用于在需要对象的场景中使用。包装类支持自动装箱与拆箱机制,简化了基本类型与引用类型的转换,但需要注意性能和空指针异常等问题。
Java中的数据类型
|
3月前
|
Java
Java运算符
Java运算符
54 12
|
3月前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
86 2
|
1月前
|
Java
Java基础之数据类型
Java基础之数据类型
20 6
|
1月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
58 7
|
1月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
68 4
|
1月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
42 1
|
2月前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
56 7
|
2月前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
71 3
|
2月前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
40 0
[Java]“不同族”基本数据类型间只能“强转”吗?