Java语法细节(2)
1、逻辑运算符 &和&&,|和||的区别
&&:和&的结果是一样的,但运算过程有区别
&&:只要左边结果为假,就不再执行右边的,结果为假
& :无论左边的运算结果是什么,右边的都参与运算
||:和|的结果是一样的,但运算过程有区别
||:只要左边结果为真,就不再执行右边的,结果为真
| :无论左边的运算结果为什么,右边的都参与运算
2、逻辑运算符^(异或)的用法
^ : 符号两边的结果如果相同,则结果为假。符号两边的结果如果不同,则结果为真。
异或运算特点:一个数据对同一个数异或两次,结果仍是原本的数。
需求:实现两个整数的互换,不能引入第三个变量。
int a = 10, b = 2;
a = a^b; //a = 10^2
b = a^b; //b = (10^2)^2=10
a = a^b; //a = (10^2)^10=2
3、<<、>>和>>>运算符的使用
用<<和>>运算符可以实现对2的倍数运算的优化。向左移几位就代表着乘以2的几次方,向右移几位代表着对2的几次方取余。
需求:用最有效率的方式算出2乘以8等于几?
2<<3;
(1)在使用<<运算符时,数据向高位移动,低位补0,高位被移出数据有效位的舍弃。此处注意符号位一起移动
(2)在使用>>运算符时,数据向低位移动,高位用符号位补位。
(3)在使用>>>(无符号右移)运算符时,数据向低位移动,高位用0补位。
注意:负数的二进制是对应正数的二进制取反加1。
Java语法细节(2)的更多相关文章
- Java语法细节 - 可见性
目录 JAVA访问和修饰符的关系一览表 JAVA访问和修饰符的关系一览表 Modifier Class Package Subclass World public Y Y Y Y protected ...
- JAVA语法细节(1)
1.变量的作用域 变量的作用域从变量定义的位置开始,到变量所在的那对大括号结束.变量定义内存开辟一块空间用于该变量,变量到达作用域时,该变量从内存中消失. 2.变量的数据类型 变量基本数据类型:byt ...
- Java语法细节 - synchronized和volatile
目录 synchronized关键字 关键字volatile synchronized关键字 synchronized关键字锁住方法和this的不同之处: public synchronized vo ...
- Java语法细节 - 内存和枚举
目录 Java申请DirectBuffer ByteBuffer的position,limit,capacity,flip操作之间的关系 枚举实现单例模式 Java申请DirectBuffer /*- ...
- Java语法细节 - try_finally和set相关
目录 try-catch-finally的关系 TreeSet和HashSet的实现原理和区别 BigDecimal中的一些坑 当BigDecimal在HashSet/HashMap和TreeSet/ ...
- Java语法知识总结
一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...
- java优化细节记录
此处是为了记录一些优化细节,从网上收集而来,仅供后续代码开发参考使用,如发现更好的,会不断完善 首先确认代码优化的目标是: 减小代码的体积 提高代码运行的效率 代码优化细节 1.尽量指定类.方法的fi ...
- 【Java】这 35 个 Java 代码优化细节!
前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没 ...
- Java语法
java语法: 一个java程序可以说是一系列对象的集合,而这些对象都要通过调用彼此的方法来协同工作. 对象: 对象是一个实例,例如:一只猫,它是一个对象,有状态和行为.它的状态状态有:颜色,名字,品 ...
随机推荐
- jsPlumb
官网:https://jsplumbtoolkit.com GitHub:https://github.com/sporritt/jsplumb/ 初始化 jsPlumb只有等到DOM初始化完成之后才 ...
- R-S触发器
下面是触发器的电路,这个电路上下对称,分别都是一个或门连着一个非门,特别之处在于,它们各自的输出又分别是对方的输入. 合上R,上面的或门输入时1.0,经过上面的非门,Q=0,Q不发光.Q的结果会被反馈 ...
- WindowsForm通过字符串名称实例化控件
private Control FindControl(Control control, string controlName) { Control c1; foreach (Control c in ...
- studio-引入外来包
参考: http://stackoverflow.com/questions/16588064/how-do-i-add-a-library-project-to-the-android-studio ...
- Laravel5.0 CSRFチェックを無効化(修改后可以像5.1以上那样从CSRF保护中排除指定URL)
Laravel5では全てのPOSTに勝手にCSRFチェックが付いてきます.便利と言えば便利ですが.Laravel外からのPOSTを受け取りたいときなど大迷惑です. CSRFチェックを排除する方法が何故 ...
- 30天轻松学习javaweb_Eclipse在修改了web.xml后将自动更新到tomcat服务器中
context.xml中增加<WatchedResource>WEB-INF/web.xml</WatchedResource>,Eclipse在修改了web.xml后将自动更 ...
- Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面 z
http://www.cnblogs.com/zuowj/p/4504130.html 不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景 也最为 ...
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变(转)
在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性.Anchor属性定义控件的定位点位置.当控件锚定到某个 ...
- shell+Jenkins+jmeter集成
参考http://www.cnblogs.com/ceshi2016/p/6025641.html 中除ant相关内容,shell替代ant循环执行jmeter脚本和将jtl转换为html job n ...
- Ubuntu下启动Apache的Rewrite功能
在终端中执行 sudo a2enmod rewrite 指令后,即启用了 Mod_rewrite 模块. 另外,也可以通过将 /etc/apache2/mods-available/rewrite.l ...