【系列01】java运算符及运算符优先级[附带目录 按需服用]

news/2024/10/22 3:02:36/

运算符、三元运算符、位运算符、拓展赋值、运算优先级、自增自减

运算符

运算符学习及分类

  • java代码优先级多用括号**,多用括号()**不仅方便而且增加可读性

自增自减

  • a++ 是先赋值再增加
  • ++a 是先增加再赋值
  • 上面都表示 a= a+1;
  • 自减同理由
public class Demo05 {public static void main(String[] args) {int a=3;int b=a++;//这一行a++ 是先赋值执行完这行代码以后再增加,所以b值是3//a++  a=a+1System.out.println(a);//a=4;//++a  a=a+1int c=++a;//先增加再把值给c 所以c的值是5System.out.println(a);System.out.println(b);System.out.println(c);}}

扩充类 Math(数学计算公式)

//幂运算 2^3 2*2*2 借助Math 很多运算我们都需要借助工具处理
//特别这里可以按Alt+两次空格快捷返回值
double pow = Math.pow(2, 3);
System.out.println(pow);

位运算符

      /*A = 0011 1100b = 0000 1101
································比较每一位的0 1进行判断A&C =0000 1100A|B =0011 1101A^B =0011 0001 //相同为0 不同为1~B =1111 0010 //取反//效率极高<<左移   *2>>右移   /20000 0001   10000 0010   20000 0100   4*/

拓展赋值运算符

public class Demo06 {public static void main(String[] args) {int a=10;int b=20;a+=b;//a=a+ba-=b;//a=a-bSystem.out.println(a);//字符串连接符 + ,stringSystem.out.println(""+a+b);// 输出1024System.out.println(a+b+"");//输出30}
}
  • 小细节:如果字符串在前面会变成 1024
    但是如归字符串在后面是 30

  • 其实赋值运算符就是偷懒主要是掌握概念

    三元运算符

    public class Demo07 {public static void main(String[] args) {//x?y:z 如果x==true 则为y 否则为zint score=80;String type = score < 60 ? "不及格" : "及格";System.out.println(type);}
    }
    
