首页 > 编程语言 >Java 运算符(详解)

Java 运算符(详解)

时间:2024-08-13 22:59:19浏览次数:14  
标签:Java 变量 System 运算符 详解 println public out

文章目录

一、简介

在 Java 中,运算符是用来对数据进行操作和处理的符号,这些符号能使得 Java 程序进行各种数学计算、条件判断和数据处理,从而实现丰富的功能和逻辑。


二、算术运算符

运算符含义
+加法
-减法
*乘法
/除法
取余
public class Main {
    public static void main(String[] args) {
        int a = 15;
        int b = 4;

        // 算法运算符
        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));
    }
}

运行结果:

加法:19
减法:11
乘法:60
除法:3
取余:3

三、自增自减运算符

  • 自增运算符 ++:
    • 前缀自增( ++a ):先将变量的值增加 1,然后再使用变量的值进行其他操作。
    • 后缀自增( a++ ):先使用变量的值进行其他操作,然后再将变量的值增加 1。
  • 自减运算符 --:
    • 前缀自减( --a ):先将变量的值减少 1,然后再使用变量的值进行其他操作。
    • 后缀自减( a-- ):先使用变量的值进行其他操作,然后再将变量的值减少 1。
public class Main {
    public static void main(String[] args) {
        int a = 10;

		// 自增自减运算符
        System.out.println("后缀自增:" + a++);
        System.out.println("前缀自增:" + ++a);
        
        System.out.println("后缀自减:" + a--);
        System.out.println("前缀自减:" + --a);
    }
}

运行结果:

后置自增:10
前置自增:12
后置自减:12
前置自减:10

四、关系运算符

运算符含义
>判断左边的值是否大于右边的值
<判断左边的值是否小于右边的值
>=判断左边的值是否大于等于右边的值
<=判断左边的值是否小于等于右边的值
==判断左右两边的值是否相等
!=判断左右两边的值两个值是否不相等
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        // 关系运算符
        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
大于等于:false
小于等于:true
等等于:false
不等于:true

五、逻辑运算符

运算符含义
&&逻辑与,都为 true 时,结果才为 true,否则为 false
||逻辑或,有一个为 true,结果就为 true,两个都为 false 时,结果才为 false。
^逻辑异或,相同为 false,不同为 true
!逻辑非,对结果去反,true 变 false,false 变 true
public class Main {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;

        // 逻辑运算符
        System.out.println("逻辑与:" + (a && b));
        System.out.println("逻辑或:" + (a || b));
        System.out.println("逻辑异或:" + (a ^ b));
        System.out.println("逻辑非:" + (!a));
    }
}

运行结果:

逻辑与:false
逻辑或:true
逻辑异或:true
逻辑非:false

六、位运算符

运算符含义
按位于,相对应的二进制都为 1,则结果位为 1,否则为 0
|按位或,相对应的二进制只要有一个为 1,结果位就为 1,都为 0,结果位,才为 0
^按位异或,相对应的二进制位不同时,结果位为 1,相同时为 0。
按位取反,将操作数的二进制位取反,0 变 1,1 变 0。
<<左移,将操作数的二进制位向左移动指定的位数,右边补 0 (左移一位相当于乘二)
>>右移,将操作数的二进制位向右移动指定的位数,如果操作数为正数,左边补 0;如果为负数,左边补 1 (右移一位相当于除二)
>>>无符号右移,无论操作数的正负,左边都补 0 (右移一位相当于除二)
public class Main {
    public static void main(String[] args) {
        int a = 5; // 二进制:0000 0101
        int b = 4; // 二进制:0000 0100

        // 位运算符
        System.out.println("按位与:" + (a & b)); // 二进制:0000 0100 = 4
        System.out.println("按位或:" + (a | b)); // 二进制:0000 0101 = 5
        System.out.println("按位异或:" + (a ^ b)); // 二进制:0000 0001 = 1
        System.out.println("按位取反:" + (~a)); // 二进制:1000 0110 = -6
        System.out.println("左移:" + (a << 2)); // 二进制:0001 0100 = 20
        System.out.println("右移:" + (a >> 1)); // 二进制:0000 0010 = 2
        System.out.println("无符号右移:" + (a >>> 1)); // 二进制:0000 0010 = 2
    }
}

运行结果:

按位与:4
按位或:5
按位异或:1
按位取反:-6
左移:20
右移:2
无符号右移:2

六、赋值运算符

运算符含义
=赋值运算符,将等号右边的值赋给左边
+=将右侧的值与左侧变量的值相加,并将结果赋给左侧变量
-=将右侧的值从左侧变量的值中减去,并将结果赋给左侧变量
*=将左侧变量的值乘以右侧的值,并将结果赋给左侧变量
/=将左侧变量的值除以右侧的值,并将结果赋给左侧变量
%=将左侧变量的值与右侧的值进行取余运算,并将结果赋给左侧变量
&=将左侧变量的值与右侧的值进行按位与运算,并将结果赋给左侧变量
|=将左侧变量的值与右侧的值进行按位或运算,并将结果赋给左侧变量
^=将左侧变量的值与右侧的值进行按位异或运算,并将结果赋给左侧变量
<<=将左侧变量的值左移指定的位数,并将结果赋给左侧变量
>>=将左侧变量的值右移指定的位数,并将结果赋给左侧变量
>>>=将左侧变量的值无符号右移指定的位数,并将结果赋给左侧变量
public class Main {
    public static void main(String[] args) {
        int num = 10;

        // 赋值运算符
        num += 5;
        System.out.println("+=:" + num);
        num -= 3;
        System.out.println("-=:" + num);
        num *= 2;
        System.out.println("*=:" + num);
        num /= 4;
        System.out.println("/=:" + num);
        num %= 5;
        System.out.println("%=:" + num);
    }
}

运行结果:

+=:15
-=:12
*=:24
/=:6
%=:1

七、条件运算符

在 Java 中,条件运算符也称为三元运算符,作用是根据条件表达式的值选择两个表达式中的一个,类似于 if…else

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        // 三目运算符
        System.out.println("最大值:" + ((a > b) ? a : b));  // a 不大于 b,所以返回 b 的值
    }
}

运行结果:

最大值:20

八、字符串连接符

在 Java 中,加号(+)也可以用作字符串连接符,作用是连接两个或多个字符串。

public class Main {
    public static void main(String[] args) {
        String a = "Hello ";
        String b = "World";

        // 字符串连接符
        System.out.println("字符串连接符:" + (a + b) + " (" + 2024 + ")");
    }
}

运行结果:

连接符:Hello World (2024)

九、运算符优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

优先级运算符
1( ) [ ]  .
2!  ~  ++  –
3*  /  %
4+  -
5<<  >>  >>>
6<  <=  >  >=  instanceof
7==  !=
8&
9^
10|
11&&
12|
13? :
14=  +=  -=  *=  /=  %=  &=
15

运算符的优先级不需要全部记住,你只要知道当你想要改变运算符执行的顺序时, 小括号 的优先级是最高的即可。


标签:Java,变量,System,运算符,详解,println,public,out
From: https://blog.csdn.net/m0_62854966/article/details/141175902

相关文章

  • Leetcode JAVA刷刷站(20)有效的括号
    一、题目概述二、思路方向     在Java中,要判断一个仅包含括号('(',')','{','}','[',']')的字符串是否有效,你可以使用栈(Stack)数据结构来实现。栈是一种后进先出(LIFO,LastInFirstOut)的数据结构,非常适合用来处理这类问题。以下是具体的实现步骤和代码示例:创......
  • Java并发类的主要API方法-Semaphore
    一、Semaphoreemaphore是Java并发包(java.util.concurrent)中的一个同步工具类,类Semaphore所提供的功能完全就是synchronized关键字的升级版,但它提供的功能更加的强大与方便,主要的作用就是控制线程并发的数量,而这一点,单纯地使用synchronized是做不到的。emaphore它用......
  • SciTech-BigDataAIML-LLM-Transformer Series系列: Word Embedding词嵌入详解: 用Corp
    SciTech-BigDataAIML-LLM-TransformerSeries系列:WordEmbedding词嵌入详解:1.用Corpus预训练出嵌入矩阵\(\largeE\)CorpusCollecting:非常重要的工作先收集一个常用的Corpus(语料库),能保障大多数的word都在corpus.有两个特别重要的作用:VocabularyExtracting:词......
  • Java数组06:常见排序算法
    1.冒泡排序冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完......
  • Java数组07:稀疏数组
    1.线性结构线性结构是最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。线性结构有两种不同存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的,即在内存中是连续的,例如数组。链式存储的线性表称为链表,链表中的存储元......
  • Java数组05:Arrays 类
    数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。文档简介:此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。......
  • 一款Java 性能监控和统计工具——MyPerf4J!【送源码】
    背景随着所在公司的发展,应用服务的规模不断扩大,原有的垂直应用架构已无法满足产品的发展,几十个工程师在一个项目里并行开发不同的功能,开发效率不断降低。于是公司开始全面推进服务化进程,把团队内的大部分工程师主要精力全部都集中到服务化中。服务化可以让每个工程师仅在自己......
  • Java基础-学习笔记10
    **10内部类**内部类一个类的内部又完整的嵌套了另一个类的结构,被嵌套的类成为内部类,嵌套其他类的类称为外部类。是类的第五大成员(属性、方法、构造器、代码块、内部类)。内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。classOuter//外部类{......
  • Java数组04:多维数组
    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。多维数组的动态初始化(以二维数组为例)直接为每一维分配空间,格式如下:type[][]typeName=newtype[typeLength1][typeLength2];type可以为基本数据类型和复合数据类型,arraylen......
  • java
    markdown二级标题字体markdownmarkdownmarkdownmarkdown引用哈哈哈分割线图片![截图](C:\Users\黄刘洋\Pictures\Screenshots\屏幕截图2024-08-13161113.png)超链接点击跳转4399列表AA表格名字性别生日张三男1977.1.1代码publi......