java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java运算符详解

Java运算符从入门到精通超详细整理

作者:mgw1413

运算符在我们的生活中很常见,失去了它,我们的数学基本报废了,像“+ , - ,* , /”都是我们最基本的运算符,这篇文章主要介绍了Java运算符从入门到精通超详细整理的相关资料,需要的朋友可以参考下

前言

运算符是用来对变量、字面量进行运算操作的符号,是 Java 语法体系中不可或缺的一部分。本文将全面讲解算数运算符、字符串拼接、自增自减运算符、类型转换、赋值运算符、关系运算符、逻辑运算符、三元运算符、运算符优先级几大知识点,搭配语法讲解、代码案例、实战练习与易错点分析,零基础也能快速掌握,适合日常学习、代码练习与面试复习。

一、算数运算符

1.1 运算符介绍

算数运算符主要用于完成数学加减乘除运算,是最基础的运算符,具体规则如下:

符号作用说明
+加常规数学加法运算
-减常规数学减法运算
*乘等价于数学中的乘号×
/除等价于数学中的除号÷,取除法运算的商
%取余获取两个数据做除法后的余数

1.2 核心注意事项

1.3 实战案例:数值拆分

需求:将整数 123 拆分出个位、十位、百位并打印输出。

拆分公式

代码实现

public class ArithmeticDemo {
    public static void main(String[] args) {
        int num = 123;
        // 计算个位
        int ge = num % 10;
        // 计算十位
        int shi = num / 10 % 10;
        // 计算百位
        int bai = num / 10 / 10 % 10;

        System.out.println("整数123的个位为:" + ge);
        System.out.println("整数123的十位为:" + shi);
        System.out.println("整数123的百位为:" + bai);
    }
}

运行结果:

整数123的个位为:3
整数123的十位为:2
整数123的百位为:1

1.4 小结

整数相除无法直接得到小数,必须加入浮点数参与运算;多位数拆分可按照「连续整除 + 取余」的通用公式实现。

二、字符串拼接

2.1 规则说明

当 + 运算符两侧任意一边出现字符串时,+ 不再是加法运算符,而是字符串连接符,作用是将前后内容拼接为一个完整字符串。

2.2 代码示例

public class StringJoinDemo {
    public static void main(String[] args) {
        // 纯数字:加法运算
        System.out.println(1 + 23);

        // 包含字符串:拼接操作
        System.out.println("年龄为:" + 23);
        // 从左至右依次运算,先算1+99,再和字符串拼接
        System.out.println(1 + 99 + "年黑马");
        // 先拼接字符串,后续数字全部参与拼接
        System.out.println("年龄为:" + 23 + 1);
        // 括号提升运算优先级,先计算括号内加法,再拼接
        System.out.println("年龄为:" + (23 + 1));
    }
}

运行结果:

24
年龄为:23
100年黑马
年龄为:231
年龄为:24

2.3 小结

表达式中一旦出现字符串,+ 就执行字符串拼接逻辑;可通过 () 改变运算顺序,优先完成数学计算。

三、自增自减运算符

3.1 运算符介绍

符号作用说明
++自增变量自身数值加 1
--自减变量自身数值减 1

++ 和 -- 可以写在变量前面或者变量后面,使用规则分两种场景。

3.2 使用规则

3.3 小结

自增自减核心区分点在于是否参与其他运算;单独使用位置无区别,混合使用严格遵循「前先变,后后变」规则。

四、数据类型转换

Java 中不同数据类型之间运算、赋值时,会自动触发类型转换,分为隐式转换(自动转换)和强制转换两类。

4.1 隐式转换(自动转换)

4.1.1 基础规则

将取值范围小的数值 / 变量,赋值给取值范围大的变量,程序自动完成转换,无需手动编写代码。数据类型范围从小到大顺序:byte → short → int → long → float → doublechar 类型也会参与隐式转换。

4.1.2 运算中的隐式转换

4.1.3 代码示例

public class AutoConvertDemo {
    public static void main(String[] args) {
        // 基础隐式转换:int 转 double
        int a = 10;
        double b = a;
        System.out.println(b);

        // 不同类型运算:int 提升为 double
        int num1 = 10;
        double num2 = 12.3;
        double res1 = num1 + num2;
        System.out.println(res1);

        // byte 运算自动提升为 int
        byte c1 = 10;
        byte c2 = 20;
        int res2 = c1 + c2;
        System.out.println(res2);

        // char 提升为 int(依据ASCII编码)
        int x = 1;
        char y = 'a';
        int res3 = x + y;
        System.out.println(res3);
    }
}

