首页 > 编程语言 >Java学习笔记10-运算符

Java学习笔记10-运算符

时间:2024-08-28 09:06:33浏览次数:11  
标签:语句 10 Java 变量 int 运算符 true

Java运算符是用于执行各种数学、逻辑和位运算的符号。Java中的运算符可以分为以下几类:

一、算术运算符
用于执行基本的数学运算,如加、减、乘、除和取模。常用的算术运算符包括+、-、*、/和%。

算数运算符详解
Java中的算术运算符包括加、减、乘、除、取模等,下面分别详细介绍。

1.1、加法运算符(+)
加法运算符用于将两个数相加,例如:

int a = 3;
int b = 5;
int c = a + b; // c的值为8

1.2、减法运算符(-)
减法运算符用于将第一个数减去第二个数,例如:

int a = 5;
int b = 3;
int c = a - b; // c的值为2

1.3、乘法运算符(*)
乘法运算符用于将两个数相乘,例如:

int a = 3;
int b = 5;
int c = a * b; // c的值为15

1.4、除法运算符(/)
除法运算符用于将第一个数除以第二个数,例如:

int a = 10;
int b = 3;
int c = a / b; // c的值为3

注意:如果两个数都是整型,那么结果也是整型,即会取整。

1.5、取模运算符(%)
取模运算符用于取第一个数除以第二个数的余数,例如:

int a = 10;
int b = 3;
int c = a % b; // c的值为1

1.6、自增运算符(++)
自增运算符用于将变量的值加1,例如:

int a = 3;
a++; // a的值为4

1.7、自减运算符(–)
自减运算符用于将变量的值减1,例如:

int a = 3;
a--; // a的值为2

注意:自增和自减运算符可以写在变量前面或后面,写在前面表示先运算再赋值,写在后面表示先赋值再运算。

以上就是Java中的算术运算符的详细介绍。

二、关系运算符
用于比较两个值之间的关系,如等于、不等于、大于、小于、大于等于和小于等于。常用的关系运算符包括==、!=、>、<、>=和<=。

Java关系运算符用于比较两个值之间的关系,返回一个布尔值(true或false)。下面是Java中的关系运算符:

2.1、==
判断两个值是否相等,如果相等返回true,否则返回false。

2.2、!=
判断两个值是否不相等,如果不相等返回true,否则返回false。

2.3、>
判断左边的值是否大于右边的值,如果是返回true,否则返回false。

2.4、<
判断左边的值是否小于右边的值,如果是返回true,否则返回false。

2.5、>=
判断左边的值是否大于等于右边的值,如果是返回true,否则返回false。

2.6、<=
判断左边的值是否小于等于右边的值,如果是返回true,否则返回false。

关系运算符通常用于条件语句和循环语句中,例如:

if (a == b) {
   System.out.println("a等于b");
}

while (a < b) {
   System.out.println("a小于b");
   a++;
}

注意:关系运算符不能用于比较对象,因为对象之间的比较需要用到equals()方法。

三、逻辑运算符
用于执行逻辑运算,如与、或和非运算。常用的逻辑运算符包括&&、||和!。

Java中的逻辑运算符用于连接两个或多个布尔表达式,产生一个新的布尔值。Java中的逻辑运算符包括以下几种:

3.1、&&(逻辑与)
当且仅当两个操作数都为true时,结果为true;否则结果为false。

3.2、||(逻辑或)
当两个操作数中有一个为true时,结果为true;否则结果为false。

3.3、!(逻辑非)
操作数为true时,结果为false;操作数为false时,结果为true。

逻辑运算符的优先级从高到低分别为:! > && > ||。因此,在使用时应当注意运算符的优先级,避免出现不必要的错误。

以下是一些逻辑运算符的示例:

boolean a = true;
boolean b = false;

System.out.println(a && b); // false
System.out.println(a || b); // true
System.out.println(!a); // false

在这个示例中,变量a和b分别被赋值为true和false。第一个输出语句使用了逻辑与运算符,因此结果为false。第二个输出语句使用了逻辑或运算符,因此结果为true。第三个输出语句使用了逻辑非运算符,因此结果为false。

