Java基础教程(5)-Java中的运算符

简介: 【4月更文挑战第5天】Java运算符包括算术、位、关系和逻辑四类,还有特殊运算符处理特殊情况。算术运算符如+、-、*、/、%,适用于数字类型,包括递增和递减。位运算符直接操作整数类型的位。关系运算符(==, !=, >, <, >=, <=)用于比较,产生布尔结果。逻辑运算符如&、|、^、&&、||和!,其中&和|也可用于位运算。三元运算符(?)用于简化if-then-else语句。运算优先级规则遵循特定顺序,圆括号可改变优先级。

Java中的运算符

Java有4大类运算符:算术运算、位运算、关系运算和逻辑运算。
另外Java还定义了一些附加的运算符用于处理特殊情况。

算术运算符

算术运算符的运算数必须是数字类型。算术运算符不能用在布尔类型上,但是可以用在char类型上,因为实质上在Java中,char类型是int类型的一个子集。

Java定义的算术运算符如下:

'+' 加法
'–' 减法(一元减号)
'*' 乘法
'/' 除法
% 模运算,取余数
++ 递增运算
+= 加法赋值
–= 减法赋值
*= 乘法赋值
/= 除法赋值
%= 模运算赋值
-- 递减运算
  • 基本算术运算符——加、减、乘、除可以对所有的数字类型操作。减运算也用作表示单个操作数的负号。
    ```java
    public class Demo2 {
    public static void main(String[] args) {

      int a = 1,b=2;
      System.out.println(a+b);
      System.out.println(a-b);
      System.out.println(a*b);
      System.out.println(a/b);
    

    }
    }



对整数进行“/”除法运算时,所有的余数都要被舍去。

- 模运算符% 可以用于整数和浮点数

public class Demo2 {
public static void main(String[] args) {

    int a = 1,b=2;
    System.out.println(a % b);

    double c = 20.5,d = 0.6;
    System.out.println(c % b);
    System.out.println(c % d);

}

}



- Java提供特殊的算术赋值运算符,该运算符可用来将算术运算符与赋值结合起来;如+= %=

- Java的递增和递减运算符“++”和“--” ;递增或递减运算符采用前缀(prefix)或后缀(postfix)格式都是相同的。但是,当递增或递减运算符作为一个较大的表达式的一部分,如果递增或递减运算符放在其运算数前面,Java就会在获得该运算数的值之前执行相应的操作,并将其用于表达式的其他部分。如果运算符放在其运算数后面,Java就会先获得该操作数的值再执行递增或递减运算

#### 位运算符
Java定义的位运算直接对整数类型的位进行操作,这些整数类型包括long,int,short,char byte。日常用到的不多;

#### 关系运算符
- 关系运算符(relational operators)决定值和值之间的关系。产生的结果是布尔值。常用在if控制语句和各种循环语句的表达式中;

主要有以下几种:

== 等于
!= 不等于

大于
< 小于
= 大于等于
<= 小于等于

运行如下代码:

public class Demo2 {
public static void main(String[] args) {

    int a = 1,b=2;
    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);
}

}



#### 逻辑运算符
- 布尔逻辑运算符的运算数只能是布尔型。而且逻辑运算的结果也是布尔类型

& 逻辑与
| 逻辑或
^ 异或
|| 短路或
&& 短路与
! 逻辑反
&= 逻辑与赋值(赋值的简写形式)
|= 逻辑或赋值(赋值的简写形式)
^= 异或赋值(赋值的简写形式)
== 相等
!= 不相等
?: 三元运算符(IF-THEN-ELSE)

```

布尔逻辑运算符“&”、“ |”、“ ^”,对布尔值的运算和它们对整数位的运算一样。逻辑运算符“!”的结果表示布尔值的相反状态

?运算符

  • Java提供一个特别的三元运算符(ternary)经常用于取代某个类型的if-then-else 语句。

?运算符的通用格式如下:

expression1 ? expression2 : expression3

其中,expression1是一个布尔表达式。如果expression1为真,那么expression2被求值;否则,expression3被求值。整个?表达式的值就是被求值表达式(expression2或expression3)的值。expression2和expression3是除了void以外的任何类型的表达式,且它们的类型必须相同;

相关文章
|
10天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
13天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
13天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
13天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
23天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
61 2
|
安全 Java 程序员
4月7日云栖精选夜读:给 Java 学习者的超全教程整理
作为Java程序员的我们,应该不仅对这门语言有所了解,而且我们在平常编程时也需要使用众多的库。比如小编知道的,如果要学习Java Web的话,SSH(Spring, Struts和Hibernate)肯定得会吧,或者至少了解基本的原理吧。
2760 0
|
8天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
17天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
4天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
21 9
|
7天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####