【Java探索之旅】运算符解析 算术运算符,关系运算符

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【Java探索之旅】运算符解析 算术运算符,关系运算符

📑前言

Java中运算符是非常重要的概念,它们用于对变量进行操作和比较,是实现各种算法和逻辑的基础。本文将介绍Java中的算术运算符和关系运算符,解释它们的基本用法和注意事项,帮助读者更好地理解和运用这些运算符。

一、什么是运算符

计算机的最基本的用途之一就是执行数学运算,比如:

int a = 10;
int b = 20;
a < b;
b > a;
a + b;
a * b;

上述 + * > < 等就是运算符

即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - */)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等.

二、算术运算符

2.1 基本四则运算(±*/%)

int a = 10;
int b = 5;
System.out.println(a+b);    //15
System.out.println(a-b);    //5
System.out.println(a*b);    //50
System.out.println(a/b);    //2
System.out.println(a%b);    //取模,相当于数学除法中的取余数

注意:

  • 都是二元运算符,使用时必须要有左右两个操作数
  • int / int 结果还是int类型,而且会向下取整

int a = 3;
int b = 2;
System.out.println(a/b);    
//数学中应该输出1.5,java会向下取整,即小数点之后全部舍弃了(相当于是两个整数的除法,输出的结果也就是整数)
//想要实现数学中的除法可以使用下面方法(只要两边有一个数是浮点数,那么输出的结果就是浮点数)
double d = a * 1.0 / b;
System.out.println(d);
  • 做除法和取模时,右操作数不能为0

int a = 3;
int b = 0;
System.out.println(a/b);
System.out.println(a%b);

否则就会报错:

  • % 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的

System.out.println(11.5%2); //1.5
  • 两侧操作数类型不一致时,向类型大的提升

System.out.println(1+0.5);//1是int类型,0.5是double类型,在运算的时候,1会先提升为double类型再参与计算1.0+0.5=1.5

2.2 增量运算

+= -= *= %=该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

int a = 8;
a -= 1; //相当于 a = a - 1
System.out.println(a);
a += 2; //相当于 a = a + 2
System.out.println(a);
a *= 5; //相当于 a = a * 5
System.out.println(a);
a /= 3; //相当于 a = a / 3
System.out.println(a);
a %= 2; //相当于 a = a % 2
System.out.println(a);

**注意:**只有变量才能使用该运算符,常量不能使用。

2.3 自增运算

++是给变量的值+1,–是给变量的值-1

int a = 7;
a++;    //后置++,表示给a的值+1
++a;    //前置++,表示给a的值+1
System.out.println(a++);    //后置++,先使用再++,先输出a原来的值,然后再对a进行+1
System.out.println(--a);    //前置++,先++再使用,先对a原本的值进行+1,然后再对其输出
int b = 6;
b--;    //后置--,表示给a的值-1
--b;    //前置--,表示给a的值-1
System.out.println(--b);    //前置--,先--再使用,先对b原来的值-1,然后再输出
System.out.println(b--);    //后置--,先使用再--,先输出b原来的值,然后再对b进行-1

注意:

  • 如果单独使用,【前置++、–】和【后置++、–】没有任何区别  
  • 如果混合使用,【前置++、–】先+1、-1,然后使用变量+1、-1之后的值,【后置++、–】先使用变量原来的值,表达式结束时给变量+1、-1  
  • 只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改  

三、关系运算符

关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。

int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

注意:当需要多次判断时,不能连着写,比如:3 < a < 5,Java程序与数学中是有区别的

🌤️全篇总结

本篇详细Java中的算术运算符和关系运算符,包括基本的四则运算、增量运算、自增自减运算以及关系运算符的使用方法和注意事项。看到这里相信你已经可以熟练地运用这些运算符,编写出更加高效和准确的Java程序。在日常的编程实践中,灵活运用这些运算符将为您的代码逻辑增添无穷活力!

33dcadccda9a4327a9541c4fd95c09fd.png

目录
相关文章
|
5天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
|
2天前
|
Java 程序员 开发者
Java中的异常处理机制深度解析
本文旨在深入探讨Java中异常处理的核心概念与实际应用,通过剖析异常的本质、分类、捕获及处理方法,揭示其在程序设计中的关键作用。不同于常规摘要,本文将直接切入主题,以简明扼要的方式概述异常处理的重要性及其在Java编程中的应用策略,引导读者快速把握异常处理的精髓。
|
1天前
|
安全 Java 开发者
Java并发编程中的锁机制解析
本文深入探讨了Java中用于管理多线程同步的关键工具——锁机制。通过分析synchronized关键字和ReentrantLock类等核心概念,揭示了它们在构建线程安全应用中的重要性。同时,文章还讨论了锁机制的高级特性,如公平性、类锁和对象锁的区别,以及锁的优化技术如锁粗化和锁消除。此外,指出了在高并发环境下锁竞争可能导致的问题,并提出了减少锁持有时间和使用无锁编程等策略来优化性能的建议。最后,强调了理解和正确使用Java锁机制对于开发高效、可靠并发应用程序的重要性。
9 3
|
4天前
|
存储 监控 算法
Java中的内存管理与垃圾回收机制解析
本文深入探讨了Java编程语言中的内存管理策略和垃圾回收机制。首先介绍了Java内存模型的基本概念,包括堆、栈以及方法区的划分和各自的功能。进一步详细阐述了垃圾回收的基本原理、常见算法(如标记-清除、复制、标记-整理等),以及如何通过JVM参数调优垃圾回收器的性能。此外,还讨论了Java 9引入的接口变化对垃圾回收的影响,以及如何通过Shenandoah等现代垃圾回收器提升应用性能。最后,提供了一些编写高效Java代码的实践建议,帮助开发者更好地理解和管理Java应用的内存使用。
|
5天前
|
Java 开发者
深入解析Java中的异常处理机制
本文将深入探讨Java中异常处理的核心概念和实际应用,包括异常的分类、捕获、处理以及最佳实践。我们将通过具体示例展示如何有效使用try-catch块、throws关键字和自定义异常类,以帮助读者更好地理解和应用Java异常处理机制。
10 1
|
5天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
16天前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
75 6
【Java学习】多线程&JUC万字超详解
|
1天前
|
Java
深入理解Java中的多线程编程
本文将探讨Java多线程编程的核心概念和技术,包括线程的创建与管理、同步机制以及并发工具类的应用。我们将通过实例分析,帮助读者更好地理解和应用Java多线程编程,提高程序的性能和响应能力。
13 4
|
9天前
|
Java 调度 开发者
Java并发编程:深入理解线程池
在Java的世界中,线程池是提升应用性能、实现高效并发处理的关键工具。本文将深入浅出地介绍线程池的核心概念、工作原理以及如何在实际应用中有效利用线程池来优化资源管理和任务调度。通过本文的学习,读者能够掌握线程池的基本使用技巧,并理解其背后的设计哲学。
|
9天前
|
缓存 监控 Java
Java中的并发编程:理解并应用线程池
在Java的并发编程中,线程池是提高应用程序性能的关键工具。本文将深入探讨如何有效利用线程池来管理资源、提升效率和简化代码结构。我们将从基础概念出发,逐步介绍线程池的配置、使用场景以及最佳实践,帮助开发者更好地掌握并发编程的核心技巧。

推荐镜像

更多