【Java基础教程】Java运算符

简介: 【Java基础教程】Java运算符

942623a4513d4fbcba77e5d3749cc4b1.jpg


算术运算符



运算符 描述
+ 两数相加
- 两数相减
* 两数相乘
/ 两数相除
% 取模,返回两数相除的余数
++ 自加一
- - 自减一


public class User {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(b % a);
    }
}


30
10
200
2
10


++,- -运算符


当++、- -出现在变量之前,先自加、自减1,再做赋值运算


public class User {
    public static void main(String[] args) {
        int a = 10;
        int b = ++a;
        System.out.println(a);// 11
        System.out.println(b);// 11
    }
}


当++,- -出现在变量之后,先做赋值运算,再自加、自减1


public class User {
    public static void main(String[] args) {
        int a = 10;
        int b = a++;
        System.out.println(b);// 10
        System.out.println(a);// 11
    }
}


扩展


+运算符有两个作用

①求和


public class User {
    public static void main(String[] args) {
        System.out.println(3 + 4);// 7
    }
}


②字符串拼接


public class User {
    public static void main(String[] args) {
        System.out.println("Hello" + "Java" + "World");// HelloJavaWorld
    }
}


关系运算符



image.png


public class User {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println(a == b);
        System.out.println(a != b);
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a <= b);
        System.out.println(a >= b);
    }
}


false
true
true
false
false
true


逻辑运算符




运算符 描述 结果
& 两边都为True,结果才为True
有一边为True,结果就为True
真值变假,假值变真
&& 逻辑与 两边都为True,结果才为True
││ 逻辑或 有一边为True,结果就为True


public class User {
    public static void main(String[] args) {
    boolean a1 = true;
    boolean a2 = false;
    System.out.println(a1 && a2);
    System.out.println(a1 || a2);
    System.out.println(!a1);
    }
}
false
true
false


与&和逻辑与&&


public class User {
    public static void main(String[] args) {
        // 与&
        int a = 0;
        int b = 1;
        // 当左边表达式为false,右边的表达式依旧会执行
        System.out.println(a > b & b > a++);// false
        System.out.println(a); // 1
        // 逻辑与&&
        int c = 0;
        int d = 1;
        // 当左边的表达式为false,右边的表达式不执行(短路现象)
        System.out.println(c > d && d > c++);// false
        System.out.println(c); // 0
    }
}


或|和逻辑或||


public class User {
    public static void main(String[] args) {
        // 或|
        int a = 0;
        int b = 1;
        // 当左边表达式为true,右边的表达式依旧会执行
        System.out.println(a < b | b > a++);// true
        System.out.println(a); // 1
        // 逻辑或||
        int c = 0;
        int d = 1;
        // 当左边的表达式为true,右边的表达式不执行(短路现象)
        System.out.println(c < d || d > c++);// true
        System.out.println(c); // 0
    }
}


总结



与&和或|要对所有条件都进行判断(无论左边是真假,右边都会执行)

逻辑与 &&当左边的表达式为false,右边的表达式不执行

逻辑或 || 当左边的表达式为true,右边的表达式不执行

什么时候使用&&,什么时候使用&

从效率方面来说,&&比&的效率高一些。

因为与&不管第一个表达式结果是什么,第二个表达式一定会执行。

大部分情况下都建议使用短路与&&,只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择与&。


赋值运算符



运算符 描述
= 直接赋值
+= 加后赋值
-= 减后赋值
*= 乘后赋值
/= 除后赋值
%= 取模后赋值


public class User {
    public static void main(String[] args) {
    int a = 2;
    int b = 1;
    System.out.println(a += b);//a = a + b
    System.out.println(a -= b);//a = a - b
    System.out.println(a *= b);//a = a * b
    System.out.println(a /= b);//a = a / b
    System.out.println(a %= b);//a = a % b
    }
}
3
2
2
2
0


条件运算符



表达式1?表达式2:表达式3

先判断表达式1的值,若为真则将表达式2的值做为整个表达式的值;若为假则将表达式3的值做为整个表达式的值。

举个栗子:判断a和b的大小,a>b如果成立max=a的值,不成立则max=b的值


public class User {
    public static void main(String[] args) {
        int a = 1, b = 2;
        int max;
        max = a > b?a:b;
        System.out.println(max);
    }
}


运算符优先级


✅Java中用到的运算符除了上面介绍的常用的赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运算符以外,还有其他的运算符。当一个表达式出现多种运算符符号,会按照运算符的优先级来决定运算顺序,Java中运算符优先级见下表


运算符 描述 优先级
[] () . , ; 分隔符 1
Instanceof ++ - - ! 对象归类、自增自减、非运算 2
* / % 算术乘除运算 3
+ - 算术加减运算 4
>> << >>> 移位运算 5
< <= > >= 大小关系运算 6
== != 相等关系运算 7
& 按位与运算 8
^ 按位异或运算 9
按位或运算 10
&& 逻辑与运算 11
││ 逻辑或运算 12
? : 三目条件运算 13
= += -= *= /= &= 赋值运算 14



结束语🏆


🔥推荐一款模拟面试、刷题神器网站

点击跳转进入网站

1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单

2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题

3、大厂笔试真题:字节跳动、美团、百度、腾讯…

相关文章
|
2月前
|
Java Go 开发工具
【Java】(4)五种运算符的说明(&&、||、>=、>、<=、<)、4种控制语句(if、for、while、dowhile)、输入和输出说明
扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的的类型byte类型,无论怎么进行加或追减,最终该变量的数据类型还是byte类型。注:一个表达式中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果。当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果。当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给a。并且,连接运算之后的结果还是一个字符串类型。表达式1 : 表达式2。
141 1
|
2月前
|
Oracle Java 关系型数据库
Java 简单教程
Java是跨平台、面向对象的编程语言,广泛用于企业开发、Android应用等。本教程涵盖环境搭建、基础语法、流程控制、面向对象、集合与异常处理,助你快速入门并编写简单程序,为进一步深入学习打下坚实基础。
326 0
|
3月前
|
安全 Java
Java之泛型使用教程
Java之泛型使用教程
246 10
|
4月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
4月前
|
Java 关系型数据库 数据库
Java 项目实战教程从基础到进阶实战案例分析详解
本文介绍了多个Java项目实战案例,涵盖企业级管理系统、电商平台、在线书店及新手小项目,结合Spring Boot、Spring Cloud、MyBatis等主流技术,通过实际应用场景帮助开发者掌握Java项目开发的核心技能,适合从基础到进阶的学习与实践。
507 3
|
5月前
|
缓存 安全 Java
Java 并发新特性实战教程之核心特性详解与项目实战
本教程深入解析Java 8至Java 19并发编程新特性,涵盖CompletableFuture异步编程、StampedLock读写锁、Flow API响应式流、VarHandle内存访问及结构化并发等核心技术。结合电商订单处理、缓存系统、实时数据流、高性能计数器与用户资料聚合等实战案例,帮助开发者高效构建高并发、低延迟、易维护的Java应用。适合中高级Java开发者提升并发编程能力。
150 0
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
165 1
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
191 1
|
3月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
152 0