java语言的运算符

2023-10-27

目录

小白的疑惑

大白话运算符概念

运算符概念

运算符分类

特别注意

代码定天下

二元运算符

关系运算符代码

逻辑运算符

位运算符

拓展运算符

三目运算符


小白的疑惑

很多没接触编程的小伙伴都会顿感疑惑,啥是运算符?

运算符

大白话运算符概念

小学算过加减乘除吧

比过大小吧

学过与、或、非,即包含、交集之类的吧

那在做这些运算的时候,我们是不是都有相应的符号去表示?

这些表示运算的符号就叫运算符!!!

运算符概念

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算

运算符分类

谁能永远就能认识那几个运算符,学习的过程就是不断求知的过程,要有一种精神,让我研究的没有新的东西出现的时候我就换个方向研究。

那好了,我们看一下关于运算符部分会多少才是尽头?

分类 表现形式
算术运算符 +,-,*,/,%,++,--

赋值运算符

=
关系运算符 >,<,>=,<=,==,!=,instanceof
逻辑运算符 &&,||,!
位运算符 &,|,^,~,>>,<<,>>>
条件运算符
扩展赋值运算符 +=,-=,*=,/=

 

 

 

 

 

 

 

 

特别注意

java中的==判断两个变量是否相等;

代码定天下

二元运算符

运算规则为:

  • 整数型只要有long类型参与运算,结果为long类型
  • 没有long类型参与运算都默认为int类型
  • 有double类型参与的运算,结果为double类型
  • ++,--放置的位置不同,导致的运算结果也会不同
class Operator{
    //二元运算符
    int a = 45;
    int b = 30;
    int c = a+b;
    int d = a-b;
    int e = a*b;
    int f = a/b;
    int g = a%b;

    System.out.println(c); //75
    System.out.println(d); //15
    System.out.println(e); //1350
    System.out.println(f); //1
    System.out.println(g); //15

}

 

 

class Operator{

    public static void main(String[] args){

    long money = 18888888888L;
    int money1 = 299;
    short money2 = 16;
    byte money3 = 5;

    System.out.println(money+money1+money2+money3);//long
    System.out.println(money+money1+money2);       //int
    System.out.println(money+money1);              //int
    }

}
public class OperatorPlus {

	public static void main(String[] args) {
		
		//++ --    自增、自减一元运算
		int order = 3;
		System.out.println(order);       //正常打印order值,结果为3
		int amountOrder = order++;       //后++先运算再加1
		System.out.println(order);       //参与后++运算后3+1=4
		int amountOrder1 = ++order;      //前++先加1再运算
		System.out.println(order);       //结果为5
		System.out.println(amountOrder);  //结果为3
		System.out.println(amountOrder1); //结果为5
		
	}

}

字符串链接符+

  • 字符串在前,后面内容不参与运算直接拼接字符串
  • 字符串在后,前面计算完成后拼接字符串
class SpecialFocous{

    public static void main(String[] args){

    //关于字符串拼接原则  +

    int a = 5;
    int b = 4;

    System.out.println(" "+a+b);//54
    System.out.println(a+" "+b);//5 4
    System.out.println(a+b+" ");//9


    }


}

 

关系运算符代码

  • 程序中应尽量避免浮点数的比较,例如System.out.println(2.00-1.10==0.90),永远返回false.
  • float、double类型的运算往往都不准确

正确的方式

  • 利用整数来表示小数int或者long,例如1.01元,则可以以分为单位来表示。
  • 利用BigDecimal进行浮点型运算,但是注意一定要使用String类型的构造方法,如果使用浮点型构造方法也不能得到准确的结果。
class Operator{

    public static void main(String[] args){

    //运算得出的结果非true即false

    int a = 20;
    int b = 10;

    System.out.println(a>b);   //true
    System.out.println(a<b);   //false
    System.out.println(a==b);  //false
    System.out.println(a!=b);  //true

    }

}

逻辑运算符

  • 与(and)或(or)非(取反)的表示
class LogicOperator {

