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)等电 ...
随机推荐
- CTF大赛模拟-CFS三层内网漫游
CTF大赛模拟-CFS三层内网漫游 环境: 三台虚拟机,三个网络. target 1:192.168.161.178 ,192.168.52.132 (linux) target 2:192.168. ...
- 基于Vue开发的门户网站展示和后台数据管理系统
基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ...
- 关闭Mac的Microsoft AutoUpdate
最近使用Office 发现AutoUpdate一直会启动.我也不需要里面的更新.每次还要把它推出. 网上看到有两种方法,一种是暴力删除,另一种是通过权限限制. 暴力可不是我喜欢的方式,所以选择后者. ...
- JavaScript学习总结1-字符、数字
1.严格检查模式 JavaScript是一种十分随便自由的语言 1 <script> 2 console.log(i); 3 </script> 即使没有定义i变量,也能在控制 ...
- go源码阅读 - container/ring
相比于List,环的结构有些特殊,环的头部就是尾部,所以每个元素可以代表自身这个环.环其实是一个双向回环链表.type Ring struct { next, prev *Ring Value int ...
- 超详细讲解H5移动端适配
前言 移动互联网发展至今,各种移动设备应运而生,但它们的物理分辨率可以说是五花八门,一般情况UI会为我们提供375尺寸的设计稿,所以为了让H5页面能够在这些不同的设备上尽量表现的一致,前端工程师就不得 ...
- 2021.11.10 P5231 [JSOI2012]玄武密码(AC自动机)
2021.11.10 P5231 [JSOI2012]玄武密码(AC自动机) https://www.luogu.com.cn/problem/P5231 题意: 给出字符串S和若干T,求S与每个T的 ...
- liunx ip无法显示问题解决
目录 出现现象描述 解决方案步骤: 1.停止NetworkManager 2.清空NetworkManager 3. 重启net service 4. 再次查看网络状态ifconig 出现现象描述 e ...
- PHP的Laravel与Composer部署项目时常见问题
我们在部署PHP项目时,其实大部分的PHP项目会创建环境检测与一键**Install**页面. 但是,有许多的项目还采用了Composer部署. 什么是Composer 至于什么是Composer,我 ...
- linux搭建ntp时间同步服务
1.NTP简介 NTP(Network Time Protocol,网络时间协议)用来使计算机时间同步的一种协议.它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准 ...