位运算

指的是可以直接进行二进制数据的计算处理,主要是:与(&)、或(|)、非(!)、异或(^)、反码(~)、移位处理(>>、<<)

  • 与运算
public class xxx {
public static void main(String[] args) {
int x = 7; //00000111
int y = 13;//00001101
System.out.println(x & y);
}
}
>>>5//00000101

两位都是1 结果才为1 一个不是1 结果就是0

  • 或运算
public class xxx {
public static void main(String[] args) {
int x = 7; //00000111
int y = 13;//00001101
System.out.println(x | y);
}
}
>>>15//00001111

两位只要有一个1 就是1 两位都是0 才为0

  • 移位运算
public class xxx {
public static void main(String[] args) {
int x = 2; //00000010
System.out.println(x<<2);
System.out.println(x);
}
}
>>>8//00001000
>>>2//00000010

先左移两位 <<2 变大(乘2 乘两次)

先右移两位 >>2 变小(除以2 除以两次)

请问 &与&&、|与||的区别?

  • &和|两个运算符可以进行位运算和逻辑运算;

    • 在进行位运算的时候只是针对当前的数据进行 与和或 处理;
    • 在进行逻辑运算的时候所有的判断条件都要执行;
  • 在逻辑运算上还可以使用&&、||;
    • &&:在若干个条件判断的时候,如果前面的条件返回了false,后续所有的条件都不再判断 最终的结果就是false;
    • ||:在若干个条件判断的时候,如果前面的条件返回了true,后续条件不在执行,最终就是true;
public class xxx {
public static void main(String[] args) {
int i =2;
if(true&false&(i++>0)) {
System.out.println(1);
}
System.out.println(i);
if(false&&(i++>0)) {
System.out.println(2);
}
System.out.println(i);
}
}
>>>3
>>>3

两个判断条件都是false 但是从输出的i值来说 可见 &是判断了所有的判断条件 &&只要前面的条件返回了false 后续条件不再判断 自然i还是3而不是4

Java中的位运算符:
>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。

Java基础 -3.3的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  3. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  4. 最适合作为Java基础面试题之Singleton模式

    看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...

  5. java基础练习 字符串,控制流,日历,日期等

    1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...

  6. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  7. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  8. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  9. Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  10. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

随机推荐

  1. HGsoft-downloader

    [NEW]HGsoft-downloader上线了! 给你提供一个简洁无广告的电脑软件下载平台,换个角度下载电脑软件. 网站地址:Go

  2. 总结fiddler抓https包

    把fiddler工具>选项>https>勾选所有,点击actions,导出的证书导入到浏览器(打开右上角浏览器设置>选项>高级>证书>查看证书>证书机构 ...

  3. 苗条的生成树 Slim Span--洛谷

    传送门 钢哥终于没给黑题紫题了(卑微v 稍稍需要多想一点点 ---------------------------------------------------------------------- ...

  4. Apache的虚拟主机功能(基于IP地址、基于虚拟主机、基于端口)

    1. 安装Apache服务程序(系统用户,1-199之间) 第一步:在虚拟机软件里选中光盘镜像: 第二步:将光盘设备挂载到/media/cdrom目录 输入:mkdir -p /media/cdrom ...

  5. 使用docker踩过的坑

    最近需要使用docker,但是win10电脑的系统不是docker windows适用版本,没法在windows上安装 于是就上centos虚拟机里面装了一个docker docker pull文件的 ...

  6. CSS控制 文字超出部分显示省略号

    实现单行文本的溢出显示省略号, (需要加宽度width属来兼容部分浏览) <p style="width: 100px;overflow: hidden;white-space: no ...

  7. STM32F103_外部RAM用作运存---IS62WV51216

    https://www.cnblogs.com/lilto/p/9548736.html STM32F103_外部RAM用作运存   概述 SRAM的简介 折腾过电脑的朋友都知道,当电脑运行比较卡的时 ...

  8. 【转】直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit

    原:https://www.cnblogs.com/baitongtong/p/11248966.html 1 .音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放 ...

  9. Jenkins显示语言切换为中文(最终解决办法)

    网上大部分搜索结果都指向同一种方法就是下载Locale插件,但该方法已失效. 新的解决办法: 下载完成之后重启Jenkins生效,会汉化大部分内容,部分设置不会汉化. 注:重启后不生效请检查 1.已安 ...

  10. IDEA导入maven项目不自动识别

    解决办法: 选中module的pom.xml,右键,选择" add as maven project",即可刷新为maven项目