    • 判断语句
    • x?y:z 如果x==true 则为y 否则为z

运算优先级

转载

为了学习完整性转载了这位博主文章

转载自文章 https://blog.csdn.net/huangblog/article/details/8271791

*C语言运算符优先级*

优先级运算符名称或含义使用形式结合方向说明
1*[]*数组下标数组名[常量表达式]左到右
*()*圆括号(表达式)/函数名(形参表)
*.*成员选择(对象)对象.成员名
*->*成员选择(指针)对象指针->成员名
2*-*负号运算符-表达式*右到左*单目运算符
*~*按位取反运算符~表达式
*++*自增运算符++变量名/变量名++
*–*自减运算符–变量名/变量名–
***取值运算符*指针变量
*&*取地址运算符&变量名
*!*逻辑非运算符!表达式
*(**类型**)***强制类型转换(数据类型)表达式
*sizeof*长度运算符sizeof(表达式)
3*/*表达式/表达式左到右双目运算符
***表达式*表达式
*%*余数(取模)整型表达式%整型表达式
4*+*表达式+表达式左到右双目运算符
*-*表达式-表达式
5*<<*左移变量<<表达式左到右双目运算符
*>>*右移变量>>表达式
6*>*大于表达式>表达式左到右双目运算符
*>=*大于等于表达式>=表达式
*<*小于表达式<表达式
*<=*小于等于表达式<=表达式
7*==*等于表达式==表达式左到右双目运算符
*!**=***不等于表达式!= 表达式
8*&*按位与表达式&表达式左到右双目运算符
9*^*按位异或表达式^表达式左到右双目运算符
10*|*按位或表达式|表达式左到右双目运算符
11*&&*逻辑与表达式&&表达式左到右双目运算符
12*||*逻辑或表达式||表达式左到右双目运算符
13*?😗条件运算符表达式1?表达式2: 表达式3*右到左*三目运算符
14*=*赋值运算符变量=表达式*右到左*
*/=*除后赋值变量/=表达式
*=**乘后赋值变量*=表达式
*%=*取模后赋值变量%=表达式
*+=*加后赋值变量+=表达式
*-=*减后赋值变量-=表达式
*<<=*左移后赋值变量<<=表达式
*>>=*右移后赋值变量>>=表达式
*&=*按位与后赋值变量&=表达式
*^=*按位异或后赋值变量^=表达式
*|=*按位或后赋值变量|=表达式
15*,*逗号运算符表达式,表达式,…左到右

*说明:*

*同一优先级的运算符,运算次序由结合方向所决定。*
*简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符*


http://www.ppmy.cn/news/10276.html

相关文章

【Linux】文本编辑器-vim使用

目  录1 vim的基本概念2 vim的基本操作3 vim常用模式命令集3.1 vim正常模式命令集3.2 vim末行模式命令集4 vim的简单配置1 vim的基本概念 vim编辑器与vi编辑器一样都是多模式编辑器&#xff0c;不同的是vim编辑器是vi编辑器的升级版本&#xff0c;vim不仅兼容vi的所有指令&am…

1 机器学习之线性回归

学习笔记自&#xff0c;慕课网 《Python3 入门人工智能》 https://coding.imooc.com/lesson/418.html#mid33109 麻雀虽小&#xff0c;五脏俱全 1.1 回归分析 1.2 线性回归问题求解 1.3 寻找最合适的 a、b&#xff0c;引入损失函数的概念 尽可能使损失函数最小即找到了最合适的…

Java中indexOf函数详解

1.定义 Java String 类的 indexOf() 方法返回指定字符串中指定字符或字符串第一次出现的位置。 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置&#xff0c;如果存在返回字符串出现的位置&#xff08;第一位为0&#xff09;&#xff0c;如果不存在返回 -1&#x…

Java 如何不使用 volatile 和锁实现共享变量的同步操作

前言 熟悉 Java 并发编程的都知道&#xff0c;JMM(Java 内存模型) 中的 happen-before(简称 hb)规则&#xff0c;该规则定义了 Java 多线程操作的有序性和可见性&#xff0c;防止了编译器重排序对程序结果的影响。 按照官方的说法&#xff1a; 当一个变量被多个线程读取并且至…

xv6 - lab0 - Introduction

MIT 6.S081 课程介绍 1 说明背景 1.1 课程概述 核心理念&#xff1a;边做边学目录描述&#xff1a;操作系统的设计与实现&#xff0c;将用于系统编程的基础。主题包括&#xff1a;虚拟内存、文件系统、多线程、上下文切换、内核、中断、系统调4&#xff09;用、进程间通信、…

STM32MP157驱动开发——Linux DAC驱动

STM32MP157驱动开发——Linux DAC驱动0.前言一、DAC 简介二、驱动源码分析1.设备树下的 DAC 节点2.驱动源码分析1&#xff09;stm32_dac 结构体2&#xff09;stm32_adc_probe 函数3&#xff09;stm32_dac_iio_info 结构体三、驱动开发1.修改设备树2.使能DAC驱动四、 运行测试0.…

Spring Boot学习篇(八)

Spring Boot学习篇(八) 1.thymeleaf模板引擎使用篇(二) 1.1 配置通过地址栏直接访问html页面 1.1.1 在zlz包下创建filter包,其目录结构如下所示 1.1.2 在filter包下创建HTMLFilter类,其内容如下所示 package com.zlz.filter;import javax.servlet.*; import javax.servlet.…

创建List保存学生信息

1 问题创建一个存储学生对象的集合&#xff0c;存储3个学生对象&#xff0c;使用程序实现在控制台遍历该集合。2 方法1、定义学生类2、创建List集合对象3、创建学生对象4、将学生添加到集合5、遍历集合创建的学生类代码&#xff1a;package no10;public class Student { …