Chapter3_操作符_其他操作符
对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_操作符_其他操作符的更多相关文章
- Chapter3_操作符_逻辑操作符
逻辑操作符与(&&)或(||)非(^)能够对布尔类型的数据类型进行操作,并且生成布尔值,和关系操作符的产生的数据类型是一样的.需要注意的不多,有以下几点: (1)在需要使用string ...
- 【关于Java移位操作符&按位操作符】
一.java按位运算符(操作符) 这段时间偶尔看一下源码,会发现有很多很基础的java知识在脑海中已经慢慢的淡成不常用记忆,于是打算捡起来一些. 按位运算符是来操作整数基本数据类型中的单个“比特”(b ...
- switch_case,&&,||,条件操作符和逗号操作符,循环语句
一.switch-case switch-case语句主要用在多分支条件的环境中,在这种环境中使用if语句会存在烦琐且效率不高的弊端. switch(expression) { case const ...
- JavaScript操作符(一元操作符)
JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...
- C语言中点操作符(.)和箭头操作符(->)
C语言中点操作符(.)和箭头操作符(->) 点说语法不太准确,许多都称该之为点运算符/操作符,箭头运算符/操作符.但是OC中叫点语法,感觉理解起来还蛮舒服.毕竟基础的C操作符中是 相同点 两个都 ...
- linq操作符:元素操作符
元素操作符仅返回一个元素. 一.Fitst操作符 First操作符将返回序列中的第一个元素.如果序列中不包含任何元素,则First<T>方法将引发异常.来看看First()方法的定义: 从 ...
- RxJava2实战---第七章 合并操作符和连接操作符
RxJava2实战---第七章 合并操作符和连接操作符 RxJava的合并操作符: startWith():在数据序列的开头增加一项数据. merge:将多个Observable合并为一个. merg ...
- RxJava2实战---第五章 变换操作符和过滤操作符
RxJava2实战---第五章 变换操作符和过滤操作符 RxJava的变换操作符主要包括以下几种: map():对序列的每一项都用一个函数来变换Observable发射的数据序列. flatMap() ...
- RxJava2实战---第六章 条件操作符和布尔操作符
RxJava2实战---第六章 条件操作符和布尔操作符 RxJava的条件操作符主要包括以下几个: amb():给定多个Observable,只让第一个发射数据的Obsrvable发射全部数据. de ...
随机推荐
- shell脚本大小写转换
几个方法 1.tr命令 2.sed替换 3.awk的tolower() toupper() 4.perl语言 详见 http://blog.51cto.com/wangxiaoyu/197623 L ...
- python3学习笔记四(列表1)
参考http://www.runoob.com/python3/python3-list.html 序列 python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和x ...
- WordPress版微信小程序2.1.8版发布
近来的工作比较多,同时也在思考这个项目未来的发展方向,尽管不断有新的wordpress站长,利用我的开源程序搭建了微信小程序,但个人对这个项目的热情日渐减少,促使我不断完善和维护这个开源项目的动力也再 ...
- hive的使用
1,前言 书接上回,接着对上一个hive安装后环境下的hive使用.
- tomcat advanced (RUNNING)
1. 1. tomcat
- servlet cdi注入
@WebServlet("/cdiservlet")//url映射,即@WebServlet告诉容器,如果请求的URL是"/cdiservlet",则由NewS ...
- python大法好——网络编程
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...
- canal 配置 详细说明
git hub https://github.com/alibaba/canal canal.properties介绍:https://agapple.iteye.com/blog/1831873
- import_module 导入变量的包
遇到你想导入的包是变量的时候,可以用这个实现 from importlib import import_module settings_path = self.pathm2 = import_modu ...
- 移动端UL列表无法平滑向下滚动问题
问题说明: 移动端向上滑动后,,列表无法自动滚动到底部~~而是类似屏幕"沾手"的效果(手离开屏幕直接停止在当前~列表不会自动向下滚动一段) 问题原因: 页面中存在如下代码: 当前页 ...