java从小白到老白③
PS:①小陌笔记中蓝色紫色等一切花哨字体皆用来引入知识点(废话流),可忽略不计 。
②黑字正文小陌竭力向言简意赅靠近再靠近。
③红色字体小陌觉得重要的地方
- 老规矩,题目引入:
int a = 1;
int b = 2;
System.out.println(++a == 1 && ++b == 2);
System.out.println(a);
System.out.println(b);
int x = 1;
int y = 2;
System.out.println(++x == 1 & ++y == 2);
System.out.println(x);
System.out.println(y);
以上代码有何不同?
这还不简单,第二段漏了个&对不对!
让我们先看输出结果:
①false
2
2
②false
2
3
对照结果会发现,&&操作中没有接着执行后面的判断,直接判定为false
虽然&与&&的最终结果一样,但是&&具有短路功能,左边一方为false,直接判为false,不再执行右边。
而|与||同理,因为&&与||的相对高效率,所以我们常用的逻辑运算符是&&和||这俩成双成对的,而不是那种光棍吧唧的死脑筋~
好叭,需要承认,小陌这种单身猿,之所以单身,像&和|不被多用一样,应该也是有理由的

位运算
^异或,同则1,不同则0
~按位取反,1变0,0变1
①一个数据对另一个数据位异或^两次,该数本身不变
<<左移运算符 左边最高位丢弃,右边补齐0
>>有符号位右移运算符 最高位是0,左边补0;最高位是1,左边补齐1
>>>无符号位右移运算符 不管最高位0还是1,左边补齐0
eg1:3<<2 等价于 3*2^2
8>>2 等价于 8/2^2
但是对于>>与>>>往往需要严格按照位运算进行
eg2: -10的右移操作
System.out.println(-10>>>3);//536870910
System.out.println(-10>>3);//-2
原码:10000000 00000000 00000000 00001010
反码:11111111 11111111 11111111 11110101
补码:11111111 11111111 11111111 11110110
>> 11111111111 11111111 11111111 11110(110)补码
11111111111 11111111 11111111 11101反码
10000000000 00000000 00000000 00010原码
System.out.println(-10>>3);//-2
>>> 00011111111 11111111 11111111 11110(110)原码//注意哦( • ̀ω•́ )✧原码既然是正数,则原反补相同
System.out.println(Integer.parseInt("11111111111111111111111111110", 2));//536870910
(既然是位运算,记得把数据转化为二进制再进行相应运算,注意操作的是补码,如果是负数记得还原为原码)
java从小白到老白③的更多相关文章
- Java SpringMVC小白的成长(一)
如果你是一个小白,请跟着我走,我会让你少走弯路,如果你是大牛,那么多谢大牛可以给我提提建议. 说实话,来公司这么久,一直在做的是维护与修改bug.(我的语言是php,来公司才开始接触java). 要毕 ...
- CDH搭建Hadoop分布式服务器集群(java新手小白)
1首先对于一个java还白的小白,先理解CDH与Hadoop的关系 一.Hadoop版本选择. Hadoop大致可分为Apache Hadoop和第三方发行第三方发行版Hadoop,考虑到Hadoop ...
- 1、JAVA的小白之路
大学的时光过得很快,转眼我已经大二了,在大一时,学习了C\C++,对于语言有一定基础,在未来的道路上,我需要攒足干劲,积累足够的知识和技能,去走上社会. 我的第一任大学班主任告诉我:“作为程序员,你至 ...
- java从小白到架构师大牛必看书籍
一.基础类 1.<ThinkingJava>,入门第一位是建立正确的概念. 2.<Core Java>,我没系统读过,这本书更贴近实践,更多API的介绍,同样,更新也更频繁. ...
- java技术小白的入门
一.入门书籍 1,疯狂java讲义 2,java编程思想 3,Maven权威指南 4,Spring 3.0就是这么简单 5,Spring技术内幕 6,Spring实战 7,Maven实战 二.入门业务 ...
- 小白学Java:奇怪的RandomAccess
目录 小白学Java:奇怪的RandomAccess RandomAccess是个啥 forLoop与Iterator的区别 判断是否为RandomAccess 小白学Java:奇怪的RandomAc ...
- 大学四年,总结一套适合小白的Java自学路线和方法
前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不 ...
- java面试入门总结
最近正好有时间空下来,前一段时间本来打算呢,写一写阶段的总结,今天就来谈谈吧.作为一个java入门小白,之前就职于浙江大华,是通过大华10月份秋季招聘通过大华的面试. 浙江大华校招采用模式是先笔试.再 ...
- Java内部类的一些总结
作为刚入门Java的小白,这两天看到内部类,这里做一个总结,若有错误,欢迎指正~ 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. 内部类分为: 成员内部类.局部内部类.静态嵌套类. ...
- Java中String、StringBuffer、StringBuilder和toString的介绍
作为一个刚接触java的小白,觉得字符串是个比较大的知识点,所以我把自己整理的一点笔记写成随笔,与园友一起分享,也请园友多多指出意见. 一.String类 1.字符串长度——length() Stri ...
随机推荐
- 深度科普 - 大名鼎鼎的bun.js到底是什么? 它能否替代node.js? 是否能成为前端生态的未来?
什么是bun? 聪明的小伙伴们,你们在接触bun时是否有过这样的疑问呢? bun.js是什么? 它是如何诞生的? 跟node.js的区别是什么? 有什么优势? 目前的发展情况如何了? 他是否是前端的未 ...
- 【BUUCTF】easy calc
[BUUCTF]easy calc (PHP代码审计) 题目来源 收录于:BUUCTF BUUCTF2019 题目描述 一个计算器,尝试SSTI,SQL注入都无果 对计算过程抓包,发现/clac.ph ...
- Win10打开IE自动跳转至Edge解决办法
WIN + R输入inetcpl.cpl弹出Internet属性对话窗口 点击上面菜单中的[高级]选项 滑动右侧滚动条,找到[浏览]项下面的[启用第三方浏览器拓展*]并取消勾选 双击IE浏览器图标测试 ...
- MySQL时间溢出原理、实战影响与全面解决方案
一.问题背景与现象复现 操作场景: 本文将手把手带您了解mysql时间溢出原理.实战影响与全面解决方案,所有代码均通过dblens for mysql数据库工具验证,推荐使用该工具进行可视化数据库管理 ...
- github520cli解决无法github访问问题
github并没有被GFW直接墙掉,而是因为DNS污染导致经常无法访问 访问的时候经常出现push或者pull代码的时间很长,出现无法访问仓库,请检查是否有权限的报错,这可能就是被DNS污染了 如何解 ...
- linux mongodb安装
更新依赖包 安装前我们需要安装各个 Linux 平台依赖包. Red Hat/CentOS: sudo yum install libcurl openssl Ubuntu 18.04 LTS (&q ...
- Golang 入门 : 创建第一个Go程序
创建第一个Go程序 新建一个 helloworld.go 文件,写入以下程序 package main import ( "fmt" ) // 一个函数声明 /* 一个main函数 ...
- 一个属性同时使用Autowired和Resource注解会发生什么?
首发于公众号:BiggerBoy 右侧图片wx扫码关注有惊喜 欢迎关注,查看更多技术文章 如题,如果在同一个属性上使用@Autowired注解注入bean1,然后使用@Resource注解注入bean ...
- Git 查看修改历史
# 查看某个文件的 commit 历史日志 1. git log filename # 查看每次提交的diff 2. git log -p filename # git show abe69804bb ...
- 自定义vscode 调试控制台字体颜色
"workbench.colorCustomizations": { "debugConsole.warningForeground": "#1818 ...