网站首页 > java教程 正文
算术运算符
运算符含义+加法-减法*乘法/除法%取余++自增加1--自减减1
public static void main(String[] args) {
int a = 8;
int b = 2;
//加法,如果不加括号加号代表的是连接符
System.out.println("a连接b:"+a+b);
System.out.println("a+b="+(a+b));
//减法
System.out.println("a-b="+(a-b));
//乘法
System.out.println("a*b="+(a*b));
//除法
System.out.println("a/b="+(a/b));
//取余
System.out.println("a%b="+(a%b));
//自增
System.out.println("a++="+(a++));
//自减
System.out.println("b--="+(b--));
//自增和自减分为前增(减)和后增(减)
//前增(减)表示先增(减)然后再进行表达式运算
a = 8;
b = 2;
int x = a+++b;
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("x:"+x);
//后增(减)表示先表达式运算再增(减)
a = 8;
b = 2;
int y = a+b++;
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("y:"+y);
//如果出现变量类型不一致的情况下结果会自动类型转换
//转换的顺序为 byte -> short -> int -> long -> float -> double
int c = 2;
long d = 3L;
//这种可以
long e = c+d;
//这个会报错
//int f = c+d;
//算术符优先级是从左到右
//乘除>取余>加减
float f = 1+2+2*3/2+-4/2+10/2%3;
System.out.println("优先级运算符的结果:"+f);
}
关系运算符
关系运算符表示这个表达式成立或者不成立,用来执行想要执行的代码。除特殊情况下,比较的两个变量类型一定要一致,否则会出现不想要的结果
运算符含义==表示两个变量相等时要做的事!=表示两个变量不等式要做的事>表示左变量大于右变量要做的事<表示左变量小于右变量要做的事>=表示左变量大于等于右变量要做的事<=表示左变量小于等于右变量要左的事
public static void main(String[] args) {
int a = 1;
int b = 2;
if(a == b){
System.out.println("变量a等于变量b");
}else{
System.out.println("变量a不等于变量b");
}
if(a != b){
System.out.println("变量a不等于变量b");
}else{
System.out.println("变量a等于变量b");
}
if(a > b){
System.out.println("变量a大于变量b");
}else{
System.out.println("变量a不大于变量b");
}
if(a < b){
System.out.println("变量a小于变量b");
}else{
System.out.println("变量a不小于变量b");
}
if(a >= b){
System.out.println("变量a大于等于变量b");
}else{
System.out.println("变量a小于变量b");
}
if(a <= b){
System.out.println("变量a小于等于变量b");
}else{
System.out.println("变量a大于变量b");
}
}
位运算符
位运算主要用于二进制数字操作。
运算符含义&位与操作,两个数字的相对应位都是1的时候才是1|位或操作,两个数字的相对应位有一个是1的时候就是1^位非操作,两个数字的相对应位相同则位0,否则为1~位取反操作,位取反0变1,1变0<<位左移操作,右面的位补0>>位右移操作,如果符号位为0,则左面的位补0,如果符号位为1,则左面补1>>>位右移操作,忽略符号位,左面的位补0
这个实例需要引入guava,建议使用maven
package lesson1;
?
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
?
/**
* @author by 老IT
* @Classname BitOperator
* @Description TODO
* @Date 2020 2020/7/4 15:35
*/
public class BitOperator {
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("变量a的二进制字符串显示:"+display(a));
System.out.println("变量b的二进制字符串显示:"+display(b));
System.out.println("变量a&b的值:"+(a&b));
System.out.println("变量a&b的二进制字符串显示:"+display(a&b));
System.out.println("变量a|b的值:"+(a|b));
System.out.println("变量a|b的二进制字符串显示:"+display(a|b));
System.out.println("变量a^b的值:"+(a^b));
System.out.println("变量a^b的二进制字符串显示:"+display(a^b));
System.out.println("变量~a的值:"+(~a));
System.out.println("变量~a的二进制字符串显示:"+display(~a));
System.out.println("变量a的左移2位的值:"+(a<<2));
System.out.println("变量a的左移2位的二进制字符串显示:"+display(a<<2));
System.out.println("变量b的左移1位的值:"+(b>>1));
System.out.println("变量b的左移1位的二进制字符串显示:"+display(b>>1));
int c = -2;
System.out.println("变量c的二进制字符串显示:"+display(c));
System.out.println("变量c>>1的值:"+(c>>1));
System.out.println("变量c>>1的二进制字符串显示:"+display(c>>1));
System.out.println("变量c>>>1的值:"+(c>>>1));
System.out.println("变量c>>>1的二进制字符串显示:"+display(c>>>1));
}
?
/**
* 显示int的二进制表示方式
* @param param
* @return
*/
private static String display(int param){
String value = Integer.toBinaryString(param);
String v = Strings.padStart(value,32,'0');
Iterable<String> iterable = Splitter.fixedLength(4).omitEmptyStrings().split(v);
return Joiner.on(" ").join(iterable);
}
}
?
逻辑运算符
运算符含义&&逻辑与运算符,当左右值或者两边的表达式都为真的时候,则为真|逻辑或运算符,当左右值或者表达式有一个为真时,则为真!逻辑非运算符,当值或者表达式为真时,则为假,当值或者表达式为假时,则为真
public static void main(String[] args) {
boolean a = true;
boolean b =false;
System.out.println("a&&b的值为:"+(a&&b));
System.out.println("a|b的值为:"+(a|b));
System.out.println("!a的值为:"+(!a));
}
赋值运算符
运算符含义=等于运算符+=左侧的变量值等于左侧变量的值加上右侧变量的值-=左侧的变量值等于左侧变量的值减去右侧变量的值*=左侧的变量值等于左侧变量的值乘以右侧变量的值/=左侧的变量值等于左侧变量的值除以右侧变量的值%=左侧的变量值等于左侧变量的值取余右侧变量的值<<=左侧的变量值等于左侧变量的值左移右侧变量的值>>=左侧的变量值等于左侧变量的值右移右侧变量的值&=左侧的变量值等于左侧变量的值按位与右侧变量的值^=左侧的变量值等于左侧变量的值按位非右侧变量的值|=左侧的变量值等于左侧变量的值按位或右侧变量的值
public static void main(String[] args) {
int a = 6;
int b = 2;
int c = a + b;
System.out.println("c的值为:"+c);
a = 6;
System.out.println("a+=b的值为:"+(a+=b));
a = 6;
System.out.println("a-=b的值为:"+(a-=b));
a = 6;
System.out.println("a*=b的值为:"+(a*=b));
a = 6;
System.out.println("a/=b的值为:"+(a/=b));
a = 6;
System.out.println("a%=b的值为:"+(a%=b));
a = 6;
System.out.println("a<<=b的值为:"+(a<<=b));
a = 6;
System.out.println("a>>=b的值为:"+(a>>=b));
a = 6;
System.out.println("a&=b的值为:"+(a&=b));
a = 6;
System.out.println("a^=b的值为:"+(a^=b));
a = 6;
System.out.println("a|=b的值为:"+(a|=b));
}
三元运算符 & instanceof
三元表达式 变量 = 真假表达式 ?表达式为真时的值:默认的值
instanceof 用于类型判断
public static void main(String[] args) {
int a = 1;
String c = a == 2 ? "真":"假";
System.out.println("三元表达式的值:"+c);
//整数包装类
Integer d = 0;
System.out.println("instanceof的值:"+ (d instanceof Integer));
}
运算符优先级
优先级按照表格的从上至下优先级越来越低
引用菜鸟教程里的数据
猜你喜欢
- 2024-10-30 详解Python开发中的三元表达式#三元表达式#布尔类型
- 2024-10-30 十七、Java选择控制语句(java中提供了哪两种实现选择控制的语句)
- 2024-10-30 第一章:java基本语法之运算符和表达式(2)
- 2024-10-30 三元运算(三元运算符)
- 2024-10-30 这几个牛B的Python语法,你需要了解下
- 2024-10-30 C语言三目运算符背后技术详解(c语音中的三目运算符)
- 2024-10-30 Day15-Python基础知识-条件表达式(三元操作符)
- 2024-10-30 CSP-NOIP信息学竞赛(33)三目运算符 问号表达式 if else
- 2024-10-30 9个小技巧让你的 if else看起来更优雅
- 2024-10-30 Java练习一(基础语法)|Java程序设计
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)