一.赋值操作符

1 有哪些赋值操作符

2 需要注意的地方

1)

a+=b; ==> a = a+b;

a-=b; ==>a = a-b;

a =-b;//注意这里-不要写在=的后面

2)

short s = 7;

s = s+3;//出错,在作算术运算的时候,会将小类型提升为大类型运算

s += 3;//没有任何问题

说明:

E1 op= E2; a += 3;

编译器会将它编译成=> E1 =(T)(E1 op E2);

s+=3 => s = (short)(s+3);

二.算术运算符

注意的地方

int i = 8/3;// i得到2 ,不是2.333333333

int i = 8/0; //编译没问题,运行出错,整型相除,0不能作为除数

double d = 8.0/0; //没问题,得到正无穷大

double d = 8/0;//整型相除,0不能作为除数

int i = 8%3; //余2,i就是2

请各个位数之和:

//求各个位数之和

int i = 9829;

//得到各位数

int geWei = i/1%10;

int shiWei = i/10%10;

int baiWei = i/100%10;//38

int qianWei = i/1000%10;

三.自加自减

自加 ++

自减 --

a++ => a=a+1;

++a => a=a+1;

a-- => a=a-1;

--a => a=a-1;

----------------

需要注意的地方

1)单独出现时,a++和++a都是一样的

2)参与一个完整表达式的时候,此时就区别

int a = 9;

int m = a++; //先用后加 m9 a10

int a = 9;

int n = ++a; //先加后用 n10 a10

四.关系操作符

1 包括

注意:比较运算符都是返回boolean的值,主要用于条件语句和循环语句的判断。

什么叫表达式:

操作符与操作数组成的式子,叫表达式。

a = 8;

a = 9>8

五.移位操作符

>>:右移,移出的高位补符号位

<<:>

>>> :无符号右移,高位补0

int i = 13

00000000 00000000 00000000 00001101

13>>1 右移一位,高位补符号位,结果得6

0 00000000 00000000 00000000 0000110

13<<1 左移一位,低位直接补0,结果得26

0000000 00000000 00000000 00001101 0

int i =-13

先求:-13的补码

00000000 00000000 00000000 00001101 (绝对值的二进制)

取反加1后

11111111 11111111 11111111 11110011(-13的补码)

-13>>1 右移一位,高位补符号位.

1 11111111 11111111 11111111 1111001

减1取反后(符号位不变)

1 00000000 00000000 00000000 0000111

最终结果得:-7

如果:-13>>>1 无符号右移一位,高位补0.

0 11111111 11111111 11111111 1111001

---------------------

面试题:

以最快的速度算出8*2或者8/2的结果?

8<<1

8>>1

int r = 8*2 //用到很多块内存,所以慢。

六.按位操作符

&:按位与 : 见0为0,全1为1

|:按位或,见1为1,全0为0

^:按位异或,相同为0,相异为1

~:取反,原来为1变为0,原来为0变为1

使用的一些例子:

1 任何一个数异或同一个数2次得到自身,可以用做简单加密器

七.逻辑运算符

&&:短路与,见假为假,全真为真

||:短路或,见真为真,全假为假

& :非短路与,见假为假,全真为真

| :非短路或,见真为真,全假为假

! :非,取反

^ :异 或,相同为false,相异为true

----

短路和非短路

&&:短路,前面的条件如果为false,不管理 后面条件是true还是false,整体上都为false,所以没必要去判断后面的条件

面试题:

&跟&&区别:

1.&按位与运算符,也叫非短路与

2.&&逻辑与运算符,也叫短路与

3.&第一个表达式不成立的时候,继续算所有的表达式,如(a&b),假如a为false,也还要执行b

4.&&第一个表达式不成立的时候 ,剩下的表达式都不执行了,如(a&&b),假如a为false,则不执行b

八.字符串相加

+可以用来对数值相加,也可以对字符串相加,

+是java下惟一的重载的运算符

String s1 = "hello";

String s2 = "world";

String s3 = s1+s2;

String s4 = "hello"+"world";

字符串可+任何一种数据类型,加号后面的数据类型会自动转换成字符串

需要注意的地方:

String s = "a="+5+5;

System.out.println(s); //输出a=55

s = "a="+(5+5);

System.out.println(s);//输出a=10

