java 1%10_Java 操作符与运算符详解
一.赋值操作符
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 操作符与运算符详解相关推荐
- java右移位_java移位运算符详解
java 移位运算符不外乎就这三种: << (左移). >> (带符 号右移)和 >>> (无符号右移) 1 . 左移运算符 左移运算符 << 使 ...
- java 实现按规则自增功能_java运算符详解 - osc_74vaali6的个人空间 - OSCHINA - 中文开源技术交流社区...
java基础(2)--运算符详解 自增自减规则 自增自减就是常用的 a = a++ 或者 a = ++a;前者是后缀式,先把a赋值给a,再加一:后者是后缀式,先加一,在赋值给a;而且a++,++a并不 ...
- 解释一下java的短路运算,Java短路运算符和非短路运算符详解
Java短路运算符和非短路运算符详解 时间:2017-09-15 来源:互联网 你了解Java短路运算符和非短路运算符吗?短路运算符就是我们常用的"&&". ...
- Java 位运算符详解
文章目录 Java 位运算符详解 前情提要: 一.简介 二.如何区分 &,|,^ 是逻辑运算符还是位运算符? 三.例子 按位与 & 按位或 | 按位异或 ^ 按位取反 ~ 左移 < ...
- MySQL—运算符详解(算术、比较、逻辑、范围运算符与集合运算符 模糊查询 NULL值运算与null值判断 位运算符)
MySQL--运算符详解 知识纲要 算术运算符 比较运算符 逻辑运算符 范围运算符与集合运算符 模糊查询 NULL值运算与null值判断 位运算符 1.算术运算符 加 减 乘 除 取余 div 也表示 ...
- 教妹学Java(十九):continue 关键字详解
你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 2019 年度的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我 ...
- java集合框架史上最详解(list set 以及map)
title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
- python3运算符和表达式实验报告_对Python3 * 和 ** 运算符详解
在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法. 1. 算数运算 * 代表乘法 ** 代表乘方 >>> 2 * 5 10 >>> 2 ** ...
最新文章
- Android 编程下 Activity 的创建和应用退出时的销毁
- Go基础系列:双层channel用法示例
- 查看网关物理地址命令
- 读《数字创世纪-人工生命新科学》
- 网页设计图片向上浮动_利用js实现图片在浏览器中飘动(浮动窗口自由移动)效果...
- 基于链表的模拟21点游戏 C语言
- 经典算法(1)- 求1到N的质数
- Centos-RedHat 添加路由
- 基于Java的2048小游戏设计
- SiamFC论文理解及代码理解
- PLSQL Developer使用
- php hprose扩展1.5.5,基于Hprose for PHP 1.5.6、Yii2.0.7的RPC的基本实现流程
- java 获取汉字拼音_java springboot中获取汉字拼音
- 计算机无法加载这个项目,Windows系统中出现无法加载这个硬件的设备驱动程序(代码39)的解决方法介绍 win7...
- 基于centos 搭建 LAMP 环境,建立WordPress站点
- FPGA 30 综合数字ADC /DAC 信号发送采集系统设计(综合项目设计)
- xxx.exe 中的 0x005d93af (sss.dll) 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- 为达成与英文品牌的统一 蘑菇街更换域名为mogu.com
- ESD9X5VU-2/TR瞬态电压抑制器WILLSEM ESD9X5VU 1线单向超低电容
- 【转】Jackson之多态反序列化(父类转不同子类)
热门文章
- GPU指令集技术分析
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
- [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- 直接法 matlab,解线性方程组直接方法matlab用法.doc
- OpenCV Manager package was not found Try to install it?
- Android 签名配置
- px像素如何转为dip设备独立像素设备独立像
- 「Django」rest_framework学习系列-用户认证
- 御水.20180506
- android:layout_gravity 和 android:gravity 的区别