	public static void main(String[] args) {
		boolean a = true;
		boolean b = false;
		//  &&与运算 有false则false,无false为true
		System.out.println("a&&b结果为"+(a&&b));    //false
		//  ||有true则true,无true则false
		System.out.println("a||b结果为"+(a||b));          //true
		//结果取反
		System.out.println("!a&&b结果为"+!(a&&b));  //true
		
		//短路运算,即前面为false程序直接停止执行
		int c = 5;
		boolean d =(c<3)&&(c++<3);
		System.out.println(d);//结果为false
		System.out.println(c);//结果为5,因为短路后面不进行操作,故c的值没有发生变化
		

	}

}

位运算符

  • 位运算能够提升计算机运算的速度

 

class ShiftOperator {

	public static void main(String[] args) {
		/*
		计算机内部识别表现形式为补码
		 A =  0011 1100     32+16+8+4=60
		 B =  0010 0101     32+4+1=37
		 -------------------------------
		 正数的原反补相同
		 A&B  0010 0100    32+4=36
		 A|B  0011  1101    32+16+8+4+1=61
		 A^B  0001 1001   16+8+1=25
		 负数的原反补遵循相应的原则
		 ~B   1101  1010    -(64+16+8+2)=-90很多同学会在这里疑惑
		 反码 1101  1001
		 源码 1010 0 110   -(32+4+2) = -38
		 */
		int A = 60;
		int B =37;
		System.out.println( A&B);  //36
		System.out.println(  A|B);   //61
		System.out.println( A^B);    //25
		System.out.println( ~B);       //-38
		
	}

}

面试题

2*8怎么运算最快?

用位运算的方式即可,如果采用直接运算,底层逻辑较为复杂,而采用位运算只需要由开关灯来决定。2*8=2*2*2*2

class TestOperator{

    public static void main(String[] args){

    /*
     2*8=2*2*2*2

    <<   右移原数字变大,移几位就乘以2的几次方
    >>   左移原数字变小,移几位就除以2的几次方


    */

    System.out.println(2<<3);   //结果为16


 }


}

拓展运算符

+=,-=,*=,/=

class LazyOperator{

    public static void main(String[] args){

    //  +=,-=,*=

    int price = 10;
    int count = 20;
    price*=count;    //price = price*count

    System.out.println(price);   //输出结果为200

    }

}

三目运算符

格式: (关系表达式)?y:z

关系表达式的值非true即false,true输出y,false输出z

class ThreeEyes{

    public static void main(String[] args){

    int zhangAge = 60;
    int mingAge = 30;
    String relationship;

    relationship = (zhangAge<mingAge)?"ming是哥哥":"ming是弟弟";

    System.out.println(relationship);

    }

}

作业:运算符的优先级测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java语言的运算符 的相关文章

随机推荐

  • 解决github访问不了的方法

    1 打开网站http tool chinaz com dns 在A类型的查询中输入 github com 找到最快访问的ip地址 并复制下来 2 修改系统文件的hosts文件 进入C Windows System32 drivers etc
  • 董事聘任书

    EX 10 38 4 future s1a3 ex1038 htm DIRECTOR OFFER LETTER Exhibit 10 38 The Future Education Group Inc Room 501 Gaohelanfe
  • 前端实习面试题(自己当笔记用)

    一 CSS 01 Flex布局 display flex 在父元素设置 子元素受弹性盒影响 默认排成一行 如果超出一行 按比例压缩 容器属性 1 flex direction属性 取值 row 默认 row reverse column c
  • pycharm导入未安装的第三方库,无错误提示,急需

    pycharm导入未安装的第三方库 无错误提示 急需 如下图所示 第三方库pandas未安装 但是pycharm没有错误 如下图所示 第三方库pandas未安装 但是pycharm没有错误 pandas 并未i安装 pandas下面不是应该
  • Python基础第二话:列表+元组+字典+集合,学基础还得是这....

    Python基础知识第二话 Python基础知识第一话 这一章的知识紧接上一章 零基础的小伙伴可以从上 一章学起来 当然 你也可以收藏起来慢慢学习 学习是不可操之过急的啦 列表 Python学习交流Q群 906715085 print 创建
  • Gradle 详解

    原文地址 深入理解Android 一 Gradle详解 InfoQ 备用地址 Gradle史上最详细解析 AndroidM 博客园 以下内容为复制 粘贴 建议看原文 编者按 随着移动设备硬件能力的提升 Android 系统开放的特质开始显现
  • vue三种方式实现父子间通信

    当前有子组件Student和父组件App 如何让Student发送自己的学生名 App接收并显示 有三种方法 父传子 props
  • mysql 存储过程如何声明多个变量赋值_mysql存储过程:定义变量,赋值,判断,输出...

    1 定义变量 赋值 判断 输出 DROP PROCEDURE IF EXISTS proc first 如果proc first存在就删除 create procedure proc first 创建存储过程 begin 定义变量 DECL
  • Sql_Server中如何判断表中某列是否存在

    判断表AA中是否存在AA ID这一列 如果不存在 则新增 IF NOT EXISTS SELECT 1 FROM syscolumns INNER JOIN sysobjects ON sysobjects id syscolumns id
  • C++环形缓冲区

    环形缓冲区 ring buffer 也称作循环缓冲区 cyclic buffer 圆形队列 circular queue 圆形缓冲区 circular buffer 环形缓冲区并不是指物理意义上的一个首尾相连成 环 的缓冲区 而是逻辑意义上
  • 一文教你搞懂Go中栈操作

    LInux 进程在内存布局 多任务操作系统中的每个进程都在自己的内存沙盒中运行 在 32 位模式下 它总是 4GB 内存地址空间 内存分配是分配虚拟内存给进程 当进程真正访问某一虚拟内存地址时 操作系统通过触发缺页中断 在物理内存上分配一段
  • 开源进展

    作为一个友好的 功能丰富的区块链中间件平台 WeBASE一直致力于降低区块链开发者的研发门槛 提高区块链开发效率 如今 WeBASE v1 5 4来了 此次更新新增区块链应用实训课程案例集 以及管理台操作指引与设计说明 助力社区开发者更快捷
  • 详谈一下:Java中的基本类型变量(8种)与引用类型变量的区别

    对于Java语言中的基本类型 不知道各位老铁是否还能全能说出来 Java语言中的8种基本类型 byte short int long float double char bollen 上面8种Java语言中的基本类型 所对应的变量 就是基本
  • 全网最细,接口自动化测试-数据库操作与日志模块,一篇打通...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • NEC红外协议编码,38K红外遥控编码,红外遥控发射接收电路选型设计

    NEC为红外遥控最常用的编码 红外载波频率为38KHz 其协议小巧简单 非常适合家电设备的控制 其他的还有 Phillips RCA 的RC 5和RC 6 但那只是IR协议的少数 本篇博文参照国外博客或论坛资料并汇总 原链接可能需要翻墙 N
  • 微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)

    前言 CryptoJs是google推出的一款前段解密类库 功能强大 包含很多的前段解密算法 一 google下载地址 二次开发版本 google原版地址 二 常用方法Testing websockets var key BOTWAVEE
  • 开源地震处理软件Seismic Unix(SU)安装

    Seismic Unix SU 是著名的开源地震处理软件 安装包可从以下链接下载 cwp su all 44R18 tar 1 解压 首先在 home usrname 路径下建一个安装文件夹 usrname代表自己的用户名 自己命名 比如c
  • MySQL中 数据库 和 表 的基操

    一 数据库 的操作 1 显示 数据库 2 创建 数据库 3 使用 数据库 4 删除 数据库 二 表 的操作 1 查看表结构 2 创建 表 3 删除 表 4 查看数据库中的表 三 常用的数据类型 一 数据库 的操作 1 显示 数据库 show
  • html css js 完整案例,html+css+js实例

    实例简介 用html css js做的一个简单小网页 可以作为初学者的参考资料 实例截图 核心代码 travel travel css css images 0 PNG 100 jpg 101 jpg 102 jpg 103 jpg 104
  • java语言的运算符

    目录 小白的疑惑 大白话运算符概念 运算符概念 运算符分类 特别注意 代码定天下 二元运算符 关系运算符代码 逻辑运算符 位运算符 拓展运算符 三目运算符 小白的疑惑 很多没接触编程的小伙伴都会顿感疑惑 啥是运算符 大白话运算符概念 小学算