四、位运算符
用于执行二进制位运算,如按位与、按位或、按位异或和取反。常用的位运算符包括&、|、^和~。

Java中的位运算符是用来操作二进制数的运算符,它们可以对整数类型(byte、short、int、long)进行操作。Java中的位运算符有以下几种:

4.1、按位与(&):两个位都为1时,结果才为1,否则为0。
4.2、按位或(|):两个位都为0时,结果才为0,否则为1。
4.3、按位异或(^):两个位相同为0,不同为1。
4.4、取反(~):对二进制数进行取反操作,0变成1,1变成0。
4.5、左移(<<):将一个数的二进制码向左移动指定的位数,低位补0。
4.6、右移(>>):将一个数的二进制码向右移动指定的位数,高位补符号位。
4.7、无符号右移(>>>):将一个数的二进制码向右移动指定的位数,高位补0。
例如:

int a = 5; // 二进制为 0000 0101
int b = 3; // 二进制为 0000 0011

int c = a & b; // 0000 0001
int d = a | b; // 0000 0111
int e = a ^ b; // 0000 0110
int f = ~a; // 1111 1010

int g = a << 2; // 0001 0100
int h = a >> 2; // 0000 0001
int i = a >>> 2; // 0000 0001

以上代码中,a和b分别表示整数5和3的二进制码,通过位运算符进行运算得到c、d、e、f、g、h、i的值,分别表示按位与、按位或、按位异或、取反、左移、右移、无符号右移的结果。

五、赋值运算符
用于将值赋给变量,如=、+=、-=、*=、/=和%=。

Java赋值运算符用于给变量赋值,它将右侧表达式的值赋给左侧的变量。Java赋值运算符有以下几种:

5.1、= 赋值运算符
将右侧表达式的值赋给左侧的变量。

5.2、+= 加等于运算符
将右侧表达式的值加上左侧变量的值,并将结果赋给左侧变量。

5.3、-= 减等于运算符
将右侧表达式的值减去左侧变量的值,并将结果赋给左侧变量。

5.4、*= 乘等于运算符
将右侧表达式的值乘以左侧变量的值,并将结果赋给左侧变量。

5.5、/= 除等于运算符
将右侧表达式的值除以左侧变量的值,并将结果赋给左侧变量。

5.6、%= 取模等于运算符
将右侧表达式的值取模左侧变量的值,并将结果赋给左侧变量。

5.7、<<= 左移等于运算符
将左侧变量的值左移右侧表达式的值所指定的位数,并将结果赋给左侧变量。

5.8、>>= 右移等于运算符
将左侧变量的值右移右侧表达式的值所指定的位数,并将结果赋给左侧变量。

5.9、&= 按位与等于运算符
将左侧变量的值与右侧表达式的值进行按位与运算,并将结果赋给左侧变量。

5.10、^= 按位异或等于运算符
将左侧变量的值与右侧表达式的值进行按位异或运算,并将结果赋给左侧变量。

5.11、|= 按位或等于运算符
将左侧变量的值与右侧表达式的值进行按位或运算,并将结果赋给左侧变量。

六、条件运算符
用于根据条件选择执行不同的操作,如三目运算符(?:)。

Java中的条件运算符是用来进行条件判断的,主要有三种:if语句、switch语句和三目运算符。

6.1、if语句
if语句是最基本的条件判断语句,用于判断一个条件是否成立,如果成立则执行某个语句块,否则执行另一个语句块。if语句的语法格式如下:

if (condition) {
    // 如果条件成立则执行这里的语句块
} else {
    // 如果条件不成立则执行这里的语句块
}

其中,condition是一个布尔表达式,如果它的值为true,则执行if语句后面的花括号里的语句块;否则执行else语句后面的花括号里的语句块。

6.2、switch语句
switch语句也用于条件判断,但是它的用法比if语句稍微复杂一些。switch语句的语法格式如下:

