什么是是运算符

运算符:用于数据运算的符号,运算是一种处理。(注:浮点型数据(float、double)进行运算会出现精度丢失的情况)

运算符大致可分为以下六种:

一、算术运算符:+、-、*、/、%、++、--

这里只针对于在java中有着特殊含义的算术运算符进行删除,乘、除等与日常生活中概念一致的运算符不再特殊说明

1、+(加号)

在Java中+具有三种含义:

①数学意义上的加法运算;

②正数;

③字符串拼接;

2、%(求余,取模)

n%m//运算结果为n除以m除不尽的部分,结果取值范围为[0,m);

//几行关于被除数与除数取正/负数,其结果正/负的代码

System.out.println("6.4%2.0="+(6.4%2.0));//0.4

System.out.println("-6.4%2.0="+(-6.4%2.0));// -0.4

System.out.println("6.4%(-2.0)="+(6.4%(-2.0)));//0.4

System.out.println("-6.4%(-2.0)="+(-6.4%(-2.0)));//-0.4
// 根据以上代码,我们可以得知:余数是被除数的一部分,余数的正负取决于被除数

3、++(自增)、--(自减):

关于自增与自减,需牢记以下两段话

++在前,先自增,后运算;

++在后,先运算,后自增;

int a=1;
a++;//等价于a=a+1;完全等价于a=(a的类型)(a+1) byte b=1;
b++;//b++;完全等价于b=(b的类型)(b+1);

二、赋值运算符:=、+=、-=、/=、%=、*=...

int  a=1,b=2;
a+=b;//等价于a=a+b;完全等价于(a的类型)(a+b); byte c=1,d=2;
c+=d;//c+=d完全等价于:c=(c的类型)(c+d);

赋值运算符(=)成功赋值的四种情况:

1、直接赋值:左右类型一致

2、左边精度高于右边精度(自动类型转换情况1)

3、左边是byte/short/char右边是int常量值(自动类型转换情况2)

4、强制类型转换:低精度变量=(低精度变量的类型)高精度数据

三、比较运算符:>、>=、<、<=、==、!=

比较运算符的结果是boolean(true/false)类型的值

在java中有着特殊含义的比较运算符:

==(恒等号)判断两边的值是不是相等

!=(不等号)判断两边的值是不是不相等

四、逻辑运算符:&、&&、|、||、^、!

逻辑运算符操作boolean型数据,结果也是boolean类型的数据

&(单与)、&&(双与):两边只要有一个false结果就是false

|(单或)、||(双或):两边只要有一个true结果就是true

^(异或):两边不同则为true两边相同则为false

!(取反、非)

&&和&区别:

&&代表着逻辑运算符的双与,&代表着逻辑运算符的单与和位运算符的单与;

相同之处:作为逻辑运算符时:&&和&的结果一样(两边只要有一个false结果就是false)

不同之处:

1、&可作为位运算符(位运算符操作数字的二进制)

2、&&存在逻辑短路的现象,如A&&B当通过A就能知道结果时B就不再执行直接给出结果

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

位运算符操作的是整数的二进制,0为false,1为true;

(&)运算时相同位之间实质上就是两个boolean值的运算,其判别与逻辑运算中的与相同,只要有一位为0其结果即为0

(|)运算与与运算相似,与逻辑运算中的或判别相同

异或(^)运算时,对应位数的值相同则为0,不同则为1

取反(~)运算,0、1互换

<<:左移几位就乘以几次2;

>>:右移几位就除以几次2;

>>>:右移零填充

六、三元运算符:boolean表达式?值1:值2

如果boolean表达式结果是true则取值1,反之取值2;

运算后结果的数据类型

运算后结果的类型遵从以下两个原则:

1、byte、short、char不能直接参加运算,编译器会自动将它们提升为int;(在前面加上若干个字节的0)

2、运算后的结果数据类型取决于参与运算的精度最高的数据类型;