4.2 强制类型转换(显式转换)

4.2.1 基础规则

将取值范围大的数值 / 变量,赋值给取值范围小的变量,无法自动转换,必须手动强制转换。语法格式:目标数据类型 变量名 = (目标数据类型) 待转换数据;

4.2.2 风险提示

强制类型转换可能造成精度丢失、数值溢出,使用时需要谨慎。

4.2.3 代码示例

public class ForceConvertDemo {
    public static void main(String[] args) {
        double d = 12.3;
        // double 强制转为 int,舍弃小数部分
        int num = (int) d;
        System.out.println(num);
    }
}

4.3 小结

五、赋值运算符

5.1 运算符分类与说明

分为基础赋值运算符和扩展赋值运算符:

符号名称作用说明
=基础赋值a=10,将右侧数值 10 赋值给左侧变量 a
+=加后赋值a += b 等价于 a = a + b
-=减后赋值a -= b 等价于 a = a - b
*=乘后赋值a *= b 等价于 a = a * b
/=除后赋值a /= b 等价于 a = a / b
%=取余后赋值a %= b 等价于 a = a % b

5.2 重要特性

扩展赋值运算符底层隐含强制类型转换,无需手动添加强转语法。

5.3 小结

= 是最基础的赋值符号;+=、-= 等扩展运算符简化代码写法,且自带强制转换效果,开发中使用频率很高。

六、关系运算符

6.1 运算符说明

关系运算符用于判断两个数据的大小、相等关系,运算结果一定是 boolean 类型(true /false)。

符号说明
==判断两个值是否相等,相等为 true,否则为 false
!=判断两个值是否不相等,不相等为 true,否则为 false
>判断左侧值是否大于右侧值
>=判断左侧值是否大于等于右侧值
<判断左侧值是否小于右侧值
<=判断左侧值是否小于等于右侧值

6.2 易错提醒

切勿将判断相等的 == 和赋值符号 = 混淆,二者语法、作用完全不同。

6.3 小结

关系运算符多用于条件判断,结果只有 true 和 false 两种,重点区分 == 与 =。

七、逻辑运算符

逻辑运算符用于连接多个布尔表达式、布尔值,实现多条件组合判断,最终结果仍为 boolean 类型。

7.1 基础逻辑运算符

符号名称运算规则
&逻辑与所有条件都为 true,结果才为 true;遇 false 则整体为 false
``逻辑或任意一个条件为 true,结果就为 true;遇 true 则整体为 true
!逻辑非取反:true 变 false,false 变 true
^逻辑异或两边结果不同为 true,相同为 false

7.2 短路逻辑运算符

短路与、短路或是开发中最常用的运算符,具备短路特性:

符号名称规则
&&短路与和 & 逻辑一致;若左侧为 false,右侧代码不再执行(短路)
``短路或和 `` 逻辑一致;若左侧为 true,右侧代码不再执行(短路)

7.3 小结

八、三元运算符

8.1 语法格式

判断条件 ? 值1 : 值2;

8.2 执行流程

8.3 作用总结

根据条件二选一,简化简单的分支判断代码,是精简版的条件语句。

九、运算符优先级

9.1 优先级规则

Java 运算符存在默认执行优先级,优先级高的运算符会优先运算;日常开发中,不需要死记硬背优先级,可以使用小括号 () 手动改变运算顺序,让代码逻辑更清晰。

9.2 代码示例

public class PriorityDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        // 默认优先级:&& 优先级高于 ||
        System.out.println(a > b || a < b && a > b);
        // 括号提升整体优先级
        System.out.println((a > b || a < b) && a > b);
    }
}

9.3 小结

复杂运算建议使用 () 划分运算顺序,降低代码阅读和出错概率。

十、全文总结

运算符是 Java 逻辑代码的基础,后续分支、循环、集合等知识点都会大量用到,建议多编写案例练习,熟练掌握各类运算符的规则与易错点。

到此这篇关于Java运算符从入门到精通超详细整理的文章就介绍到这了,更多相关Java运算符详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文