switch (expression) {
    case value1:
        // 如果expression的值等于value1,则执行这里的语句块
        break;
    case value2:
        // 如果expression的值等于value2,则执行这里的语句块
        break;
    default:
        // 如果expression的值不等于任何一个case,则执行这里的语句块
        break;
}

其中,expression是一个表达式,它的值会被与每个case后面的值进行比较。如果expression的值等于某个case后面的值,则执行该case后面的语句块;如果expression的值不等于任何一个case后面的值,则执行default后面的语句块。

6.3、三目运算符
三目运算符是一种简单的条件运算符,它的语法格式如下:

result = condition ? value1 : value2;
1
其中,condition是一个布尔表达式,如果它的值为true,则返回value1;否则返回value2。这个运算符通常用于简单的条件判断和赋值操作。

七、instanceof运算符
用于判断一个对象是否属于某个类的实例。

Java instanceof运算符用于检查对象是否是某个特定类的实例。它的语法如下:

object instanceof class
1
其中,object是要检查的对象,class是要检查的类。如果object是class的一个实例,则返回true,否则返回false。

例如,假设有一个Animal类和一个Dog类,Dog是Animal的子类,我们可以使用instanceof运算符来检查一个对象是否是Animal或Dog的实例:

Animal animal = new Animal();
Dog dog = new Dog();

if (animal instanceof Animal) {
    System.out.println("animal is an instance of Animal");
}

if (dog instanceof Animal) {
    System.out.println("dog is an instance of Animal");
}

if (dog instanceof Dog) {
    System.out.println("dog is an instance of Dog");
}

这段代码会输出:

animal is an instance of Animal
dog is an instance of Animal
dog is an instance of Dog

因为animal是Animal的实例,dog既是Animal的实例也是Dog的实例。

instanceof运算符也可以用于检查一个对象是否是某个接口的实现类的实例。例如,假设有一个Movable接口和一个Car类实现了这个接口,我们可以使用instanceof运算符来检查一个对象是否是Movable的实例:

Movable car = new Car();

if (car instanceof Movable) {
    System.out.println("car is an instance of Movable");
}

这段代码会输出:

car is an instance of Movable

因为car是Car的实例,同时也是Movable接口的实现类的实例。

需要注意的是,如果一个对象是null,那么使用instanceof运算符会抛出NullPointerException异常。因此,在使用instanceof运算符之前,需要先确保对象不是null。

八、++和–运算符
用于对变量进行自增或自减操作。

Java中的++和–运算符是自增和自减运算符,它们可以用来对变量进行加1或减1的操作。

++运算符有两种形式,前缀和后缀。前缀形式++i表示先将变量i加1,然后再使用i的值;后缀形式i++表示先使用i的值,然后再将变量i加1。

例如:

int i = 0;
System.out.println(++i); // 输出1
System.out.println(i++); // 输出1
System.out.println(i); // 输出2

–运算符和++运算符类似,也有前缀和后缀两种形式。前缀形式–i表示先将变量i减1,然后再使用i的值;后缀形式i–表示先使用i的值,然后再将变量i减1。

例如:

int i = 0;
System.out.println(--i); // 输出-1
System.out.println(i--); // 输出-1
System.out.println(i); // 输出-2

需要注意的是,++和–运算符只能用于变量,不能用于常量。并且,它们只能用于数值类型和字符类型的变量,不能用于布尔类型的变量。

九、Java运算符的优先级详解
需要注意的是,Java运算符有优先级之分,即某些运算符会先于其他运算符执行。在表达式中,可以使用括号来改变运算符的优先级。

Java中的运算符按照优先级从高到低的顺序如下:

后缀运算符:++、–
一元运算符:+、-、!、~、++、–、(type)
乘性运算符:、/、%
加性运算符:+、-
移位运算符:<<、>>、>>>
关系运算符:<、<=、>、>=、instanceof
相等运算符:==、!=
按位与运算符:&
按位异或运算符:^
按位或运算符:|
逻辑与运算符:&&
逻辑或运算符:||
条件运算符:? :
赋值运算符:=、+=、-=、
=、/=、%=、&=、^=、|=、<<=、>>=、>>>=
在表达式中,优先级高的运算符先被计算。如果优先级相同,则按照从左到右的顺序进行计算。如果需要改变运算的优先级,可以使用括号来改变。例如:

int a = 10, b = 5, c = 2;
int result = a + b * c; // 先计算b*c,再加上a
int result2 = (a + b) * c; // 先计算a+b,再乘以c

标签:语句,10,Java,变量,int,运算符,true
From: https://www.cnblogs.com/mwx2024/p/18383919

相关文章

  • 《HelloGitHub》第 101 期
    兴趣是最好的老师,HelloGitHub让你对编程感兴趣!简介HelloGitHub分享GitHub上有趣、入门级的开源项目。github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python、Java、Go、C/C++、Swift...让你在短......
  • Java泛型
    Java泛型是Java语言的一个重要特性,它允许你在编译时指定类型参数,从而编写更加灵活和可重用的代码。Java泛型的概念Java泛型是在JDK5.0中引入的,它允许你在声明类、接口和方法时使用类型参数。类型参数可以是你定义的任何标识符,通常使用大写字母如E,T,K,V等表示。使用泛型......
  • 考研系列-408真题数据结构篇(10-17)
    写在前面此文章是本人在备考过程中408真题数据结构部分(2010年-2017年)的易错题及相应的知识点整理,后期复习也尝尝用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~#2010年1.散列表处理冲突的方法......
  • 南沙C++陈老师讲题:1078:求分数序列和
    ​【题目描述】【输入】输入有一行,包含一个正整数n(n≤30)n(n≤30)。【输出】输出有一行,包含一个浮点数,表示分数序列前nn项的和,精确到小数点后44位。【输入样例】2【输出样例】3.5000#include<iostream>#include<stdio.h>usingnamespacestd;intmain()......
  • CF1810G The Maximum Prefix 题解
    Description构造一个长度最多为\(n\)的数组\(a\),其每个元素均为\(1\)或\(-1\)。生成方式如下:选择任意整数\(k\in[1,n]\)作为\(a\)的长度。对于\(\foralli\in[1,k]\),有\(p_i\)的概率设\(a_i=1\),有\(1-p_i\)的概率设\(a_i=-1\)。在数列被生成后,计算\(s_i=a......
  • HCIP笔记10-MPLS(1)
    MPLS:多协议标签交换多协议:可以基于多种不同的3层协议来生成2.5层的标签信息;包交换--包为网络层的PDU,故包交换是基于IP地址进行数据转发;就是路由器的路由行为;原始的包交换:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询本地的A......
  • [Java并发]Semaphore
    Semaphore是一种同步辅助工具,翻译过来就是信号量,用来实现流量控制,它可以控制同一时间内对资源的访问次数.无论是Synchroniezd还是ReentrantLock,一次都只允许一个线程访问一个资源,但是Semaphore可以指定多个线程同时访问某一个资源.Semaphore有一个构造函数,可以传入一个int型......
  • Java元注解介绍
    Java四种元注解相关介绍概述注解从Java1.5引入以来,不断地简化我们编写代码的流程,逐渐的也成为了我们必学的一项技术。我们学习了各种注解,学习了他们的用法,学习了他们的限制,是否想过他们的组成呢,下面我将我对元注解的理解分享给大家。元注解是用来修饰注解的注解,在java.lang.ann......
  • 【Leetcode_Hot100】普通数组
    普通数组53.最大子数组和56.合并区间189.轮转数组238.除自身以外数组的乘积41.缺失的第一个正数53.最大子数组和方法一:暴力解依次遍历数组中的每个子数组,进而判断res的最大值超时classSolution{publicintmaxSubArray(int[]nums){intres=0;......
  • Java数据结构栏目总结
     目录数组与稀疏数组队列:自己用数组模拟Queue环形队列,取模【取余】实现.单链表(LinkList)双向链表(Next、Pre)单向环形链表线性结构数组与稀疏数组稀疏数组,很多0值,可用于压缩特点:共n+1行3列,n为不同值的个数(0除外)第一行:数组的行数、列数、不同值的个数第二行:行......