java运算符(超详细!!!)
java运算符
一、算数运算符
| 符号 | 含义 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| % | 余数 |
| ++ | 自增 |
| -- | 自减 |
这些是常用的算数运算符,在java基础阶段,掌握这些就可
- 加减乘除运算符
代码实例:
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a=10;
int b=20;
int c=25;
int d=30;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
//当输出数为浮点型的时候,就需要把数据进行强制转换(https://www.cnblogs.com/lingstar/p/16441976.html)
System.out.println(a/(double)b);
//模运算,取余
System.out.println("输出c%a的结果:"+((double)c%a));
}
}
输出结果:
30
-10
200
0.5
输出c%a的结果:5.0
- 自增与自减运算
自增自减是java中常用的运算符,下面以自增为例,自减也同样适用
代码示例:
public class Demo04 {
public static void main(String[] args) {
//运算符中的自增(++)与自减(--) 一元运算符
int a=5;
int b=a++;//++在后,先赋值再自增
System.out.println(b);
System.out.println(a);
int m=3;
int n=++m;//++在后,先自增,再进行赋值
System.out.println("============分割线================");
System.out.println(m);
System.out.println(n);
System.out.println("============分割线================");
//短路运算(了解即可)
int c=10;
boolean d=(c<4)&&(c++>4);
//可以看得到前面c<4是不成立的,那么就不会执行后面的自增运算,造成短路运算-
System.out.println(d);
System.out.println(c);
}
}
输出结果:
5
6
============分割线================
4
4
============分割线================
false
10
二、赋值运算符
- 基本赋值运算符=
java基本运算符,实际上不是等于,它相当于把右边表达式的值赋给等号左边的运算数,除了基本的运算符之外,还有一些不常用的,感兴趣的可以自行先了解
三、关系运算符
常见的关系运算符有
| 符号 | 含义 |
|---|---|
| > | 大于 |
| < | 小于 |
| == | 等于 |
| != | 不等于 |
| >= | 大于等于 |
| <= | 小于等于 |
代码示例:
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误 布尔值
int a=10;
int b=30;
int c=101;
System.out.println("输出a>b的结果:"+(a>b));
System.out.println("输出a<b的结果:"+(a<b));
System.out.println("输出a==b的结果:"+(a==b));
System.out.println("输出a!=b的结果:"+(a!=b));
}
}
输出结果:
输出a>b的结果:false
输出a<b的结果:true
输出a==b的结果:false
输出a!=b的结果:true
四、逻辑运算符
| 符号 | 含义 | 运用 |
|---|---|---|
| && | 逻辑与运算 | 全真为真,有假则假 |
| || | 逻辑或运算 | 有真为真,全假为假 |
| ! | 逻辑非运算 | 若真为假,若假为真 |
代码示例:
public class Demo06 {
public static void main(String[] args) {
//与 (and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
//逻辑与运算,全真为真,有假则假
System.out.println("a&&b:"+(a&&b));
//逻辑或运算,有真为真,全假为假
System.out.println("a||b:"+(a||b));
//逻辑非运算,若真为假,若假为真
System.out.println("!(a&&b):"+(!(a&&b)));
}
}
输出结果:
a&&b:false
a||b:true
!(a&&b):true
五、位运算符
位运算符
&并 |或 ^异或 ~取反a=0011 1100
b=0000 1001
a&b=0000 1000
a|b=0011 1101
异或是同值为0,异值为1
a^b=0011 0111
取反,顾名思义,0为1,1为0
~b=1111 0110
左移<<
左移是不管正负,低位补0 。相当于*2,
24的二进制补码为0001 1000
左移两位后变为0110 0000
结果为96,也就是2422
右移>>
如果该数为正,则高位补0,若为负数,则高位补1 , 相当于/2
24的二进制补码为0001 1000
右移两位之后变为0000 0110
结果为6
左移右移效率极高
六、三元运算符
java中的三元运算符跟java中的if语句类似,可以说是if语句的一种简写
代码示例:
public class Demo09 {
public static void main(String[] args) {
//三元运算符
//x?y:z
//如果x==true,则结果为y,否则结果为z
int score=80;
String type=score<80?"不及格":"及格";//一定掌握,三元运算符
System.out.println(type);
}
}
输出结果:
及格
既然是if语句的简写,那么用if语句也可以轻松实现
代码示例:
public class Demo09 {
public static void main(String[] args) {
int score=80;
if(score<60){
System.out.println("不及格");
}else {
System.out.println("及格");
}
}
}
输出结果:
及格
java运算符(超详细!!!)的更多相关文章
- java 多线程超详细总结——阿里大牛熬夜整理
引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...
- Java——HTTP超详细总结
HTTP协议概述 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...
- Java多线程超详细总结
目录(?)[-] 一扩展javalangThread类 二实现javalangRunnable接口 三Thread和Runnable的区别 四线程状态转换 五线程调度 六常用函数说明 使用方式 为什么 ...
- Java内部类超详细总结(含代码示例)
什么是内部类 什么是内部类? 顾名思义,就是将一个类的定义放在另一个类的内部. 概念很清楚,感觉很简单,其实关键在于这个内部类放置的位置,可以是一个类的作用域范围.一个方法的或是一个代码块的作用域范围 ...
- Java异常超详细总结
1.1,什么是异常: 异常就是Java程序在运行过程中出现的错误. 骚话: 世界上最真情的相依就是你在try我在catch,无论你发什么脾气,我都静静接受,默默处理(这个可以不记) 1.2,异常继 ...
- Java——Spring超详细总结
Spring概述 一.简化Java开发 Spring为了降低Java开发的复杂性,采用了以下四种策略 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面和惯例进行声明 ...
- Java——多线程超详细总结
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.线程概述 几乎所 ...
- JAVA 正则表达式 (超详细)
(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中 ...
- 转载:JAVA 正则表达式 (超详细)
在Sun的JavaJDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用Java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x ...
随机推荐
- PHP的Laravel与Composer部署项目时常见问题
我们在部署PHP项目时,其实大部分的PHP项目会创建环境检测与一键**Install**页面. 但是,有许多的项目还采用了Composer部署. 什么是Composer 至于什么是Composer,我 ...
- MybatisPlus常用注解
一.@TableName value属性 实体类的名字是User,数据库表名是t_user @TableName(value = "t_user") public class Us ...
- Wireshark抓包分析TCP“三次握手,四次挥手”
1.目的 客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程. 2 ...
- linux的简介与安装
linux简介: https://www.cnblogs.com/pyyu/p/9277153.html Linux就是个操作系统:它和Windows XP.Windows7.8.10什么的一样就是一 ...
- 数据管理技术发展,数据库应用发展史,数据库分类,MySQL
计算机数据管理技术发展 1. 自由管理阶段 用户以文件形式将数据组织起来,并附属在各自的应用程序下. 1.数据不保存 当时计算机主要用于科学计算,一般不需要将数据长期保存,只是计算某一课 ...
- spring boot rest controller 自定义反序列化 Date 格式
@JsonFormat(pattern = DatePattern.NORM_DATE_PATTERN) private Date time;
- 难对齐、难保障、难管理?一文了解字节跳动如何解决数据SLA治理难题
基于字节跳动分布式治理的理念,数据平台数据治理团队自研了SLA保障平台,目前已在字节内部得到广泛使用,并支持了绝大部分数据团队的SLA治理需求,每天保障的SLA链路数量过千,解决了数据SLA难对齐.难 ...
- 117_PowerQuery使用ODBC访问带密码的Access
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一. 有朋友在问pq访问带密码的access的时候会报错,导致无法访问(如下图): 1.选择更多 图1 2.选择Acces ...
- Python 中的内存管理
Python 中一切皆对象,这些对象的内存都是在运行时动态地在堆中进行分配的,就连 Python 虚拟机使用的栈也是在堆上模拟的.既然一切皆对象,那么在 Python 程序运行过程中对象的创建和释放就 ...
- pymysql.err.OperationalError: (1054, "Unknown column 'aa' in 'field list'")(已解决)
错误描述: 今天使用python连接mysql数据库进行数据添加时,出现报错"pymysql.err.OperationalError: (1054, "Unknown colum ...