四、JavaSE语言基础之运算符的更多相关文章

  1. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

  2. GO学习-(6) Go语言基础之运算符

    Go语言基础之运算符 运算符用于在程序运行时执行数学或逻辑运算. 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - ...

  3. C#-语言基础+数据类型+运算符

    一.C#语言基础 新建项目:文件→新建→项目→Visual C#(默认.NET Framework 4.5)→控制台应用程序 1.项目结构 (1)项目后缀 .config ——配置文件(存放配置参数文 ...

  4. C语言基础学习运算符-赋值运算符

    简单赋值 在C语言里,运算符=并不表示相等,而是一个赋值运算符.这意味着,符号=的左边该是一个可修改的变量名,而右边是赋给该变量的值. 如下程序语句: i = i+; 在数学上,该等式无法成立.而作为 ...

  5. [Python学习笔记1]Python语言基础 数学运算符 字符串 列表

    这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...

  6. Java 语言基础之运算符

    使用运算符之后,肯定有返回结果. 六种运算符: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符 1. 算术运算符 加(+), 减(-), 乘(*), 除(/), 取余(%), 自 ...

  7. C语言基础学习运算符-基本算术运算符

    C语言中用于基本算术运算的运算符有:+,-,*,%,/.这些运算符的用法和你想像到的基本无异: 加法运算符 “+”使得它两侧的值被加到一起. 减法运算符“-”用它前面的数减去后面的数. 乘法由“*”表 ...

  8. C语言基础学习运算符-关系运算符

    比较大小 首先,我们得先了解一下布尔类型.C语言的C99标准支持布尔类型,关键字为_Bool,用于表示逻辑值true与false.C语言用值1表示true, 用值0表示false.因此布尔类型实际上是 ...

  9. C#语言基础之运算符

    运算符分类.优先级 运算符:一.数学运算符:+,-,*,/,++,-- 示例1: 示例2: 示例3: 1.递增运算符:++(1)前缀递增运算符    int x=4;    x++;//输出结果,x的 ...

随机推荐

  1. [DB] 大数据概述

    什么是大数据 电商推荐系统 大量订单如何存储(十年) 大量的订单如何计算(不关心算法) 天气预报 大量的天气数据如何存储 大量天气数据如何计算 核心问题 数据的存储:分布式文件系统(HDFS) 数据的 ...

  2. 1.7 Systemd初始化进程

    1.7 Systemd初始化进程 Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linu ...

  3. Linux 目录管理

    tree命令的基本使用 tree 查看当前目录的树状结构 -a 查看所有包含隐藏文件 -L 1 查看目录层级 tree /root 指定目录 根目录下的主要文件 /bin 普通用户可以执行的二进制文件 ...

  4. 大数据 什么是 ETL

    ETL 概念 ETL 这个术语来源于数据仓库,ETL 指的是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程.ETL 的目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提 ...

  5. Linux进阶之Linux中的标准输入输出

    Linux中的标准输入输出 标准输入0    从键盘获得输入 /proc/self/fd/0 标准输出1    输出到屏幕(即控制台) /proc/self/fd/1 错误输出2    输出到屏幕(即 ...

  6. 03-用三种方法设置CentOS7使用代理服务器上网

    一.永久设置 编辑配置文件 vi /etc/profile 在文件后添加以下内容: export http_proxy='http://代理服务器IP:端口号' export https_proxy= ...

  7. Redis学习笔记七:主从集群

    单机,单节点,单实例的Redis会有什么问题呢? 容易导致单点故障,那么如何解决呢? 可以通过主备方式 同时可以实现读写分离 这里的每个节点是全量的,镜像的. 单节点的容量有限而且单点的压力比较大,如 ...

  8. iapp后台一本通php源码+iapp源码

    给大家分享一个后台源码,内有后台php源码,还有iapp对接源码,一本通 iapp+ PHP源码 经过一个小时的研究看看,测试了一下, 1.注册登录以修复正常,签到正常 2.所有工具正常 3.接口,i ...

  9. Linux应用程序设计:用一种讨巧方式,来获取线程栈的使用信息

    面对的问题 对于线程的栈空间,相信各位小伙伴都不陌生.它有下面的这几项特性: > 1. 由操作系统分配固定的空间; > > 2. 使用一个栈寄存器来保存实时位置; > > ...

  10. 写Bug时,需要注意的几点 02

    重构2-重新组织函数 重构的基本技巧--小步前进,频繁测试. 模式是你希望到达的目标,重构则是到达之路. 在单进程软件中,你永远不必操心多么频繁地调用某个函数,因为函数的调用成本很低.但在分布式软件中 ...