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 - 运算符,位运算,流程控制的更多相关文章

  1. Java二进制和位运算,这一万字准能喂饱你

    基础不牢,地动山摇.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托 ...

  2. Python新手学习基础之运算符——位运算

    位运算符 位运算实际上是把数字看作二进制来进行计算,它的运算法则如下: 结合实例,来看下位运算是如何进行的吧: 位运算在实际应用中用途很广泛,比如我们经常听到的子网掩码,它其实就是和IP地址做了按位与 ...

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

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

  4. python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  5. 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  6. Java语言中的程序流程控制

    (1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择  :   a. if / else 语句 b. switch语句 ...

  7. Java中的位运算

    昨天去面试的时候做到了一道Java的位运算题目,发现有个运算符不懂:">>>",今天特地查了一下,并小结一下常见的位运算符号: ~  按位非(NOT)(一元运算) ...

  8. Java学习之位运算和逻辑运算符

    今天看了一下HashMap类的源码,在HashMap的源码中定义了初始空间的大小 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; 当 ...

  9. java基础之位运算

    java中常见的位运算符:&(逻辑与) |(逻辑或) ~(取反) ^(逻辑异或) >>(右移) <<(左移) >>>(无符号右移) &(逻辑与 ...

随机推荐

  1. Spark2.2 saveAsTable 函数使用 overWrite 设置 Partition 会造成全覆盖的问题

    在使用 CDH 6.0.X 的版本还是自带的是 Spark2.2 的版本,2.2 版本的 Spark 使用 saveAsTable 如果使用overWrite PartitionBy 的功能会有和 h ...

  2. ajax基本原理与案例

    一.什么是Ajax AJAX即“Asynchronous Javascript And XML”( 异步 JavaScript和XML),AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互 ...

  3. Vscode生成verilog例化

    前言 手动例化又慢又容易出错,孩子老犯错怎么办? 当然是脚本一劳永逸. 流程 (1)在vscode中安装如下插件. (2)在电脑中安装python3以上的环境. 下载地址:https://www.py ...

  4. <数据结构基础学习>(五)递归

    一. 递归 本质上,将原来的问题,转化为更小的同样的问题 举例:数组求和 Sum(arr[0... n-1]) = arr[0] + Sum(arr[1...n-1])  第二部分为更小的同一个问题 ...

  5. [ZJOI2011]营救皮卡丘

    题目描述 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘,也为了正义,小智和他的朋友们义不容辞的踏上了营救皮卡丘的道路. 火箭队一共有N个据点,据点之间存在M条双 ...

  6. logstash filter 处理json

    根据输入的json字段,分别建立索引.循环生成注册log和登录log保存到testlog文件中,结果如下: {"method":"register"," ...

  7. codeforces-1133 (div3)

    A.先全部化成分钟数,取平均数之后化成正常时刻. #include <map> #include <set> #include <ctime> #include & ...

  8. Apicloud学习第四天

    apicloud存储机制,添加和获取存储的数据 $api.setStorage('currentCity', cityList[i_]); $api.getStorage('currentCity') ...

  9. trackerClient.getConnection()为null

    如题,整了个fastDFS文件服务器.但是集成项目spring boot时上传文件失败! Debug到trackerClient.getConnection()时为null.于是看了服务器上track ...

  10. CSS 分栏结构

    CSS 固定左侧导航栏 left----左侧菜单 cont -- 实际内容 right  ---右侧附加内容   两栏布局---左侧高度为内容撑开的高度     方法一:[坏处是需要 float]   ...