网站首页 > 技术文章 正文
赋值运算符
符号 | 说明 | 描述 |
= | 赋值 | 将右操作数的值赋给左侧操作数 |
+= | 加和赋值 | 将左操作数和右操作数相加赋值给左操作数 |
-= | 减和赋值 | 将左操作数和右操作数相减赋值给左操作数 |
/= | 除和赋值 | 将左操作数和右操作数相除赋值给左操作数 |
*= | 乘和赋值 | 将左操作数和右操作数相乘赋值给左操作数 |
(%)= | 取余和赋值 | 将左操作数和右操作数取余后赋值给左操作数 |
<<= | 左移位赋值 | |
>>= | 右移位赋值 | |
>>>= | 无符号右移赋值 | |
&= | 按位与赋值 | |
^= | 按位异或赋值 | |
|= | 按位或赋值 |
案例:
public class AssignmentOperatorsExample {
public static void main(String[] args) {
// 基础赋值运算符 =
int baseValue = 10;
System.out.println("Original baseValue: " + baseValue);
// 复合赋值运算符
// 1. 加法赋值运算符 +=
baseValue += 5;
System.out.println("baseValue after adding 5: " + baseValue);
// 2. 减法赋值运算符 -=
baseValue -= 3;
System.out.println("baseValue after subtracting 3: " + baseValue);
// 3. 乘法赋值运算符 *=
baseValue *= 2;
System.out.println("baseValue after multiplying by 2: " + baseValue);
// 4. 除法赋值运算符 /=
baseValue /= 2;
System.out.println("baseValue after dividing by 2: " + baseValue);
// 5. 模(取余)赋值运算符 %=
baseValue %= 3;
System.out.println("baseValue after taking modulo with 3: " + baseValue);
// 6. 左移赋值运算符 <<=
baseValue <<= 1;
System.out.println("baseValue after shifting left by 1 bit: " + baseValue);
// 7. 右移赋值运算符 >>=
baseValue >>= 1;
System.out.println("baseValue after shifting right by 1 bit: " + baseValue);
// 8. 无符号右移赋值运算符 >>>=
baseValue = 10;
baseValue >>>= 1;
System.out.println("baseValue after unsigned right shift by 1 bit: " + baseValue);
// 9. 按位与赋值运算符 &=
int anotherValue = 5;
anotherValue &= 3; // 只保留同时存在于anotherValue和3中的二进制位
System.out.println("anotherValue after bitwise AND assignment: " + anotherValue);
// 10. 按位或赋值运算符 |=
anotherValue |= 2; // 添加另一个Value中不存在但在2中存在的二进制位
System.out.println("anotherValue after bitwise OR assignment: " + anotherValue);
// 11. 按位异或赋值运算符 ^=
anotherValue ^= 3; // 对anotherValue和3的相同位进行翻转
System.out.println("anotherValue after bitwise XOR assignment: " + anotherValue);
}
}
结果:
Original baseValue: 10
baseValue after adding 5: 15
baseValue after subtracting 3: 12
baseValue after multiplying by 2: 24
baseValue after dividing by 2: 12
baseValue after taking modulo with 3: 0
baseValue after shifting left by 1 bit: 0
baseValue after shifting right by 1 bit: 0
baseValue after unsigned right shift by 1 bit: 5
anotherValue after bitwise AND assignment: 1
anotherValue after bitwise OR assignment: 3
anotherValue after bitwise XOR assignment: 0
instanceof运算符
在Java编程语言中,"instanceof" 是一个二元运算符,检测对象是否属于某个类或者实现了某个接口。
语法格式:
object instanceof ClassName
参数 | 说明 |
object | 要检查的对象引用 |
ClassName | 类的名字,也可以是接口的名字 |
当“object”引用的对象是由“ClassName”类或其任何子类实例化时,“instanceof”运算符返回“true”;如果对象不是“ClassName”类或其任何子类的实例,则返回“false”。
例如:
public class InstanceOfExample {
public static void main(String[] args) {
// 创建一个对象
Animal animal = new Dog();
// 使用 instanceof 运算符进行类型检查和转换
checkType(animal);
}
// 定义一个通用方法检查对象类型并打印结果
public static void checkType(Object obj) {
if (obj instanceof Animal) {
System.out.println(obj + " 是 Animal 类型或其子类的实例.");
}
if (obj instanceof Dog) {
System.out.println(obj + " 是 Dog 类型的实例.");
// 如果确定是 Dog 类型,还可以安全地向下转型
Dog dog = (Dog) obj;
dog.bark();
}
if (obj instanceof Cat) {
System.out.println(obj + " 是 Cat 类型的实例.");
}
}
}
// 基类
class Animal {
// ...
}
// 子类
class Dog extends Animal {
public void bark() {
System.out.println("Woof!");
}
}
class Cat extends Animal {
// ...
}
结果:
org.chewing.exercise.Dog@682a0b20 是 Animal 类型或其子类的实例.
org.chewing.exercise.Dog@682a0b20 是 Dog 类型的实例.
Woof!
“instanceof“运算符经常用于类型安全的向下转型前的检查,确保对象可以被安全地转换为其父类或接口的子类型。
例如:
if (myAnimal instanceof Dog) {
Dog myDog = (Dog) myAnimal; // 在确定是Dog类型之后进行安全的类型转换
// ... 进一步操作 myDog ...
}
猜你喜欢
- 2024-09-23 Java虚拟机类加载机制及双亲委派模式分析
- 2024-09-23 阿里巴巴 Java 开发手册之MySQL 规约
- 2024-09-23 嵌入式C基础编程——5年程序员给你讲解数据类型、运算符与表达式
- 2024-09-23 从linux源码看socket(tcp)的timeout
- 2024-09-23 MySQL高性能优化规范建议,从设计,命名,开发等一条线的建议
- 2024-09-23 面试官:MySQL的自增ID用完了,怎么办?
- 2024-09-23 016:字符串对象在JVM中是如何存放的
- 2024-09-23 Redis 数据结构与内存管理策略(上)
- 2024-09-23 用 C++ 和 Java 写算法,差别大吗?
- 2024-09-23 程序员必须了解的——契约式编程(面向契约编程)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 569℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 511℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 468℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 447℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 445℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)