Java基础知识精通各种运算符

 更新时间:2022年04月28日 11:26:46   作者:猿界的小皮皮  
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量,本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下

前言

本文章主要集中讲解运算符,篇幅较长,请耐心看完绝对通俗易懂。

一、算数运算符

1.简介

再Java中,使用算术运算符 +、-、*、/、%分别代表加减乘除,取模。

2.运用

+

在java中+有三种:1、正常的运算。2、作为正负来用。3、作为连接符(任意数据类型的数据与字符串相连接的时候,那个+号就是连接符)

实例:

package com;
public class liu {
	public static void main(String[] args) {
		//实例一:作为正常运算
		int c = 1;
		int d = 2;
		int e = c + d;
		System.out.println(e)  //最后结果为3;
		//实例二:作为连接符
		//已知有两个变量a和b,值分别为1和2,在控制台上输出a + b = 3, 1 + 2 = 3
		int a = 1;
		int b = 2;
		System.out.println(a + " + " + b + " = " + (a + b));  
		//控制台显示结果为:a + b = 3。
		//注意此时的"+","="作为字符串,而(a + b)则进行运算。
	}
}

-

在java中+有两种:1、正常的运算。2、作为正负来用。

实例:

package com;
public class liu {
	public static void main(String[] args) {
		int a = 1;
		int b = 3;
		int c = b-a;
		System.out.println(c);  //运算结果:2。
	}
}

*

实例:

package com;
public class liu {
	public static void main(String[] args) {
		int i = 4;
		int j = 2;
		int a = i*j;
		System.out.println(a);//8
	}
}

/

当参与/运算的两个数都是整数的话,结果为整数,反之为浮点数。

实例:

package com;
public class liu {
	public static void main(String[] args) {
        //实例1:作为整数运算
		int i = 4;
		int j = 2;
		int a = i / j;
		System.out.println(a);//2
     	//实例2:作为浮点运算
		int i = 5;
		double j = 2;
		double a = i / j;
		System.out.println(a);//2.5
	}
}

%

整数的取余操作(有时称为取模)用%表示。

package com;
public class liu {
	public static void main(String[] args) {
		int i = 2;
		int j = 3;
		System.out.println(i % j);  //0
		int a = 4;
		int b = 2;
		System.out.println(a % b); //2
	}
}

二、自增自减运算符

++

单独使用:不管++在前还是在后,结果都是一样,详见实例1。

参与运算:++在前:先自身加1,然后再参与运算,详见实例2;++在后:先参与运算,然后再自身加1,详见实例3。

实例:

package com;
public class liu {
	public static void main(String[] args) {
		//实例1:单独运算。
		int i = 1;
		i++; // i = i + 1
		++i;
		System.out.println(i);//结果都等于2。
		//实例2:++在前。
		int i = 1;
		int j = ++i;
		System.out.println(j);//2
		System.out.println(i);//2	
		//实例3:++在后。
		int i = 1;
		int j = i++;
		System.out.println(j);//1
		System.out.println(i);//2
	}
}

单独使用:不管–在前还是在后,结果都是一样,详见实例1。

参与运算:–在前:先自身减1,然后再参与运算,详见实例2;–在后:先参与运算,然后再自身减1,详见实例3。

package com;
public class liu {
	public static void main(String[] args) {
		//实例1:单独运算。
		int i = 2;
		i--; // i = i - 1
		--i;
		System.out.println(i);//结果都等于1。
		//实例2:--在前。
		int i = 1;
		int j = --i;
		System.out.println(j);//1
		System.out.println(i);//1	
		//实例3:--在后。
		int i = 1;
		int j = i--;
		System.out.println(j);//2
		System.out.println(i);//1
	}
}

三、赋值运算符

可以在赋值中使用二元运算符,形式非常简便:x += 4 等价于 x = x + 4。

常见的赋值运算符有:=、+=、-=、*=、/=、%=。

下面以+=为例:

package com;
public class liu {
	public static void main(String[] args) {
		int i = 1;
		i += 2; // i = i + 2
		System.out.println(i); //输出结果3 
		byte b = 1;
		b += 2; // b = (byte)(b + 2)
		System.out.println(b);
	}
}

四、关系运算符

关系运算符得出来的结果一定是boolean类型的数据,也就是说要么是true,要么是false

常见的关系运算符:>、<、>=、<=、!=、==。

实例:

package com;
public class liu {
	public static void main(String[] args) {
		int i = 3;
		int j = 2;
		System.out.println(i > j);//true
		System.out.println(i < j);//false
		System.out.println(i >= j);//true
		System.out.println(i <= j);//false
		System.out.println(i != j);//true
		System.out.println(i == j);//false  
		// ==是比较两边的大小,=是赋值。
	}
}

五、逻辑运算符

左右两边的数据的数据类型都是boolean类型,结果都是boolean类型。

&(单与)

两边只要有一个是false,结果就为false

实例:

package com;
public class Demo12 {
	public static void main(String[] args) {
		System.out.println(true & true); 
		System.out.println(true & false); //false
		System.out.println(false & false);
		System.out.println(false & true); //false
	}
}

| (单或)

两边只要有一个是true,结果就为true。

实例:

package com;
public class Demo12 {
	public static void main(String[] args) {
		System.out.println(true | true);
		System.out.println(true | false);
		System.out.println(false | false); //false
		System.out.println(false | true);
	}
}

^(异或)

两边相同为false,两边不同为true。

实例:

package com;
public class Demo12 {
	public static void main(String[] args) {
		System.out.println(true ^ true); //false
		System.out.println(true ^ false);
		System.out.println(false ^ false); //false
		System.out.println(false ^ true);
		
	}
}

!(非)

直接就是取反。

实例:

package com;
public class Demo12 {
	public static void main(String[] args) {
		System.out.println(!true); //false
		System.out.println(!false); //true
		System.out.println(!!true); //true
		System.out.println(!!!true); //false
	}
}

&&(双与)

两边只要有一个是false,结果就为false。

实例:

package com;
public class Demo12 {
	public static void main(String[] args) {
		System.out.println(true && true);
		System.out.println(true && false); //false
		System.out.println(false && false); //false
		System.out.println(false && true);  //false
	}
}

&和&&的区别?

  • &&:如果左边为false,右边就不再执行了,结果就为false。
  • &:如果左边为false,右边依然会执行,结果就为false。

|| (双或)

两边只要有一个是true,结果就为true。

实例:

package com;
public class Demo12 {
	public static void main(String[] args) {
		System.out.println(true || true); //true
		System.out.println(true || false); //true
		System.out.println(false || false); //false
		System.out.println(false || true); //true
	}
}

|和||的区别?

  • ||:如果左边为true,右边就不再执行了,结果就为true。
  • |:如果左边为true,右边依然会执行,结果就为true。

六、位运算符

两边的数据都是数字,结果也为数字。

常见的位运算符:&(与位运算)、|(或位运算)、^(异或位运算)、~(按位取反)、>>(右移位运算)、<<(左移位运算)、>>>(无符号右移)。

实例:

package com;
public class Demo01 {
	public static void main(String[] args) {
	    System.out.println(3 & 2); //2
		System.out.println(3 | 2); //3
		System.out.println(3 ^ 2); //1
		System.out.println(~3);//-4
		System.out.println(3 >> 2);//0
		System.out.println(3 << 2);//12
		System.out.println(3 >>> 2);//0
		System.out.println(-3 >> 2);//-1
		System.out.println(-3 >>> 2);
	}
}

>>和>>>区别是什么?

>>:如果数据是负数,最左边的符号位是1,右移之后,左边要补1。

如果数据是正数,最左边的符号位是0,右移之后,左边要补0。

>>>:不管数据是正数还是负数,右移之后,左边都补0。

七、三元运算符

格式:条件表达式 ? 表达式1 : 表达式2; 等同于 x > y ? x : y

条件表达式的结果一定是boolean类型

执行流程:

如果条件表达式为true,就会执行表达式1,不会执行表达式2

如果条件表达式为false,就会执行表达式2,不会执行表达式1

实例:

package com;
public class Demo02 {
	public static void main(String[] args) {
		//获取两个数的较大值
		int i = 2;
		int j = 3;
		//第一种:
		int max = i > j ? i : j;
		System.out.println(max);  //3
		//第二种:
		System.out.println(i > j ? i : j);
		//表达式1和表达式2既然会得到一个结果,如果传递给一个变量去接收,该变量的数据类型应该和表达式1和表达式2的结果的数据类型匹配。
		//浮点型:
		double d = 3 > 2 ? 1 : 2;
		System.out.println(d); //输出:1.0
		//字符型:
		char c1 = 3 > 2 ? 97:98;
		System.out.println(c1); //输出:a
	}
}

到此这篇关于Java基础知识精通各种运算符的文章就介绍到这了,更多相关Java运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java分布式流式处理组件Producer分区理论

    java分布式流式处理组件Producer分区理论

    这篇文章主要为大家介绍了java分布式流式处理组件Producer分区理论详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Spring MVC实现文件上传及优化案例解析

    Spring MVC实现文件上传及优化案例解析

    本文介绍如何在SpringMVC框架中实现文件上传和异步登录功能,通过添加必要的依赖和配置,创建文件上传页面和控制器,实现文件上传到指定文件夹,同时,展示了如何使用AJAX实现局部刷新的异步登录,优化用户体验,详细步骤包括配置springmvc.xml、编写前端页面和控制器等
    2024-10-10
  • SpringBoot启动过程的实现

    SpringBoot启动过程的实现

    这篇文章主要介绍了SpringBoot启动过程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 一文带你深入了解Guava的缓存机制

    一文带你深入了解Guava的缓存机制

    缓存在现代编程中的作用非常大,它能提高应用性能,减少数据库压力,简直就是性能优化的利器,本文主要来和大家聊聊Google Guava的缓存机制,感兴趣的小伙伴可以了解下
    2023-12-12
  • Tomcat报错:HTTP Status 500 (Wrapper cannot find servlet class)解决办法

    Tomcat报错:HTTP Status 500 (Wrapper cannot find servlet class)

    这篇文章主要介绍了Tomcat报错:HTTP Status 500 (Wrapper cannot find servlet class)解决办法的相关资料,需要的朋友可以参考下
    2016-11-11
  • SpringBoot实现阿里云短信发送的示例代码

    SpringBoot实现阿里云短信发送的示例代码

    这篇文章主要为大家介绍了如何利用SpringBoot实现阿里云短信发送,文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的可以参考一下
    2022-04-04
  • Java底层基于二叉搜索树实现集合和映射/集合Set功能详解

    Java底层基于二叉搜索树实现集合和映射/集合Set功能详解

    这篇文章主要介绍了Java底层基于二叉搜索树实现集合和映射/集合Set功能,结合实例形式分析了Java使用二叉搜索树实现集合和映射相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • 深入浅析Netty 在 Dubbo 中是如何应用的

    深入浅析Netty 在 Dubbo 中是如何应用的

    国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天通过本文给大家详细讲解,对Netty 在 Dubbo中应用相关知识感兴趣的朋友跟随小编一起看看吧
    2020-05-05
  • 如何使用spring boot的程序主线程中异步访问外部接口

    如何使用spring boot的程序主线程中异步访问外部接口

    CompletableFuture.supplyAsync提供了一种强大的工具,使您能够以异步方式执行操作,充分利用多核处理器和提高程序性能,同时保持代码的清晰性和可维护性,本文给大家介绍使用spring boot的程序主线程中异步访问外部接口,感兴趣的朋友一起看看吧
    2023-10-10
  • BiConsumer接口中的方法andThen accept使用详解

    BiConsumer接口中的方法andThen accept使用详解

    这篇文章主要为大家介绍了BiConsumer接口中的方法andThen accept使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论