百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

十五、Java运算符-赋值运算符与instanceof运算符

yuyutoo 2024-10-12 01:47 2 浏览 0 评论

赋值运算符

符号

说明

描述

=

赋值

将右操作数的值赋给左侧操作数

+=

加和赋值

将左操作数和右操作数相加赋值给左操作数

-=

减和赋值

将左操作数和右操作数相减赋值给左操作数

/=

除和赋值

将左操作数和右操作数相除赋值给左操作数

*=

乘和赋值

将左操作数和右操作数相乘赋值给左操作数

(%)=

取余和赋值

将左操作数和右操作数取余后赋值给左操作数

<<=

左移位赋值


>>=

右移位赋值


>>>=

无符号右移赋值


&=

按位与赋值


^=

按位异或赋值


|=

按位或赋值


案例:

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 ...
}

相关推荐

Google Chrome 100 Beta发布 用户代理字符串作用开始逐渐降低

GoogleChrome和MozillaFirefox都在迅速接近100版本,这有可能破坏一些错误识别浏览器版本的网站(可能导致访问不正常,这有点类似于众所周知的千年虫)。两种浏览器都在研究可能的...

如何在Chrome,Edge,Safari和Firefox中更改用户代理

无论您是SEO,营销人员还是Web开发人员,通常都可能需要更改浏览器的用户代理以测试其他内容。例如,您正在运行特定于MAC-OS的活动。要确定您的广告系列是否正常运行并且未针对Linux用户,更改浏览...

Mozilla正在测试新的浏览器UserAgent

Mozilla最近发布了一个实验项目来测试3位数的UserAgent版本“Firefox/100.0”会不会让一些网站停止正常工作。浏览器UserAgent是一串字符串,里面包含了浏览器的软件信息,版...

爬虫与User-Agent

什么是User-Agent呢?User-Agent是一个特殊字符串头,被广泛用来标示浏览器客户端的信息,使得服务器能识别客户机使用的操作系统和版本,CPU类型,浏览器及版本,浏览器的渲染引擎,浏览器...

让你的浏览器充满魔性——User Agent Switche

对于前端人员,闲暇时就会研究各种插件,今天我就分享UserAgentSwitcher在Firefox和Chrome的使用情况。一、Firefox浏览器UserAgentSwitcher作为火...

亚马逊账号运营安全-浏览器指纹识别之User-Agent开篇

UA包含了一个约定的特征字符串。主要是面向受访问网络表明自己的操作系统,软件开发商,版本,应用类型等信息。这是一种主动暴露信息的方式。我们来看关于UA的简单语法定义:User-Agent:<p...

【每日学习】Python爬虫之伪装浏览器User-Agent

【主题】Python爬虫之伪装浏览器原理【分析】1.创建自定义请求对象的目的,对抗网站的反爬虫机制2.反爬虫机制1:判断用户是否是浏览器访问(User-Agent)3.对抗措施1:伪装浏览器进行访问【...

亚马逊账号运营安全-浏览器指纹识别之User-Agent二篇

大家好,上一篇亚马逊账号运营安全-浏览器指纹识别之User-Agent开篇为大家阐述了原理。下面是作者为大家整理的其他几个主流浏览器的UA配置。一下都是Windows1064X系统下整理。Chrom...

常见的爬虫UserAgent

通过前面的文章我们知道,UserAgent(用户代理)是HTTP请求的一部分,用于告诉服务器发起请求的客户端类型和属性等信息。同时,也了解了常见的UserAgent。...

HTTP请求头之User-Agent

什么是User-AgentUser-Agent中文名为用户代理,简称UA,...

你想不到的浏览器流氓史!那些奇怪的User-Agent,是这么来的...

平时我们用chrome浏览器做开发测试。Chrome的Useragent字段怎么这么奇怪?...

谷歌宣布 Chrome 将逐步停止支持 User Agent

谷歌近日宣布将放弃对Chrome浏览器中用户代理字符串(User-AgentString)的支持。取而代之的是,Chrome将提供一个名为“客户端提示(ClientHints)”的新API...

数据采集-用户代理(useragent)

UserAgent分类:PC端的UserAgent。移动端UserAgent。使用UserAgent的必要性:在写python网络爬虫程序的时候,经常需要修改UserAgent,有很多原因,罗列几个如...

如何获取当前浏览器的useragent

有时候,我们需要得到浏览器的useragent,从而再进行后面的一系列判断,返回不同的值。网上有说,在浏览器地址栏输入:javascript:alert(navigator.userAgent)这种方...

User Agent 解析:它是什么以及如何修改

什么是UserAgent?UserAgent,简称UA,是一个使服务器能够识别用户使用的浏览器类型、版本以及运行浏览器的操作系统等信息的字符串。它作为浏览器请求头部信息的一部分发送给服务器,以便服务...

取消回复欢迎 发表评论: