三、Operators 运算符

  Assignment Operators(赋值运算符)

  =   +=   -=   %=   *=   /=    <<=     >>=     >>>=    &=    ^=      |=

public class ByteDemo {
public static void main(String[] args) {
byte b1=2;
byte b2=3;
b1=(byte)(b1+b2); //加法,转int
b1+=b2; //赋值,不转int
}
}

  b1+=b2;与b1=b1+b2;是否完全等价?

  答案是否定的。byte类型参数与运算时要先转换为int型,因此要进行强制类型转换。(可以把“b11+=b2;”看做是对“b1=(byte)(b1+b2);”的优化!)

  Comparison Operators(比较运算符)

  >    >=     <     <=     instanceof

  Equality Operators(相同运算符)

  ==  !=

  Arithmetic Operators(算术运算符)

  +       -       *       /        %

  Shift Operators(移位运算符)

  >>   <<    >>>

public class Test {
public static void main(String[] args) {
String s1 = Integer.toBinaryString(-1);
System.out.println(s1); // 11111111,11111111,11111111,11111111
int i1 = Integer.valueOf("1111111100000000", 2);
System.out.println(i1); // 65280
int i2 = i1 >> 1;
System.out.println(Integer.toBinaryString(i2)); // 01111111,10000000
int i3 = i1 << 1;
System.out.println(Integer.toBinaryString(i3)); // 00000001,11111110,00000000
int i4 = i1 >>> 1;
System.out.println(Integer.toBinaryString(i4)); // 01111111,10000000
// 零位扩展和符号位扩展
System.out.println(Integer.toBinaryString(-1 >> 1)); // 11111111,11111111,11111111,11111111
// -1
System.out.println(Integer.toBinaryString(-1 >>> 1)); // 01111111,11111111,11111111,11111111
// 2147483647
}
}

  Bitwise Operators(位运算符)

  &     |      ^(按位异或)   ~(按位取反)

  Logic Operators(逻辑运算符)

  &&  &  ||  |  !

  Conditional Operators(条件运算符)

  ?:

public class Test {
public static void main(String[] args) {
boolean b = true;
int i = b ? 1 : 2;
System.out.println(i); // 1
}
}

  

  Other operators

  ++  --

public class TestAction {

	public static void main(String[] args) {
int i = 2;
System.out.println(i++); // 2
System.out.println(i); // 3
int a = i++ + i; // 3+4=7
System.out.println(a);
int b = i++ + ++i; // 3+5=10
i++;
System.out.println(b);
System.out.println(i); // 7
for (int j = 0; j < 1000; j++) {
i = i++;
}
System.out.println(i); // 7
}
}

  

Java 基础知识总结 (三、运算符)的更多相关文章

  1. java 基础知识(三)

    Arraylist与Vector的区别 清浅池塘 程序员,专栏:Java那些事儿唯一作者,咨询前请先点详细资料   162 人赞同了该文章 这几天工作有点忙,有很多代码需要写,更新文章有点慢,说声抱歉 ...

  2. Java基础知识(三)

    一.hashCode 与 equals (重要) 面试官可能会问你:"你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?" 1 ...

  3. java基础知识(三)java关键字

    关键字是电脑语言事先定义的,是特别意义的标识符,又叫保留字.用来表示一种数据类型或程序的结构等,关键字不能用作变量名.类名.方法名或参数.java目前共有50个关键字,其中"const&qu ...

  4. java基础知识拾遗(三)

    1.类加载 bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类. extension classloader -扩展类加载器,它负责加载JRE的扩展目 ...

  5. java基础知识(三)之数组

    声明数组: 语法:数据类型[ ] 数组名://例:int[ ] scores;  或者 数据类型 数组名[ ]://例:int scores[ ];分配空间 语法:数组名 = new 数据类型 [ 数 ...

  6. Java基础知识陷阱(三)

    本文发表于本人博客. 之前都讲了有关字符串的陷阱,那今天来说下关于静态这个东西,这分为静态变量.静态方法,先看下面的代码请问结果输出是什么?: class Person01{ private stat ...

  7. JAVA基础知识(三):input.nextLine() 和input.next()

    next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其过滤掉:只有在读取到有效字符之后,next()方 ...

  8. Java基础知识陷阱系列

    Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...

  9. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

随机推荐

  1. FineUI中Newtonsoft.Json版本报错解决办法

    1.清空bin下的Newtonsoft.Json.dll 2.使用Nuget安装最新版本的Newtonsoft.Json.dll,安装脚本为 Install-Package Newtonsoft.Js ...

  2. sql server Datetime格式转换

    select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 select replace(replace(replace(CONVERT( ...

  3. SSIS 项目部署模型

    微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模型 关于部署 SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integ ...

  4. Delphi ActiveX Form的使用实例

    Delphi ActiveX Form的使用实例 By knityster 1. ActiveX控件简介 ActiveX控件也就是一般所说的OCX控件,它是ActiveX技术的一部分. ActiveX ...

  5. ElasticSearch安装及部署

    安装及部署 一.环境配置 操作系统:Cent OS 7ElasticSearch版本:1.3.2JDK版本:1.7.0_51SSH Secure Shell版本:XShell 5elasticsear ...

  6. UML精粹1 - 简介

    Martin的主页 http://martinfowler.com/. Pavel Hruby开发的visio模板,可以用来画UML图: http://phruby.com 简介 统一建模语言UML是 ...

  7. javaSwing文本域文件

    public class JTextAreaTest extends JFrame{    public JTextAreaTest()    {            setSize(200, 40 ...

  8. day7-socket

    socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...

  9. 配置 Gii 允许访问的 IP 地址

    通过本机以外的机器访问 Gii,请求会被出于安全原因拒绝,在 config/web.php 配置 Gii 为其添加允许访问的 IP 地址: if (YII_ENV_DEV) { // configur ...

  10. Appium在没有收到下一个命令时,默认超时时间是60s,超时后应用将会自动关闭,如果有需要等待超过60s的场景,怎么处理?

    DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("newCo ...