java从入门到起飞(二)——运算符

news2024/11/16 1:43:07

目录

  • 前提——运算符概念
  • 算数运算符
    • 注意事项:
    • 字符的“+”操作
    • 字符串的“+”操作
  • 赋值运算符
    • 注意事项:
  • 自增自减运算符
    • 注意事项:
  • 关系运算符
    • 注意事项:
  • 逻辑运算符
  • 短路逻辑运算符
    • 注意事项:
  • 三元运算符
    • 计算规则:
  • 运算符优先级
    • 为什么要学优先级
    • 优先级
  • 总结

前提——运算符概念

    运算符:对常量或者变量进行操作的符号。
    表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。

  • 举例说明:
int a = 10;
int b = 20;
int c = a + b;

     +:是运算符,并且是算术运算符。
     a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

算数运算符

符号作用说明
“+”参看小学一年级的加法
“-”参看小学一年级的减法
“*”参看小学二年级,与“×”相同
“/”参看小学二年级,与“÷”相同
“%”取余获取的是两个数据做除法的余数

注意事项:

  • /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
  • 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

算数运算符代码例子如下:

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

        // 加法
        int sum = a + b;
        System.out.println("Sum: " + sum);

        // 减法
        int difference = a - b;
        System.out.println("Difference: " + difference);

        // 乘法
        int product = a * b;
        System.out.println("Product: " + product);

        // 除法
        int quotient = a / b;
        System.out.println("Quotient: " + quotient);

        // 取模
        int remainder = a % b;
        System.out.println("Remainder: " + remainder);
    }
}

字符的“+”操作

拿字符在计算机底层对应的数值来进行计算的。
在这里插入图片描述
算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:

  • byte类型,short类型和char类型将被提升到int类型
  • 整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
    等级顺序:byte,short,char → int → long → float → double

字符串的“+”操作

  • 当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
    例:“yangsimo”+ 666 的结果为:yangsimo666
  • 在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。
    例:1 + 99 + “年大米” 的结果为:100年大米

赋值运算符

符号作用说明
“=”赋值a=10,将10赋值给变量a
“+=”加后赋值a+=b,将a+b的值给a
“-=”减后赋值a-=b,将a-b的值给a
“*=”乘后赋值a*=b,将a×b的值给a
“/=”除后赋值a/=b,将a÷b的商给a
“%=”取余后赋值a%=b,将a÷b的余数给a

注意事项:

    扩展的赋值运算符隐含了强制类型转换。
赋值运算符代码例子如下:

自增自减运算符

符号作用说明
“++”自增变量的值加1
“–”自减变量的值减1

注意事项:

  • ++和-- 既可以放在变量的后边,也可以放在变量的前边。
  • 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
  • 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–。
    参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。
    例:
int a=5;      //a=5
int b=++a;    //a=6  b=6
int c=a++;    //a=6  c=5

关系运算符

符号说明
“==”a==b,判断a和b的值是否相等,成立为true,不成立为false
“!=”a!=b,判断a和b的值是否不相等,成立为true,不成立为false
“>”a>b,判断a是否大于b,成立为true,不成立为false
“>=”a>=b,判断a是否大于等于b,成立为true,不成立为false
“<”a<b,判断a是否小于b,成立为true,不成立为false
“<=”a<=b,判断a是否小于等于b,成立为true,不成立为false

注意事项:

关系运算符的结果都是boolean类型,要么是true,要么是false。
千万不要把“==”误写成“=”。

逻辑运算符

符号作用说明
“&”逻辑与a&b,a和b都是true,结果为true,否则为false
" | "逻辑或a
“^”逻辑异或a^b,a和b结果不同为true,相同为false
“!”逻辑非!a,结果和a的结果正好相反

    在数学中,一个数据x,大于3,小于6,我们可以这样来进行表示:3<x<6。在Java中,需要把上面的式子先进行拆解,再进行合并表达。

  • 拆解为:x>3 和 x<6
  • 合并后:x>3 && x<6

&&其实就是一个逻辑运算符。
我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。
当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。

短路逻辑运算符

符号作用说明
“&&”短路与作用和&相同,但是有短路效果
" || "短路或作用和

注意事项:

  • 逻辑与&,无论左边真假,右边都要执行。
    短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
  • 逻辑或|,无论左边真假,右边都要执行。
    短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。

三元运算符

  • 格式:关系表达式 ? 表达式1 : 表达式2;
  • 范例:a > b ? a : b;

计算规则:

        首先计算关系表达式的值
        如果值为true,表达式1的值就是运算结果
        如果值为false,表达式2的值就是运算结果
例子:

public class ConditionalOperator {
   public static void main(String[] args) {
     int x = 10;
     int y = 5;

     int z = x>y ? 100 : 50; 
     System.out.println(z); // 100
   }
}

运算符优先级

为什么要学优先级

    Java是一种广泛使用的编程语言,其中运算符是语言中的重要组成部分。Java运算符的优先级非常重要,影响着表达式的运算顺序。理解Java运算符的优先级可以帮助开发者编写更高效、更易于维护的代码。

优先级

在这里插入图片描述
例如以下代码,先算括号中的,后算加法:

public class Test {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 30;
		System.out.println(a + (b * c));
	}
}

    Java中的面向对象运算符包括方法调用、属性访问和继承等。面向对象运算符按照优先级从高到低的顺序执行。例如,如果调用一个对象的方法,则方法将按顺序执行,直到方法执行完毕。同样地,如果访问对象的属性,则属性的值将被更新,直到方法执行完毕。
    在Java中,运算符的优先级从高到低依次为:算术运算符、逻辑运算符、位运算符和面向对象运算符。本文将深入理解Java运算符的优先级。

总结

    以上是 Java 中常见的一些运算符及其用法。在实际编程中,可以根据需要选择适当的运算符来实现所需的运算和操作。大家在学习运算符过程中对任意一个运算符不理解的可以私聊博主,我会一一给大家解答!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV Mat类

文章目录 Mat类Mat类数据类型读取Mat类支持的运算OpenCV Mat数据类型指针ptr的使用多维矩阵创建 Mat类 Mat类数据类型读取 S 有符号整型 U 无符号整型 F 浮点型CV_8U - 8位无符号整数&#xff08;0…255&#xff09;CV_8S - 8位有符号整数&#xff08;-128…127&#xff…

Python基础(1)——Python简介

Python基础&#xff08;1&#xff09;——Python简介 文章目录 Python基础&#xff08;1&#xff09;——Python简介目标Python介绍Python版本总结 目标 了解PythonPython的应用领域Python的版本 Python介绍 Python是时下最流行、最火爆的编程语言之一&#xff0c;具体原因如…

SAP从入门到放弃系列之BOM组-Part1

目录 BOM组两种模式&#xff1a; 创建BOM的方式 方式一&#xff1a;直接在每个工厂分别创建BOM。 方式二&#xff1a;创建BOM组&#xff0c;然后每个工厂参考创建 方式三&#xff1a;创建BOM组&#xff0c;每个工厂参考创建&#xff0c;针对有特殊的工厂复制BOM组后进行调…

人机交互学习-9 以用户为中心的设计

以用户为中心的设计 以用户为中心的设计思想工程设计过程的三个假设以人为本设计思想三个方面的假设以用户为中心的设计四原则UDC项目包含的方法 用户参与设计用户参与的重要性选择哪些用户&#xff1f;为什么要让用户参与&#xff1f; 用户参与的形式参与式设计PICTIVECARD 理…

Nacos-手写注册中心基本原理

本文已收录于专栏 《中间件合集》 目录 概念说明需求分析核心功能代码实现AService模块BService模块NacosService模块NacosSDK模块 注意事项总结提升 概念说明 注册中心是微服务架构中的纽带&#xff0c;类似于“通讯录”&#xff0c;它记录了服务和服务地址的映射关系。在分布…

香蕉派(Banana Pi) BPI-M2 Zero 评测试,与树莓派 Zero同尺寸的开发板

Banana Pi M2 Zero 是一款微型计算机&#xff0c;配备四核处理器并内置 Wi-Fi 和蓝牙。这是一款非常适合基本计算任务甚至轻度游戏的小型设备。在这篇评论中&#xff0c;我们将了解 M2 Zero 的性能、功能和价值。 什么是 Banana Pi BPI-M2 Zero Banana Pi M2 Zero 是由深圳公…

MongoDB(Windows版)安装

首先需要下载 官网&#xff1a;MongoDB: The Developer Data Platform | MongoDB 安装过程 需要安装的版本 第一步&#xff1a;安装时&#xff0c;Custom是指可以自定义安装路径&#xff0c;然后傻瓜式安装即可&#xff08;注意&#xff1a;先不要安装图形化工具&#xff0…

2023-06-17 LeetCode每日一题(分割圆的最少切割次数)

2023-06-17每日一题 一、题目编号 2481. 分割圆的最少切割次数二、题目链接 点击跳转到题目位置 三、题目描述 圆内一个 有效切割 &#xff0c;符合以下二者之一&#xff1a; 该切割是两个端点在圆上的线段&#xff0c;且该线段经过圆心。该切割是一端在圆心另一端在圆上…

【Vue】学习笔记-Vue Router activated deactivated 路由守卫