九.三目运算符

1 什么是三目运算符

布尔表达式? 值1 : 值2;

2 用来干吗?

对某些条件进行判断,然后取其中两个值中的一个值返回

其实就是if判断的一种简写方式

3 例子

int score = 60;

String s = score>=60? "及格":"不及格";

java 1%10_Java 操作符与运算符详解相关推荐

  1. java右移位_java移位运算符详解

    java 移位运算符不外乎就这三种: << (左移). >> (带符 号右移)和 >>> (无符号右移) 1 . 左移运算符 左移运算符 << 使 ...

  2. java 实现按规则自增功能_java运算符详解 - osc_74vaali6的个人空间 - OSCHINA - 中文开源技术交流社区...

    java基础(2)--运算符详解 自增自减规则 自增自减就是常用的 a = a++ 或者 a = ++a;前者是后缀式,先把a赋值给a,再加一:后者是后缀式,先加一,在赋值给a;而且a++,++a并不 ...

  3. 解释一下java的短路运算,Java短路运算符和非短路运算符详解

    Java短路运算符和非短路运算符详解 时间:2017-09-15     来源:互联网 你了解Java短路运算符和非短路运算符吗?短路运算符就是我们常用的"&&". ...

  4. Java 位运算符详解

    文章目录 Java 位运算符详解 前情提要: 一.简介 二.如何区分 &,|,^ 是逻辑运算符还是位运算符? 三.例子 按位与 & 按位或 | 按位异或 ^ 按位取反 ~ 左移 < ...

  5. MySQL—运算符详解(算术、比较、逻辑、范围运算符与集合运算符 模糊查询 NULL值运算与null值判断 位运算符)

    MySQL--运算符详解 知识纲要 算术运算符 比较运算符 逻辑运算符 范围运算符与集合运算符 模糊查询 NULL值运算与null值判断 位运算符 1.算术运算符 加 减 乘 除 取余 div 也表示 ...

  6. 教妹学Java(十九):continue 关键字详解

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 2019 年度的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我 ...

  7. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

  8. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  9. python3运算符和表达式实验报告_对Python3 * 和 ** 运算符详解

    在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法. 1. 算数运算 * 代表乘法 ** 代表乘方 >>> 2 * 5 10 >>> 2 ** ...

最新文章

  1. Android 编程下 Activity 的创建和应用退出时的销毁
  2. Go基础系列:双层channel用法示例
  3. 查看网关物理地址命令
  4. 读《数字创世纪-人工生命新科学》
  5. 网页设计图片向上浮动_利用js实现图片在浏览器中飘动(浮动窗口自由移动)效果...
  6. 基于链表的模拟21点游戏 C语言
  7. 经典算法(1)- 求1到N的质数
  8. Centos-RedHat 添加路由
  9. 基于Java的2048小游戏设计
  10. SiamFC论文理解及代码理解
  11. PLSQL Developer使用
  12. php hprose扩展1.5.5,基于Hprose for PHP 1.5.6、Yii2.0.7的RPC的基本实现流程
  13. java 获取汉字拼音_java springboot中获取汉字拼音
  14. 计算机无法加载这个项目,Windows系统中出现无法加载这个硬件的设备驱动程序(代码39)的解决方法介绍 win7...
  15. 基于centos 搭建 LAMP 环境,建立WordPress站点
  16. FPGA 30 综合数字ADC /DAC 信号发送采集系统设计(综合项目设计)
  17. xxx.exe 中的 0x005d93af (sss.dll) 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
  18. 为达成与英文品牌的统一 蘑菇街更换域名为mogu.com
  19. ESD9X5VU-2/TR瞬态电压抑制器WILLSEM ESD9X5VU 1线单向超低电容
  20. 【转】Jackson之多态反序列化(父类转不同子类)

热门文章

  1. GPU指令集技术分析
  2. 嵌入式Linux设备驱动程序:编写内核设备驱动程序
  3. [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
  4. 直接法 matlab,解线性方程组直接方法matlab用法.doc
  5. OpenCV Manager package was not found Try to install it?
  6. Android 签名配置
  7. px像素如何转为dip设备独立像素设备独立像
  8. 「Django」rest_framework学习系列-用户认证
  9. 御水.20180506
  10. android:layout_gravity 和 android:gravity 的区别