对java中其他操作符及一些注意事项的总结

(1)按位操作符

  按位操作符操作基本整数类型中的单个二进制位,有与(&),或(|),非(~)。按位操作符还可以和等号(=)联合使用,如~=,&=等。

(2)移位操作符

  移位操作符运算对象也是二进制的位,并且只能用来处理整数类型。分为右移(>>)和左移(<<)操作,注意这右移操作是有符号扩展,即如果是正数,则在最高位补0,反之在最高位补1。java同时还支持无符号右移操作(>>>),这种移位操作采用零扩展,即在最高位补0。移位操作符也可以和赋值号组合使用,同时如果对char,short等类型进行移位处理,操作后得到的还是int类型的值。

(3)三元操作符

  形如boolean-exp ? value0 : value1的操作式,如果boolean-exp的值为true,式子的值就是value0,反之是value1。

(4)字符串操作+/+=

  如果一个表达式以一个字符串开头,那么后续所有操作数都必须是字符串型。并且编译器会将用+=/+连接的其他类型自动转换为字符串类型,或者调用toString()方法。

(5)类型转换

  在java中可以对数值或者变量进行类型转换,在适当的时候这种转换会自动进行。而如果要进行一种窄化转换(将一种可以容纳一定量信息的数据类型转换成不能容纳那么多信息的类型),会面临丢失信息的危险。反之如果进行扩展转换,就不需要进行显式的类型转换,因为这时不会造成信息的丢失。

(6)截尾,舍入和提升

  在进行窄化转换时,截尾和舍入是必须考虑的问题。例如将一个浮点值转换成一个整型值,java会总是对这个数值进行截尾。如果想得到舍入的结果,需要使用java.lang.Math中的round()方法。提升是指,在运算过程中,得到结果的数据类型决定于计算式子中具有最宽数据类型的变量。

  

Chapter3_操作符_其他操作符的更多相关文章

  1. Chapter3_操作符_逻辑操作符

    逻辑操作符与(&&)或(||)非(^)能够对布尔类型的数据类型进行操作,并且生成布尔值,和关系操作符的产生的数据类型是一样的.需要注意的不多,有以下几点: (1)在需要使用string ...

  2. 【关于Java移位操作符&按位操作符】

    一.java按位运算符(操作符) 这段时间偶尔看一下源码,会发现有很多很基础的java知识在脑海中已经慢慢的淡成不常用记忆,于是打算捡起来一些. 按位运算符是来操作整数基本数据类型中的单个“比特”(b ...

  3. switch_case,&&,||,条件操作符和逗号操作符,循环语句

    一.switch-case switch-case语句主要用在多分支条件的环境中,在这种环境中使用if语句会存在烦琐且效率不高的弊端. switch(expression) { case const ...

  4. JavaScript操作符(一元操作符)

    JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...

  5. C语言中点操作符(.)和箭头操作符(->)

    C语言中点操作符(.)和箭头操作符(->) 点说语法不太准确,许多都称该之为点运算符/操作符,箭头运算符/操作符.但是OC中叫点语法,感觉理解起来还蛮舒服.毕竟基础的C操作符中是 相同点 两个都 ...

  6. linq操作符:元素操作符

    元素操作符仅返回一个元素. 一.Fitst操作符 First操作符将返回序列中的第一个元素.如果序列中不包含任何元素,则First<T>方法将引发异常.来看看First()方法的定义: 从 ...

  7. RxJava2实战---第七章 合并操作符和连接操作符

    RxJava2实战---第七章 合并操作符和连接操作符 RxJava的合并操作符: startWith():在数据序列的开头增加一项数据. merge:将多个Observable合并为一个. merg ...

  8. RxJava2实战---第五章 变换操作符和过滤操作符

    RxJava2实战---第五章 变换操作符和过滤操作符 RxJava的变换操作符主要包括以下几种: map():对序列的每一项都用一个函数来变换Observable发射的数据序列. flatMap() ...

  9. RxJava2实战---第六章 条件操作符和布尔操作符

    RxJava2实战---第六章 条件操作符和布尔操作符 RxJava的条件操作符主要包括以下几个: amb():给定多个Observable,只让第一个发射数据的Obsrvable发射全部数据. de ...

随机推荐

  1. php语法基础(相比C语言)

    前言 php的语法跟C语言很类似,相信有一定C的基础的人学起来会非常快. 本篇主要介绍php相比C语言有差异的地方 php代码标记 ASP标记:<% 代码 %> 短标记:<? 代码 ...

  2. 关于mariad&mysql部分

    不赘述安装部分 查看安装的mysql版本 连接数据库基本操作: 查看数据库有没有运行: 退出操作:两者的区别就在于有无分号 或者: 查看已经安装的数据库: 新增用户并且赋予权限操作 MariaDB [ ...

  3. [UE4]Throbber,横向动态图标

    一.Throbber跟Circular Throbber一样,都是用来提示玩家后台有数据正在加载中. 二.Throbber是横向显示动态图标.其他方面跟Circular Throbber一样.Circ ...

  4. JS stringObject.Match()

    JavaScript match() 方法 JavaScript String 对象 定义和用法 match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. 该方法类似 inde ...

  5. 实战ELK(6)使用logstash同步mysql数据到ElasticSearch

    一.准备 1.mysql 我这里准备了个数据库mysqlEs,表User 结构如下 添加几条记录 2.创建elasticsearch索引 curl -XPUT 'localhost:9200/user ...

  6. <记录> axios 模拟表单提交数据

    ajax 可以通过 FormData 对象模拟表单提交数据 第一种方式:自定义FormData信息 //创建formData对象 var formData = new FormData(); //添加 ...

  7. Spring用了哪些设计模式

    单例:只产生一个对象,共享对象的资源: 多例:产生多个对象,对象资源没有联系:(action) 在ssm框架中 service层.dao层.controller层都是默认使用单例模式,只会产生唯一 一 ...

  8. Kubelet bootstrap认证配置步骤

    kubelet 授权 kube-apiserver 的一些操作 exec run logs 等 RBAC 只需创建一次就可以 kubectl create clusterrolebinding kub ...

  9. Java中的反射总结

    反射是获取运行时类信息,即常量区中的Class信息. 要获取类信息,必然需要依据,不然系统怎么指定你要获取那个类信息, 类信息在java中就是Class类的一个对象,它是一个java类抽象,换句话说它 ...

  10. 解决no module named ipykernel_launcher

    解决no module named ipykernel_launcher 最近开hydrogen的时候,提示no module named ipykernel_launcher. 记得以前解决过这个问 ...