运算符

  • 算数运算符:+ - * / % ++ --
  • 赋值运算符:= += -= *= /=
  • 关系运算符:> < >= <= == != instanceof
  • 逻辑运算符:&& || !
  • 位运算符:& | ^ ~ >> << >>>
  • 条件运算符?:

自增理解

int a = 3;
int b = a++; // 先赋值,再自增,相当于在后面执行一句a = a + 1
//a = a + 1
System.out.println(a); // 4
// a = a + 1
int c = ++a;// 先自增,再赋值,相当于在前面执行一句a = a + 1 System.out.println(a); // 5
System.out.println(b); // 3
System.out.println(c); // 5

注意点:

short a = 10;
a = a + 1; // 编译报错
a = (short)(a + 1); // 成功
a++; // 成功,自增不会改变原来的数据类型
 

位运算

A  = 0011 1100
B = 0000 1101
A&B= 0000 1100 与,位都为1,才为1
A|B= 0011 1101 或,有一个为1,则为1
A^B= 0011 0001 异或,位相同则为0,不同则为1 公式:m = (m^n)^n
~B = 1111 0010 非,取反
// << 左移 在一定范围内(如果1移动到符号位,即最高位,就变成负数了,所以说一定范围内),相当于*2,右边移动之后空出来的地方用0补齐
// >> 右移 在一定范围内相当于/2,如果是正数,左边移动之后空出来的地方用0补齐;如果是负数,左边移动之后空出来的地方用1补齐;
// >>> 无符号右移 在一定范围内相当于/2,左边移动之后空出来的地方用0补齐;
0000 0000 0
0000 0001 1
0000 0010 2 1左移一位<< 就是4
0000 0011 3
0000 0100 4 1左移一位<< 就是8
0000 1000 8
0001 0000 16

字符串连接

int a = 10;
int b = 20; System.out.println(a+b+""); // 30
System.out.println(""+a+b); // 1020
 

三元运算符

// x?y:z
// 如果x为真,则y,否则z
int score = 59;
String type = score>60 ? "及格":"不及格";
System.out.println(type);

优先级

Java基础系列(12)- 运算符的更多相关文章

  1. 夯实Java基础系列12:深入理解Java中的反射机制

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  2. Java基础系列--02_运算符和程序的语句

    运算符: (1)算术运算符: +,-,*,/,%,++,--(加.减.乘.除.取余.自增,自减) ++和--的注意事项: a:他们的作用是自增或者自减 b:使用 1.单独使用 放在操作数据的前面和后面 ...

  3. Java工程师学习指南第1部分:夯实Java基础系列

    点击关注上方"Java技术江湖",设为"置顶或星标",第一时间送达技术干货. 本文整理了微信公众号[Java技术江湖]发表和转载过的Java优质文章,想看到更多 ...

  4. 2015年12月28日 Java基础系列(六)流

    2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流

  5. Java基础系列-二进制操作

    原创文章,转载请标注出处:<Java基础系列-二进制操作> 概述 Java源码中涉及到大量的二进制操作,非常的复杂,但非常的快速. Java二进制表示法 首先了解下二进制,二进制是相对十进 ...

  6. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  7. Java基础系列-ArrayList

    原创文章,转载请标注出处:<Java基础系列-ArrayList> 一.概述 ArrayList底层使用的是数组.是List的可变数组实现,这里的可变是针对List而言,而不是底层数组. ...

  8. Java基础系列-Collector和Collectors

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10748925.html 一.概述 Collector是专门用来作为Stream的coll ...

  9. Java基础系列-Comparable和Comparator

    原创文章,转载请标注出处:<Java基础系列-Comparable和Comparator> 一.概述         Java中的排序是由Comparable和Comparator这两个接 ...

  10. Java基础系列--HashMap(JDK1.8)

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10022092.html Java基础系列-HashMap 1.8 概述 HashMap是 ...

随机推荐

  1. 流动的观察者模式 | Flutter 设计模式

    观察者模式,又称发布订阅模式,是一种行为设计模式--你可以定义一种订阅机制,可在对象事件发生时通知多个 观察 该对象的其他对象. 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主 ...

  2. 当任意文件上传偶遇Safedog

    0x01 写在前面 渗透过程中可能会经常遭遇WAF,此时不要轻易放弃,绞尽脑汁竭尽全力,或许弹尽粮绝之时也是柳暗花明之日. 0x02 过狗上传 一次项目渗透过程中,找个一处上传功能 先上传图片,测试上 ...

  3. 题解—P2898 [USACO08JAN]Haybale Guessing G

    pre 首先注意一下翻译里面并没有提到的一点,也是让我没看懂样例的一点,就是这个长度为 \(n\) 的数组里面的数各不相同. 有很多人用并查集写的这道题,题解里面也有一些用线段树写的,不过我认为我的做 ...

  4. taro小程序展示富文本

    在微信小程序下会用到wxParse这个东西来达到html转换wxml的效果, taro小程序官方也给出了示例,地址 这里封装成自己的组件: import Taro, { Component } fro ...

  5. 菜鸟攻略–C语言多文件编程初探(二):使用 gcc 手动编译多文件 C 程序

    step1:下载安装 Dev-C++ 已经安装了 Dev-C++ 或系统中的可以跳过这步.去官网下载 Dev-C++.我昨天下载,发现有点慢,所以我把安装文件放到百度网盘了,供大家下载,下载链接为:h ...

  6. C#设计模式---单例模式(Singleton Pattern)

    一.定义 从"单例"字面意思上理解为一个类只有一个实例.官方定义:确保一个类只有一个实例,并提供一个全局访问点. 二.实现 下面以实现一个日志记录类为例,描述单例模式. 1 usi ...

  7. (2)hadoop之-----配置免密码登录

    ssh-keygen -t rsa 然后一路回车 在家目录下会生成 .ssh 目录           ls -la   查看 进入   .ssh            cd .ssh cp ~/.s ...

  8. 关于Typora的使用

    关于Typora的使用 今天介绍一个做笔记用的一款markdown编辑器,用了之后,顺利被圈粉: Typora,美观小众,可用性强! 和传统的markdown编辑器不一样,传统的markdown编辑器 ...

  9. HbaseWAL

    1.WAL意为 Write Ahead Log ,类似MySQL中的binlog,用来做灾难恢复之用,HLog记录数据的所有变更,一旦数据修改,就可以从Log中进行恢复. Hbase采用类LSM的架构 ...

  10. 查询ES6兼容的网站

    http://kangax.github.io/compat-table/es6/ 查询es6兼容的网站