运算符

  • 算数运算符:+ - * / % ++ --
  • 赋值运算符:= += -= *= /=
  • 关系运算符:> < >= <= == != 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. 【笔记】CART与决策树中的超参数

    CART与决策树中的超参数 先前的决策树其实应该称为CART CART的英文是Classification and regression tree,全称为分类与回归树,其是在给定输入随机变量X条件下输 ...

  2. shell 获取当前路径 和 2>&1 &的作用

    #!/bin/bash current_path=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) nohup $curren ...

  3. spring security整体流程

    spring-security原理 图片中各个类的作用: 1JwtUser类:实现Springsecurity的UserDetails类,此类必须有三个属性 private String userna ...

  4. Vue CLI安装报错 npm ERR! Exit handler never called!

    安装Vue CLI时报错: npm install –g vue-cli 试了四种办法 1.把全局安装-g放到后面 npm install @vue/cli –g 2.命令行输入 npm 缓存清理命令 ...

  5. Django CBV装饰器 中间件 auth模块 CSRF跨站请求

    CBV添加装饰器 给CBV添加装饰器有三种方法,三种方法都需要导入模块: from django.utils.decorators import method_decorator 第一种直接在方法上面 ...

  6. 【LeetCode】26. 删除有序数组中的重复项

    26. 删除有序数组中的重复项 知识点:数组:排序:双指针: 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的 ...

  7. .NET Core:处理全局异常

    一.前言 在程序设计中,我们会遇到各种各样的异常问题,一个好的异常处理解决方案能够帮助开发者快速的定位问题,也能够给用户更好的用户体验.那么我们在AspNetCore中该如何捕获和处理异常呢?我们以一 ...

  8. 【linux】less 命令详解

    转自:https://www.cnblogs.com/GNblog/p/6932252.html less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极 ...

  9. Redis 在项目中合理使用经验总结

    转自:https://my.oschina.net/u/920698/blog/3031587 背景 Redis 是一个开源的内存数据结构存储系统. 可以作为数据库.缓存和消息中间件使用. 支持多种类 ...

  10. 由struts2中配置使用servlet引发的思考和复习

    Struts2拦截器到底拦截了什么? 关于struts2中的拦截器,首先再次理解其实只能过滤其中访问的action的映射!再者,因为struts中的action其实就是起到替代servlet作用的,所 ...