Java语法(二)运算符
来源:互联网 发布:山中鹿之介 数据 编辑:程序博客网 时间:2024/06/07 22:28
一、算术运算符:
单目:+(取正)-(取负) ++(自增1) - -(自减1)
双目:+ - * / %(取余)
三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
二、关系运算:
等于符号:==,不等于符号: != ,大于符号:>, 小于符号:<,大于等于符号: >= ,小于等于符号: <= 。
三、位运算符 逻辑运算符:
位运算符 与(&)、非(~)、或(|)、异或(^)
&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
逻辑运算符
与(&&)、非(!)、或(||)
b & 0xff,返回值是int类型,1位变四位,符号位跑到最前面那个字节了,所以可以把[-128,127]变为[0,255],
四、赋值运算符
= += -= *= /= %= &= ^= |= <<= >>=
五、instanceof运算符
该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算结果是true,否则是false。
六、 位移运算符--效率非常高,用于大数量的计算,String的数值,primitive date type 转换byte等
<< 带符号左移
>>带符号右移
>>> 无号右移,用于数据压缩等?
java基本数据类型都是有符号的,没有无符号的
public class Test { public static void main( String[] args ) { byte b = (byte) -8; // -2 System.out.println( b >> 2 ); // 11111111111111111111111111111110 System.out.println( Integer.toBinaryString( b >> 2 ) ); // 1073741822 System.out.println( b >>> 2 ); // 111111111111111111111111111110 System.out.println( Integer.toBinaryString( b >>> 2 ) ); // -32 System.out.println( b << 2 ); // 11111111111111111111111111100000 System.out.println( Integer.toBinaryString( b << 2 ) ); // 255, System.out.println( 0xff ); // 15 System.out.println( 0xff >> 4 ); // -255, System.out.println( -0xff ); }}
七、运算符优先级
从高到低:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op=
不必记优先级,尽量的使用括号来实现运算次序,提高程序可读性。
- Java语法(二)运算符
- Java 语法介绍(二):运算符
- Java学习笔记之java基础语法,运算符(二)
- Java基础语法(二)(基本类型的转换,运算符)
- 黑马程序员_二、java基础语法(常量、变量、进制及运算符)
- 黑马程序员——Java基础语法(二)—运算符、流程控制
- Java——基本语法(二)变量,常量,运算符,表达式
- JAVA 基础语法(二)——基本数据类型转换以及运算符
- [java语法]基本语法(2)运算符
- PHP基本语法(二)—— 运算符
- C#语法小知识(二十三)重载运算符
- Java基本语法--运算符
- java语法,运算符,数组
- Java基本语法-----java运算符
- 【Java】(二)运算符小结(赋值运算符)
- 位运算符介绍(二):Java位运算符
- 位运算符介绍(二):Java位运算符
- JAVA第三弹(运算符<二>)
- Java语法(一)基本语法(think in java 笔记)
- 利用PickerView完成地址选择器(省市二级联动)
- android_12 activity 保存状态
- AngularJs出现错误Error: [ng:areq]
- android_14 线性布局
- Java语法(二)运算符
- grub rescue问题解决
- 拓扑排序的原理及其实现
- signal 11 (SIGSEGV),code 1,fault addr 0x0 和 Fatal signal 6 (SIGABRT), code -6 in tid 7061
- Java语法(四)JVM Spec (3) Structure
- android_14 线性布局2
- 架构师之路始于云栖大会
- Object C 入门(转)
- Java语法(三)JVM Spec(2) Concepts