Java系列之运算符
运算符
- 算术运算符:+ (加)、-(减) 、*(乘)、/(除)、%(模)、++(自增) 、 --(自减)
- 赋值运算符:=
- 关系运算符:>、<、>= <= == != instanceof
- 逻辑运算符:&& || !
- 位运算符:& | ^ ~ >> << >>>
- 三目运算符:? :
- 扩展赋值运算符:+= -= /= *=
算术运算符与赋值运算符
//运算符
public class Demo08 {
public static void main(String[] args) {
//算术运算符 + - * / % ++ --
int i1 = 8; //赋值运算符
int i2 = 7;
double d1 = 16.0;
System.out.println("i1 + i2 = "+(i1+i2));
System.out.println("i1 - i2 = "+(i1-i2));
System.out.println("i1 * i2 = "+(i1*i2));
System.out.println("i1 / i2 = "+(i1/i2));
System.out.println("i1 % i2 = "+(i1%i2));
i1++;
System.out.println("i1++ = "+(i1));
i1--;
System.out.println("i1-- = "+(i1));
}
}
关系运算符和逻辑运算符
public class Demo09 {
public static void main(String[] args) {
//关系运算符 > < == >= <= != instanceof
int i1 = 8;
int i2 = 10;
System.out.println("i1 > i2 :"+(i1 > i2)); //false
System.out.println("i1 >= i2 :"+(i1 >= i2)); //false
System.out.println("i1 < i2 :"+(i1 < i2)); //true
System.out.println("i1 <= i2 :"+(i1 <= i2)); //true
System.out.println("i1 != i2 :"+(i1 != i2)); //true
System.out.println("i1 == i2 :"+(i1 == i2)); //false
// 逻辑运算符 && || !
System.out.println(i1 + " > " + i2+" && "+i1 + " < " + i2+" : "+((i1>i2)&&(i1<i2)));
System.out.println(i1 + " > " + i2+" || "+i1 + " < " + i2+" : "+((i1>i2)||(i1<i2)));
System.out.println("!("+i1 + " > " + i2+") : "+!((i1>i2)));
}
}
三目运算符与算术运算符拓展
public class Demo10 {
public static void main(String[] args) {
// 三目运算符 (表达式 ? 值1 :值2) 当表达式的值为真取 值1,否则取值2
int i = 1;
int j = i < 2 ? 5 : 10; // 5
int k = i > 2 ? 5 : 10; //10
System.out.println(j);
System.out.println(k);
// 运算符拓展
j+=2; // j = j + 2
k-=5; // k = k - 5
System.out.println(j); // 7
System.out.println(k); // 5
j*=2; // j = j * 2
k/=3; // k = k / 2
System.out.println(j); //14
System.out.println(k); // 1
}
}
位运算符
Integer.toBinaryString()为java提供的输出二进制方法
- & 位与运算 同为1取1,否则取0
- | 位或运算 同为0取0,否则取1
- ^ 位异或运算 相同取0,否则取1
- ~ 按位取反 1取0,0取1
- << 按位左移,右侧补0
- >> 按位右移,带符号右移 正数右移高位补0,负数右移高位补1 右移一位相当于除2
- >>> 不带符号右移 无论是正数还是负数,高位通通补0
package test;
public class Demo11 {
public static void main(String[] args) {
int a = 0b10011001;
int b = 0b10000110;
int c = a & b; // 0b10000000
int d = a | b; // 0b10011111
int e = a ^ b; // 0b00011111
int f = ~a; // 0b11111111 11111111 11111111 01100110 一个int占4个字节
int i = 0b10011010;
int g = i<<1; // 左移一位相当于乘以2
int h = i>>1; // 带符号右移 正数右移高位补0,负数右移高位补1 右移一位相当于除2
int l = i >>> 1; //不带符号右移 无论是正数还是负数,高位通通补0
System.out.println(b);
System.out.println(Integer.toBinaryString(c));
System.out.println(Integer.toBinaryString(d));
System.out.println(Integer.toBinaryString(e));
System.out.println(Integer.toBinaryString(f));
System.out.println(i); //154
System.out.println(g); //308
System.out.println(h); // 77
System.out.println(l); // 77
System.out.println(-7>>1); // -4
System.out.println(-1>>>1); // 2147483647:MAX_VALUE
}
}
Java系列之运算符的更多相关文章
- 【JAVA零基础入门系列】Day5 Java中的运算符
运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...
- java与.net比较学习系列(4) 运算符和表达式
上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...
- Java系列笔记(2) - Java RTTI和反射机制
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...
- Java系列笔记(4) - JVM监控与调优
目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...
- Java系列笔记(1) - Java 类加载与初始化
目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个 ...
- Java系列笔记(6) - 并发(上)
目录 1,基本概念 2,volatile 3,atom 4,ThreadLocal 5,CountDownLatch和CyclicBarrier 6,信号量 7,Condition 8,Exchang ...
- 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)
Learning Java the O'Reilly's Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话.个人数字助理(PDA)等电 ...
随机推荐
- git概述
学习资料来源-人家写得比我好 #视频教程: https://www.bilibili.com/video/BV1vy4y1s7k6?spm_id_from=pageDriver #文档教程 https ...
- SSM框架整合(Spring、SpringMVC、Mybatis)
#毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...
- oracle system,sys用户 忘记密码,怎么修改密码
sys用户是Oracle中权限最高的用户,而system是一个用于数据库管理的用户.在数据库安装完之后,应立即修改sys,system这两个用户的密码,以保证数据库的安全.但是我们有时候会遗忘密码或者 ...
- 无需debug,通过抽象模型快速梳理代码核心流程
上一篇我们通过DSM来确定了核心对象并构建了抽象模型.本篇是<如何高效阅读源码>专题的第八篇,我们来基于抽象模型来梳理核心流程. 本节主要内容: 如何通过抽象模型来梳理核心流程 从类名和注 ...
- rabbitmq简单运用
<?php /** * 生产者 */ $connection = new AMQPConnection([ 'host' => '192.168.23.130', 'port' => ...
- style设置 三个 竖线隔得太近了,这个属性和值 设置让他们分开一点
||| // html letter-spacing: 0.2em; // css
- go context详解
Context通常被称为上下文,在go中,理解为goroutine的运行状态.现场,存在上下层goroutine context的传递,上层goroutine会把context传递给下层gorouti ...
- js如何判断一个对象是不是Array? 三种方法总有一种可以帮上忙
转载:http://www.nowamagic.net/librarys/veda/detail/1250 在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? ...
- el-tree小知识点
<el-tree ref="tree" :props="props" :data="initData" node-key=" ...
- 搜索与图论②--宽度优先搜索(BFS)
宽度优先搜索 例题一(献给阿尔吉侬的花束) 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔 ...