运算符

运算符:对字面量或者变量进行操作的符号

表达式:用运算符把字面量或者变量连接起来,符合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运算符(复习)的更多相关文章

  1. 《Java基础复习》-控制执行流程

    最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...

  2. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  3. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  4. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  5. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  6. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  7. Java笔记2-数据类型,变量,Java运算符

    我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...

  8. Java运算符优先级(转)

    转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...

  9. 【转】Java运算符优先级

    原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...

  10. java运算符优先级与流程控制

    1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法   (修饰词)(返回值类型)(方法名)(参数列表){  ...

随机推荐

  1. mysql 列约束

    mysql可以对插入的数据进行特定得验证,只有满足条件才可以插入到数据表中,否则认为是非法插入: 例如:人性别只可以是男.女.年龄只能是0-100. ①主键约束查重-PRIMARY KEY,1表一个: ...

  2. 炫酷科技感黑客感瀑布流html代码

    效果如下 代码如下 <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" ...

  3. 行为型模式 - 迭代器模式iterator

    模式的定义与特点 迭代器模式(iterator Pattern),为的提是可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象.多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对 ...

  4. 12月12日内容总结——Django之数据增删改查、Django请求生命周期流程图、Django路由层(路由匹配、转换器、正则匹配)、反向解析

    目录 一.可视化界面之数据增删改查 二.django请求生命周期流程图 三.django路由层 1.路由匹配 2.转换器 3.正则匹配 不同版本的区别 正则匹配斜杠导致的区别 4.正则匹配的无名有名分 ...

  5. 11月16日内容总结——OSI传输层之TCP与UDP协议、应用层简介、socket模块介绍及代码优化、半连接池的概念

    目录 一.传输层之TCP与UDP协议 1.TCP协议(重要) 三次握手建链接(白话版) 三次握手专业版 四次挥手断连接(白话版) 四次挥手专业版 2.UDP协议 3.tcp和udp的对比 二.应用层简 ...

  6. Kubernetes(k8s)控制器(三):ReplicationController

    目录 一.系统环境 二.前言 三.ReplicationController概览 四.ReplicationController工作机制 五.创建ReplicationController 六.扩展r ...

  7. 破解练习-CRACKME001

    001-注册算法分析 一.工具和调试环境 动态调试工具:x64dbg 系统环境:win10 1909 二.分析Serial/name的算法 由于Serial里面就是一个字符串比较,没有啥算法,这里就不 ...

  8. 力扣---45. 跳跃游戏 II

    给定一个长度为 n 的 0 索引整数数组 nums.初始位置为 nums[0].每个元素 nums[i] 表示从索引 i 向前跳转的最大长度.换句话说,如果你在 nums[i] 处,你可以跳转到任意 ...

  9. SpringCloud GateWay网关(入门)

    1.介绍 强烈推荐,看官网文档 Spring Cloud Gateway ①简介 Cloud全家桶里有个重要组件:网关 SpringCloud Gateway基于WebFlux框架 WebFlux底层 ...

  10. 学习Java Day11

    今天学习了二维数组: