Java基础-运算符(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102930382

Java 语言支持如下运算符:
  • 算术运算符: +,-,*,/,%,++,–
  • 赋值运算符 =
  • 扩展赋值运算符:+=,-=,*=,/=
  • 关系运算符: >,<,>=,<=,==,!=
  • 逻辑运算符: &&,||,!
  • 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
  • 条件运算符 ?:
相关概念辨析
  • +运算符 操作符 Operator
  • 5+6 表达式 expression
  • 5 6 操作数 Operand
  • int m =5+6; 语句 Sentence
代码示例
package com.cwl.base.day01;

/**
 * @program: java_base
 * @description: 测试算术运算符
 * @author: ChenWenLong
 * @create: 2019-11-05 15:07
 **/
public class TestOperator01 {

    public static void main(String[] args) {
	/*
		byte  a = 1;
		int     b = 2;
		long  b2 = 3;
	//	byte  c = a+b;				//报错
	//	int    c2 = b2+b;			//报错

		float  f1 = 3.14F;
		float  d =   b+b2;

//		float  d2 = f1+ 6.2;		//报错

		System.out.println(-9%5);
*/
		/*
		//测试自增和自减
		int a = 3;
		int b = a++;   //执行完后,b=3。先给b赋值,再自增。
		System.out.println("a="+a+"\nb="+b);
		a = 3;
		b = ++a;   //执行完后,c=5。a先自增,再给c赋值
		System.out.println("a="+a+"\nb="+b);
		*/

        int a=3;
        int b=4;
        a+=b;//相当于a=a+b;
        System.out.println("a="+a+"\nb="+b);
        a=3;
        a*=b+3;//相当于a=a*(b+3)
        System.out.println("a="+a+"\nb="+b);

    }
}

算术运算符

  • 注意:
    • 1:/ 除 6/4=1 6/4.0=1.5
    • 2: %取模(求余) 6%4=2
    • 3:+ 6+‘a’=103 6+“a“=6ª
    • 4:++ a=2;b=++a+9; a=2;b=a+++9;
    • +:字符串相加,只要有一个操作数是字符串,自动变为字符串相连
二元运算符类型提升:
  • 整数运算:
    • 如果两个操作数有一个为Long, 则结果也为long
    • 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
  • 浮点运算:
    • 如果两个操作数有一个为double, 则结果为double.
    • 只有两个操作数都是float, 则结果才为float.
  • 一元运算符(++, --):
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值

赋值运算符

  • 基本赋值运算符
  • 扩展赋值运算符
  • 算术运算符和赋值运算符结合

关系运算符

  • 关系运算符用来进行比较运算
  • 关系运算的结果是布尔值:true/false
  • 注意
    • 区分==和=
    • 不等于是!=不是<>
代码实例
package com.cwl.base.day01;

/**
 * @program: java_base
 * @description: 测试关系运算符
 * @author: ChenWenLong
 * @create: 2019-11-05 15:08
 **/
public class TestOperator02 {

    public static void main(String[] args) {
        int  a  = 3;
        System.out.println(a==3);
        System.out.println(a!=3);
        System.out.println(a<5);

        char  b = 'a';
        char  b2 = 'c';


        System.out.println((int)b);
        System.out.println(0+b);
        System.out.println(0+b2);
        System.out.println(b<b2);

    }
}

逻辑运算符

  • 逻辑运算符与布尔操作数一起使用,组成逻辑表达式
  • 逻辑表达式的结果是布尔值
  • &和&&的区别
    • “&”:无论任何情况,“&”两边的表达式都 会参与计算。
    • “&&”: 当“&&”的左边为false,则将不会计 算其右边的表达式。即左false则false
  • “|”和“||”的区别与“&”和“&&”的区别类似
代码示例
package com.cwl.base.day01;

/**
 * @program: java_base
 * @description: 逻辑运算符
 * @author: ChenWenLong
 * @create: 2019-11-05 15:08
 **/
public class TestOperator03 {

    public static void main(String[] args) {
        boolean   b1 = true;
        boolean   b2 = false;
        System.out.println(b1&b2);
        System.out.println(b1|b2);
        System.out.println(b1^b2);
        System.out.println(!b2);

        //短路
//		int  c = 3/0;
        boolean   b3 = 1>2&&2<(3/0);  //短路与,第一个操作数的值为false,则不需要在计算后面的操作数
        System.out.println(b3);


    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

获顶会最佳论文,天津大学等用强化学习寻找游戏bug

软件工程领域顶级会议 34th IEEE/ACM International Conference on Automated Software Engineer...

17510
来自专栏码洞

文字与编码的奥秘(下)

在上篇文章中我们已经了解到,计算机内部是采用的二进制进行运算和存储的。通过计算机来代替我们进行日常的工作,必然会遇到如何进行运算以及数据如何进行存储的问题,本篇...

7230
来自专栏吉林乌拉

Redis地理信息定位GEO

Redis提供了GEO功能,也就是地理信息定位功能。通过Redis中的GEO功能,我们可以很方便的通过经纬度来计算两个地理位置之间的距离。所以我们在实际的开发中...

11120
来自专栏代码男人

Android Gradle 多渠道打包

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

17150
来自专栏磐创AI技术团队的专栏

人工智能免费公开课一网打尽!14个类别、230门课程,GitHub标星6000+

这原本是吴恩达在斯坦福大学开授的课程,课程视频在网络上受到了学习者的广泛好评,后来还推出了专门的网课。

8740
来自专栏搜云库技术团队

常问的15个顶级Java多线程面试题

在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得更多职位,那么你应该准备很多关于多线程的问题。

10530
来自专栏Java后端技术栈cwnait

不要折磨我了,Mybatis 中$和#千万不要乱用!

这是一次代码优化过程中发现的问题,在功能优化后发现部分数据查不到出来了,问题就在于一条sql上的#和$。

7510
来自专栏北京宏哥

Java自动化测试框架-04 - TestNG之Test Method篇 - 道法自然,法力无边(详细教程)

测试方法是可以带有参数的。每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数。

12920
来自专栏五分钟学算法

五分钟学算法小知识:用栈实现队列/用队列实现栈

这两种数据结构底层其实都是数组或者链表实现的,只是 API 限定了它们的特性,那么今天就来看看如何使用「栈」的特性来实现一个「队列」,如何用「队列」实现一个「栈...

10810
来自专栏搜云库技术团队

老板看了我的代码,直呼“666”,要涨工资?

背景:如何更规范化编写Java 代码的重要性想必毋需多言,其中最重要的几点当属提高代码性能、使代码远离Bug、令代码更优雅。

5750

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励