Java运算符(复习)
运算符
运算符:对字面量或者变量进行操作的符号
表达式:用运算符把字面量或者变量连接起来,符合Java语法的式子就可以称为表达式。
算数运算符
| 符号 | 作用 |
|---|---|
| + | 加法作用 |
| - | 减法作用 |
| * | 乘法作用 |
| / | 除法法作用 |
| % | 取模、取余 |
在代码中,如果有小数参与计算,结果可能不精确
例如:
System.out.println(1.1 + 1.01);
结果:

除法:整数参与运算。只能得到结果的整数部分(不是四舍五入),若想得到小数,需要写成小数格式
例如:
System.out.println(8 / 3);
System.out.println(8.0 / 3);
结果:

练习:
//输入一个三位数,求百位数,十位数,个位数
System.out.println("请输入一个三位数");
Scanner scanner=new Scanner(System.in);
int a= scanner.nextInt();
int b,c,d;
b=a%10;
c=a/10%10;
d=a/100;
System.out.println("个位数是"+b);
System.out.println("十位数是"+c);
System.out.println("百位数是"+d);
取值范围大小:
byte < short < int <long < float < double
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
隐式转换:
什么时候转换:
数据类型不一样,不能进行计算,需要转换成一样的才可以进行计算。
- 转换规则1:取值范围小的,和取值范围大的进行运算,小的先提升为大的,在进行运算
- 转换规则2: byte short char 三种类型的数据在进行运算的时候,都会先提升为int ,再进行运算。
例如:
byte b1 = 10;
byte b2 = 20;
result = b1 +b2 ;
其结果是int类型
int i = 10;
long n = 100L;
double d = 20.0;
result = i + n + d;
// i和n相加 是long类型的。在相加是double类型
数据类型是double;
强制转换
强制转换:如果一个取值范围较大的数值,赋值给取值范围较小的变量,是不允许直接复制的,如果一定要赋值,需要强制转换。
格式:目标数据类型 变量名 =(目标数据类型)被强制转换的数据。
例如:
double a = 12.3;
int b = (int)a;
字符串相加
当“+”操作中出现字符串的时候,这个“+”是字符串连接符,而不是算数运算符,会将前后的数据进行拼接,二产生一个新的字符串。
例如;
"123"+123的结果是“123123”,
连续进行“+”的操作的时候,从左到右一次执行
例如:
1+ 99+“程序员” 的结果是 “100程序员”
字符串“+”的操作
当字符+字符的时候,会把字符通过ASCII码表查询到对应的数字在进行计算
自增自减:
++ 和 -- 不论是放在变量前面还是放在变量后面,单独写一行结果是一样的。
a = 10;
int b = a ++ 先用后加 b= 10
int b = ++ a 先加后用 b= 11
赋值运算符
| 符号 | 作用 |
|---|---|
| = | 赋值 |
| += | 加后赋值 a-=b 将 a+b的值赋给a |
| -= | 减后赋值 |
| *= | 乘后赋值 |
| /= | 除后赋值 |
| %= | 取余后赋值 |
注意:隐藏了一个强制类型转换
关系运算符
| 符号 | 说明 |
|---|---|
| == | a==b 判断a和b的 值是否相等 |
| != | a!=b,判断a和b的值是否不相等 |
| > | a>b 判断a是否大于b |
| >= | a>=b判断a是否大于等于b |
| < | a<b.判断a是否小于b |
| <= | a<=b 判断啊是否小于等于b |
(其结果是true 或者false,符号中间没有空格)
逻辑运算符:
数学中可以写3<x<5.但是在Java中,需要把上面的式子进行拆解,在进行合并表达
拆解为x>3和x<5
合并为x>3&x<5
| 符号 | 说明 |
|---|---|
| & | 逻辑与(且) ,并且,两边都为真,结果才是真 |
| 逻辑或 或者,两边都是假,结果才是假 |
| ^ | 逻辑异或 ,相同为false,不同为true|
| ! | 逻辑非 取反|
短路运算符
&& 短路与 结果与&相同,但是有短路效果,
|| 短路或 结果和 | 相同,但是有短路效果。
三元运算符
格式:关系表达式1?表达式2:表达式2;
例如求两个数的较大值
a>b?a:b
//表达式如果是真的,它的值等于前面的,如果是假的,则等于后面的。
快捷键(idea): ctrl+alt +L,可以格式化代码
原码:
十进制数据的二进制的表现形式,最左边是符号位,0为正,1为负
反码:
正数的补码反码是其本身,负数的反码是符号位保持不变,其余取反
补码:
正数的补码是其本身,附属的补码是其反码的基础上+1
Java运算符(复习)的更多相关文章
- 《Java基础复习》-控制执行流程
最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- Java笔记2-数据类型,变量,Java运算符
我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...
- Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...
- 【转】Java运算符优先级
原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...
- java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法 (修饰词)(返回值类型)(方法名)(参数列表){ ...
随机推荐
- 引子 - 实现轻量的 ioc 容器
IoC 反转控制原则也被叫做依赖注入 DI, 容器按照配置注入实例化的对象. 假设 A 的相互依赖关系如下图, 如何将 A 对象实例化并注入属性. 本文将实现一个轻量化的 IoC 容器, 完成对象的实 ...
- final关键字用于修饰类-final关键字用于修饰成员方法
final关键字与四种用法 概念 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容容,比如,方法重写.那么我们能不能随意的继承 API中提供的类,改写其内容呢?显然这是不合适的.为了避免这种 ...
- drf入门规范、序列化器组件、视图组件、请求与响应
DRF框架之入门规范 本篇文章会详细介绍web开发模式.API接口及其接口测试工具.restful规范.还有经常分不清又很重要的序列化与反序列化的部分,初级交接触APIView.Request类. ...
- LeetCode_804. 唯一摩尔斯密码词
题目 难度:简单 原文:https://leetcode-cn.com/problems/unique-morse-code-words/ 题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一 ...
- 计算机网络基础06-Email应用
1 构成组件 邮件客户端 邮件服务器 SMTP协议 Simple Mail Transfer Protocol 1.1 邮件客户端 读写Email消息 和服务器交互,收发消息 1.2 邮件服务器 邮箱 ...
- 云端智创 | 批量化生产,如何利用Timeline快速合成短视频?
本文内容整理自「智能媒体生产」系列课程第三讲:开发者实战,由阿里云智能视频云技术专家分享云剪辑Timeline的功能及使用方法.云剪辑OpenAPI的使用流程.短视频批量生产的基本原理以及使用Time ...
- BAL数据集详解
详细格式:https://grail.cs.washington.edu/projects/bal/ Bundle Adjustment in the Large Recent work in Str ...
- 学习Java Day26
今天看书学习JAR文件,但是看了半天并没有看懂,于是借助了B站学习了JAR文件的创建及其中的一些jar程序选项该怎么使用
- TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 —— 构成无线局域网的基本协议
TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 -- 构成无线局域网的基本协议 关于 Wi-Fi(IEEE 802.11) 协议 关于 IEEE 802.11 IEEE 802. ...
- JZOJ 7339.改试卷
\(\text{Solution}\) 又忘了线段树分治!! 显然维护一个上凸包 发现加点和删点可以变成限制存在时间 然后把点放在线段树上,线段树下标表示时间 加点时先把点按横坐标排序,然后就可以单调 ...