三、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. linux -小记(3) 问题:linux 安装epel扩展源报错

    EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件. epel安装对应的rpm包 centos5 32位epel源下载地址: www.li ...

  2. Openstack Neutron L2 Population

    Why do we need it, whatever it is? VM unicast, multicast and broadcast traffic flow is detailed in m ...

  3. 使用.net的Cache框架快速实现Cache操作

    本文转载自:http://www.cnblogs.com/TianFang/p/3430169.html .NET 4.0中新增了一个System.Runtime.Caching的名字空间,它提供了一 ...

  4. Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)

    在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的.在本篇文章中,我们将引入另外 ...

  5. Makefile中的特殊宏定义以及实用选项

    Makefile中的一些特殊宏定义的名字跟shell中的位置变量挺相似的. $?    当前目标所依赖的文件列表中比当前目标文件还要新的文件 $@   当前目标我名字 $<   当前依赖文件的名 ...

  6. JVM参数(二)参数分类和即时(JIT)编译器诊断

    在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数.我同样会讨论一些关于JIT编译器诊断的有趣参数. JVM 参数分类 HotSpot JVM 提供了三类参数.第一类包括了标 ...

  7. elastic search 配置问题

    http://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html 此处有关于ES硬件规格的建议和各种推荐参数. 内存: ...

  8. CultureInfo 类

    https://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo(VS.80).aspx 区域性名称 区域性标识符 语 ...

  9. Good Bye 2013 C

    C. New Year Ratings Change time limit per test 1 second memory limit per test 256 megabytes input st ...

  10. Server 2003序列号

    windows2003 64位注册码 Windows 2003 R2 64bit Enterprise VOL Edition 企业版 MR78C-GF2CY-KC864-DTG74-VMT73 VP ...