Java - day002 - 运算符,位运算,流程控制
1 运算符
+-*/ (+) 既是数学运算 ,也是 字符串链接
% 求余 / 求模 (进口大麻袋)
== 是否相等
!= 是否不等
> >= < <= 比较大小
&& 逻辑与 (左右都为才为真真)
|| (左右有一个为真,既为真)
! (非真为假,非假为真)
& 位与
| 位或
^ 异或
~ 求反
>> 带符号向右移位
>>> 不带符号 向右移位
<< 向左移位
++ 自增 (放在数值左边,先自增,再取值,,放在右边.先取值,再自增)
-- 自减 (放在数值左边,先自减,再取值,,放在右边.先取值,再自减)
a ? b : c 三项运算符
= 赋值运算
+= -+ &= >>= 会自动转型
byte a = 5;
a = a + 2; 错的 (a + 2 是 int 类型, 不能赋给 byte a)
a = (byte) (a + 2);对的
a += 2; (会自动转成byte)
a += 3.14; (也会自动转成 byte 小数部分舍弃)
2 位运算 (二进制位的运算)
int 类型 四个字节 32位
(位与)相同位置的数都是 1 才是1,否则为0
00000000000000000000000001110011
00000000000000000000000000010101 &
000000000000000000000000000010001
(位或)相同位置的数一个是 1 就是1,否则为0
00000000000000000000000001110011
00000000000000000000000000010101 |
000000000000000000000000001110111
(异或) 相同位置的数不一样既为 1 , 否则为0
00000000000000000000000001110011
00000000000000000000000000010101 ^
000000000000000000000000001000110
异或对同一个值运算两次就是原值
(求反) 0变1, 1变0 (对a求反 = -a-1)
000000000000000000000000100000001 ~
1111111111111111111111111111111110111111111110
(带符号向右位移)
新分配一个内存空间放置位移后的数,原值不变, 右边位移超出限度的位数截掉,
左边不足的位数,根据符号位的符号. 符号位是1,补1, 为0补0
00000000000000000000000011110001 >>2 向右位移两位
00000000000000000000000000111100 (01)删掉
(不带符号向右移位)
新分配一个内存空间放置位移后的数,原值不变, 右边位移超出限度的位数截掉,
左边不足的位数, 都补0
00000000000000000000000011110001 >>2 向右位移两位
00000000000000000000000000111100 (01)删掉
(向左移位)
000000000000000000000000000111111 <<2
000000000000000000000000011111100
// 运算符优先级 多加小括号
移位,右移一位相当于除2,左移一位相当于乘2
3 . 流程控制
if (代码块中如果只有一句代码,可以不加大括号)
只能判断 byte, short, char , int 类型, 或者说只能判断int enum枚举
jdk 1.7之后可以判断 String类型
case 不能写变量,或者常量
switch (变量或表达式){
case a:
break;
case b:
break;
default:
break;
}
如果所有的case 都不执行, 会执行 default
如果不写 break ,当一个case 成立,会无条件执行所有case包括default (穿透),
直到执行完毕或者遇到break
Java - day002 - 运算符,位运算,流程控制的更多相关文章
- Java二进制和位运算,这一万字准能喂饱你
基础不牢,地动山摇.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托 ...
- Python新手学习基础之运算符——位运算
位运算符 位运算实际上是把数字看作二进制来进行计算,它的运算法则如下: 结合实例,来看下位运算是如何进行的吧: 位运算在实际应用中用途很广泛,比如我们经常听到的子网掩码,它其实就是和IP地址做了按位与 ...
- java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法 (修饰词)(返回值类型)(方法名)(参数列表){ ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- Java语言中的程序流程控制
(1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择 : a. if / else 语句 b. switch语句 ...
- Java中的位运算
昨天去面试的时候做到了一道Java的位运算题目,发现有个运算符不懂:">>>",今天特地查了一下,并小结一下常见的位运算符号: ~ 按位非(NOT)(一元运算) ...
- Java学习之位运算和逻辑运算符
今天看了一下HashMap类的源码,在HashMap的源码中定义了初始空间的大小 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; 当 ...
- java基础之位运算
java中常见的位运算符:&(逻辑与) |(逻辑或) ~(取反) ^(逻辑异或) >>(右移) <<(左移) >>>(无符号右移) &(逻辑与 ...
随机推荐
- 内核调试打印dump_stack
https://blog.csdn.net/dragon101788/article/details/9419175 在函数中加入dump_stack函数 需要包含的头文件: #include < ...
- CentOS7安装MySQL8.0图文教程
1.下载 MySQL 所需要的安装包 网址:https://dev.mysql.com/downloads/mysql/ 2.Select Operating System: 选择 Red Hat , ...
- Vue js 的生命周期(看了就懂)
转自: https://blog.csdn.net/qq_24073885/article/details/60143856 用Vue框架,熟悉它的生命周期可以让开发更好的进行. 首先先看看官网的图, ...
- 【BZOJ4028】[HEOI2015]公约数数列(分块)
[BZOJ4028][HEOI2015]公约数数列(分块) 题面 BZOJ 洛谷 题解 看一道题目就不会做系列 首先\(gcd\)最多只会有\(log\)种取值,所以我们可以暴力枚举出所有可能的\(g ...
- 【翻译】A simple stone game
题目描述 在学会了如何玩尼姆游戏之后,迈克开始尝试另一种看起来很多的石头游戏. 简单点. 游戏是这样的:两个玩家用一堆n块石头开始游戏.他们轮流从堆里取石头,每次至少取一块石头 一堆又一堆,每次他们至 ...
- Java基础 -- 持有对象(容器)
一 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构. 我们可以通过创建引用来持有对象,如 Class clazz; 也可以通过数组来持有多个对象,如 Class[] ...
- pthread 线程立即取消的两种方法
1.相关函数介绍 a. int pthread_cancel(pthread_t thread) 1发送终止信号给thread线程,如果成功则返回0,否则为非0值.发送成功并不意味着thread会终止 ...
- 野路子码农系列(1) 创建Web API
新工作正式开始了2天,由于客户暂时还没交接数据过来,暂时无事可做.恰逢政佬给某超市做的商品图像识别的项目客户催收了,老板要求赶紧搞个API,于是我就想我来试试吧. 说起API,我其实是一窍不通的,我对 ...
- .NET框架 - NETFramework + API + EF(DBFirst) + MYSQL
.NET框架 - NETFramework + MVC+ EF(DBFirst) + MYSQL 1. 安装3个MYSQL插件 ①mysql-for-visualstudio-1.2.8 vs的 ...
- 如何为 Jupyter Notebook 安装代码提示功能
按照上一篇博客安装完 Python 和 Jupyter Notebook 后,我们已经可以使用 Notebook 愉快的编写 Python 代码了,但是发现它不像其他编辑器那样会弹出代码提示,这稍微有 ...