1. 赋值运算符

赋值运算符是有值的

int i;
System.out.println(i = 5); //输出5

正因为赋值运算符有值,所以可以可以连等地赋值

int j,k,l,m,n;
j = k = l = m = n = 5;
System.out.println(""+j+k+l+m+n);//输出55555

2. 位运算符

2.1 非~

举例:~-5

-5的原码:1000_0000_0000_0000_0000_0000_0000_0101

-5的反码:1111_1111_1111_1111_1111_1111_1111_1010

-5的补码:1111_1111_1111_1111_1111_1111_1111_1011

-5取非后:0000_0000_0000_0000_0000_0000_0000_0100(也就是4)

非运算连带符号位一起取非

2.2 带符号右移>>

左边的空位用原来的符号位补充

2.3 无符号右移>>>

左边的空位用0补充

2.4 左移<<

右边的空位用0补充

注:移位准则

  a. 低于int类型的(byte、short、char)的操作数总是先自动类型转换为int类型后再移位

  b. int类型的数移的位数超过32的话,先对移的位数用32求余,然后用移动余数位

  c. long和int类似,只是用64求余

  (移位只是生成了一个新的数,不会对源操作数产生影响)

3. 比较运算符

3.1 等于==

  基本数据类型直接比;如果比较的是引用类型,则只有当两个引用类型相同,或者具有继承关系时才能编译通过,只有两个引用指向的是同一个对象时才返回true,两个对象值相等也不行。

4. 逻辑运算符

4.1 与

短路与&&  与&

4.2 或

短路或||  或|

短路与或在判断前一个表达式的逻辑结果就能决定整个表达式时,不执行后面那个表达式。

4.3 三目运算符

expression ?if-true:if-false

5. 运算符的结合性

  大部分运算符是从左往右结合的,但是单目运算符(++、--、~、!)、赋值运算符(=、+=、-+、*=等)和三目运算符(?:)除外

Java学习日记-2.1 运算符的更多相关文章

  1. Java学习日记基础篇(八) —— 二进制、位运算、位移运算

    二进制 二进制是逢2进位的进位置,0,1是基本算符 原码反码补码 在基本数据类型那里,有详细解释 二进制的最高位数是符号位:0表示整数,1表示负数 正数的原码,反码,补码都一样 负数的反码 = 它的原 ...

  2. Java学习日记——基础篇(三-上)基本语法之运算符和流程控制

    运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: +   加 -    减 *    乘 /    除 %  取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...

  3. Java学习日记-2 零零碎碎

    一.使用Scanner类进行控制台的输入 文档中Scanner类的定义为A simple text scanner which can parse primitive types and string ...

  4. java学习阶段三:运算符和结构学习

    import java.util.Scanner;/* * JAVA中运算符的学习: * 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. * 赋值运算符:=.+=.-=.*=./=. ...

  5. Java学习笔记三:运算符

    1.算术运算符: GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac01.java +  -  *  /  ...

  6. java学习(二)运算符

    一.运算符 赋值运算符:=  +=  -=  *=  /=  %= 算术运算符:+ - *  /  %   ++   -- int x = 3;  int y = 4   int c = x*1.0 ...

  7. java学习笔记之位运算符

    java的位运算符主要针对二进制数的位进行逻辑运算,主要包括以下几种的位运算符 1.与运算符(&) 与运算符的使用规律是两个操作数中位为1的时候结果为1,否则都是0,例如  3&5=1 ...

  8. java 学习第二篇关系运算符和布尔值

    关系运算符,顾名思义.用来看什么关系.(也就是用来比较) 看下表 JAVA 关系运算符 a=6,b=5 关系运算符 举例 值 解释 > a>b true a大于b < a<b ...

  9. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

随机推荐

  1. YYCache 源码分析(二)

    本文分析YYMemoryCache实现原理: YYMemoryCache是内存缓存,所以存取速度非常快,主要用到两种数据结构的LRU淘汰算法 1.LRU Cache的容量是有限的,当Cache的空间都 ...

  2. mui.pushToRefresh组件下拉回调函数中this指向问题

    先看一段代码 (function($) { //阻尼系数 var deceleration = mui.os.ios ? 0.003 : 0.0009; $('.mui-scroll-wrapper' ...

  3. windows服务安装(System.ComponentModel.Win32Exception:远程过程调用失败)

    “安装”阶段发生异常.System.ComponentModel.Win32Exception:远程过程调用失败 附上提示信息C:\Windows\Microsoft.NET\Framework\v4 ...

  4. 图片标签的alt与title区别

    一.img标签alt属性 1.alt属性是考虑到不支持图像显示或者图像显示被关闭的浏览器的用户,以及视觉障碍的用户和使用屏幕阅读器的用户.当图片不显示的时候,图片的替换文字. 2.alt属性值得长度必 ...

  5. Animation动画(一)

    Android的animation由四种类型组成:alpha(渐变透明度动画效果).scale(渐变尺寸伸缩动画效果).translate(画面转换位置移动动画效果).rotate(画面转移旋转动画效 ...

  6. sql 学习笔记 p46

    交换行 update tab1 set c1=c2,c2=c1  .说明sql是临时表的存储,在查询出来的结果为决定前,可以随意操纵临时表中的列 update tab set c1=c1+(selec ...

  7. struts2与spring整合问题,访问struts2链接时,spring会负责创建Action

    每次访问一次链接,spring会创建一个对象,并将链接所带的参数注入到Action的变量中(如何做到的呐) 因为: struts2的action每次访问都重新创建一个对象,那spring的ioc是怎么 ...

  8. 无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539) 解决方案

    使用SQL2012附加一个数据库时报出了以下错误:“无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539).不能打开与此版本的 sqlserver.exe 不兼 ...

  9. 完数c实现

    完数,顾名思义,就是一个数如果恰好等于它的因子之和.例如6=1+2+3.编写找出1000以内的所有完数 #include <stdio.h> #include <stdlib.h&g ...

  10. seajs常用API整理

    本文来自于https://github.com/seajs/seajs/issues/266