Vue Router activated deactivated 路由守卫 activated deactivated路由守卫1.全局守卫2.独享守卫3.组件内守卫全局路由守卫路由器的两种工作模式 activated deactivated activated 和 deactivated 是路由组件所独有的两个钩子&#xff0c;用于捕获路由组件的激活状态 具体使用…

管理类联考——英语——趣味篇——阅读——考题的来源

Part One考研英语阅读——Part A 1.卫报 《卫报》( The Guardian)是英国的全国性综合内容日报。与《泰晤士报》、《每日电讯报》被合称为英国三大报。由约翰爱德华容泰勒创办于1821年5月5日。该报注重报道国际新闻&#xff0c;擅长发表评论和分析性专题文章。一般公众视《卫报…

【数据分析之道-Matplotlib(九)】Matplotlib棉棒图

文章目录 专栏导读1、Matplotlib棉棒图stem()基本语法2、Matplotlib棉棒图stem()定义样式2.1linefmt参数2.2markerfmt参数2.3举例一&#xff1a;直线样式2.4举例二&#xff1a;圆点样式 3、棉棒图案例实战3.1绘制每月销量的棉棒图3.2绘制每月销量与平均销量之差 专栏导读 ✍ 作…

Prometheus介绍安装和快速入门

Prometheus介绍安装和快速入门 1、Prometheus介绍 1.1 什么是 Prometheus? Prometheus&#xff08;普罗米修斯&#xff09;是古希腊的一个神明&#xff0c;名字的意思是「先见之明」。从它的名字可以看出&#xff0c; Prometheus 是做「先见之明」的监控告警用途。维基百科…

HJ26 字符串排序

题目&#xff1a; HJ26 字符串排序 题解&#xff1a; 规则 1 &#xff1a;英文字母从 A 到 Z 排列&#xff0c;不区分大小写。 统一转换&#xff0c;通过减去对应字母的起始值&#xff0c;得到一个相对值&#xff0c;抹平大小写&#xff0c;例如&#xff1a;B - A&#xff…

【Java项目】使用LruCache提高DSP广告主需求方 (Demand Side Platform)系统性能

文章目录 背景LruCache简介LruCache在DSP系统中的应用场景LruCacheRedis增加LruCache数据过期清除机制ConcurrentHashMapLruCache零拷贝机制 源码 背景 我之前工作的一家公司是一家传媒公司&#xff0c;公司的主要盈利方式为在公司项目中接入广告&#xff0c;以及自媒体广告宣…

Windows下编译安装Acise

Acise是济南友泉软件公司自主研发的一套跨平台的通用CAx(CAD/CAE)软件开发框架&#xff0c;本文旨在记录Windows下编译安装Acise的流程。 零、系统环境 操作系统Windows 10编译器Visual Studio 2019 CommunityCMake2.24.2Boost1.80.0Qt5.14.0OpenCASCADE7.6.0VTK9.0.0 一、依…

Linux之线程安全(下)

文章目录 前言一、Linux线程互斥1.mutex的理解锁原子性互斥锁实现原子性的原理 2.mutex的封装——Mutex.hpp3.可重入和线程安全可重入线程安全线程安全不一定是可重入的&#xff0c;而可重入函数一定是线程安全的。 4.死锁概念造成死锁的四个必要条件如何避免死锁 二、Linux线程…

Mendix低代码开发

Mendix低代码开发 目录概述需求&#xff1a; 设计思路实现思路分析1.URL管理2.LL3.Mendix 低代码可视化开发4.Mendix 低代码可视化开发 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip har…

许多智能算法并不智能

数学的精髓在于不断寻找简洁而优美的解决方法&#xff0c;而智能的精髓也在于尽可能地避免繁琐的计算&#xff0c;通过更高效的方式来解决问题。从实践角度看&#xff0c;现代人工智能技术的发展&#xff0c;正是基于这个思路不断推进的。在机器学习领域中&#xff0c;人们通过…

【C语言复习】第二篇、VS2017软件的使用以及常用小技巧

目录 1、VS2017软件无法打开stdio.h文件的解决办法 2、VS2017软件解决scanf函数问题以及如何建立初始模板 2.1、visual Studio使用scanf函数出现报错问题 2.2、如何实现新建一个.c文件就有初始模板 3、VS2017软件如何显示代码行号&#xff1f; 4、VS2017软件如何快速复制…

Redis(Windows版)安装

Redis安装过程 目前只是Windows下安装&#xff0c;后续会添加linux下安装过程 Windows安装 下载地址&#xff1a;Releases tporadowski/redis (github.com) Redis安装要根据系统平台的实际情况而定&#xff0c;我使用的是免安装的 下载完成&#xff0c;解压之后打开文件夹…