5. 直接常量

-一般来说,假设程序里使用了“直接常量”,编译器能够准确的知道要生成什么样的类型。但有时候却是模棱两可的。

这时候须要我们对编译器进行适当的“指导”

-直接常量后面的后缀字符标示了它的类型。

-指数记数法:e代表“10的幂次”

-注意假设编译器可以正确的识别类型,就不必在数值后附加字符。比如语句:
float f4 = 200;

不存在含糊不清的地方,所以200后面不须要加L,可是对于:float
f4 = 1e-43f;

编译器一般会将指数作为双精度数(double)来处理,所以假如我们没这个f就会出错

6.按位操作符

-按位操作符用来操作基本数据类型中的单个“比特”(bit)。即二进制位

-“与”操作符(&)、“或”操作符(|)、按位“非”(~)、“异或”操作符(^)

7.移位操作符

-移位操作符操作的运算对象也是二进制。

移位操作符仅仅可用来处理“整数”类型

-左移位操作符(<<)按位左移,在低位补0。“有符号”右移位操作符(>>)按位右移,若符号位为正,则在高位插入0,;若符号位为负。则在高位插入1,。Java中添加了一个“无符号”右移操作符(>>>),不管正负。都在高位插入0。

这一操作符是C和C++没有的。但在进行“无符号”右移结合赋值操作的时候。可能还会有这种问题:假设对byte或short值进行这种右移操作,可能得不到正确的结果。它们会先被转换为int类型。再进行右移操作。然后“截断”,赋值给原来的类型,在这种情况下可能还会有-1的结果。

-假设对char、byte、short类型进行移位操作,那么会先被统一转换为int类型,并且结果也是int类型。

并且仅仅有数值右端的低5位才实用。这样防止我们移位超过int型值所具有的位数。

long类型也是一样的数值右端的低6位才实用。

8.
三元操作符if-else

-三元操作符也称为条件操作符,由于它有三个操作数。

-表达式形式:boolean-exp
?

value0 : value1。假设boolean-exp是true的话,就计算value0。否则就计算value1

9.
字符串操作符+和+=

-这个操作符在java中有一项特殊用途:连接不同的字符串。

-与C++相比,虽然操作符重载在Java中更easy实现,但仍过于复杂,所以Java程序猿不能像C++和C#程序猿那样实现自己的重载操作符。

-字符串操作符有一些非常有趣的行为。假设表达式以一个字符串起头,那么兴许全部的操作数都必须是字符串型。

10.
使用操作符时常犯的错误

-使用操作符时一个常犯的错误是,即使对表达式假设计算有点不确定,也不愿意使用括号。

-在C和C++中,一个常见的错误例如以下:

while (x = y) {
//.....
}

程序猿非常明显想要測试是否“相等”(==),而不是进行赋值操作。在C和C++中,假设y是一个非零值,那么这样的赋值的结果是true,而这样会得到一个无限循环。

在Java中。这个表达式的结果不是布尔值,而编译器期望的是一个布尔值。因为Java不会自己主动的将int数值转换为布尔值,所以这里会抛出一个编译时的错误。所以这个错误在Java中永远不会出现。除非x和y都为布尔值

-Java中有一个与C和C++中类似的问题。即使用按位"与"和按位“或”取代逻辑“与”和逻辑“或”。Java编译器可防止这个发生错误,由于它不同意我们随便的把一种类型当作还有一种类型来用。

11.
类型转换操作符

-Java会将一种数据类型自己主动转换成还有一种。类型转换运算同意我们显式的进行这样的类型转换。或者在不能自己主动进行转换的时候强制进行类型转换。

-在C和C++,类型转换可能是件头疼的事情,可是在Java中。类型转换则是一种比較安全的操作。

然而假设要运行一种名为“窄化转换”的操作(也就是说将能容纳信息量大的数据类型转换成无法容纳那么多信息的类型),就可能会有数据丢失的危急。此时,编译器会强制我们进行类型转换。

-Java同意我们把不论什么基本数据类型转换成别的基本数据类型,可是布尔型除外。“类”数据类型不同意进行类型转换。

12.
提升、Java中没有sizeof

-通常,表达式中出现的最大的数据类型决定了表达式终于结果的数据类型。

-在C和C++中,sizeof()操作符告诉你为数据项分配的字节数。

在C和C++中,须要使用sizeof()的最大原因是为了“移植”。而在Java中,不须要sizeof()操作符来满足这方面的须要,由于全部的数据类型在全部的机器中的大小都是同样的,我们不必考虑移植问题——它已经被设计在语言中了。

JAVA编程思想(2) - 操作符(二)的更多相关文章

  1. Java编程思想学习(十二) 数组和容器

    一.数组 1).数组的多种初始化方式 下面总结了初始化数组的多种方式,以及如何对指向数组的引用赋值,使其指向另一个数组对象.值得注意的是:对象数组和普通数组的各种操作基本上都是一样的:要说有什么不同的 ...

  2. JAVA编程思想(2) - 操作符(一)

    "在最底层,Java中的数据是通过操作符来操作的." 1. 使用Java操作符 -操作符接受一个或者多个參数,并生成一个新值,參数的形式与普通的方法调用不用,但效果是同样的.加号和 ...

  3. Java编程思想之十二 通过异常处理错误

    Java的基本概念是结构不佳的代码不能运行余下的问题必须在运行期间解决,这就需要错误源能通过某种方式,把适当的信息传递给某个接收者--该接收者将知道如何正确处理这里问题. 12.1 概念 使用异常所带 ...

  4. Java编程思想之三 操作符

    在底层,Java中的数据是通过使用操作符来操作的. 3.2 使用Java操作符 操作符接收一个或多个参数,并生成一个新值. 操作符作用于操作数,生成一个新值.有些操作符可能会改变操作数自身的值,这被称 ...

  5. 《java编程思想》操作符

    1. 自动递增和递减 递增和递减运算是两种相当不错的快捷运算,递减操作符是 "--",意为减少一个单位,递增操作符是 "++",意为增加一个单位.这两个操作符各 ...

  6. 《Java编程思想》读书笔记(二)

    三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...

  7. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

  8. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  9. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

随机推荐

  1. java_tcp_简单示例

    package netProgram; import java.io.DataOutputStream; import java.io.IOException; import java.net.Ser ...

  2. VS2017 ATL创建ActiveX编程要点

    VS2017 ATL创建ActiveX控件编程要点: 一.创建vs项目需要安装器visual studio installer中: 安装 visual studio扩展开发中的 用于x86和x64的V ...

  3. ORACLE中DBMS_SQL的用法

    ORACLE中DBMS_SQL的用法   对于一般的select操作,如果使用动态的sql语句则需要进行以下几个步骤: open   cursor---> parse---> define ...

  4. iOS中声音采集与播放的实现(使用AudioQueue)

    都说iOS最恶心的部分是流媒体,其中恶心的恶心之处更在即时语音. 所以我们先不谈即时语音,研究一下,iOS中声音采集与播放的实现. 要在iOS设备上实现录音和播放功能,苹果提供了简单的做法,那就是利用 ...

  5. 使用 PHP + shell 生成 一键设置权限的脚本。

    linux 系统 支持PHP脚本一键设置环境.shell脚本一键设置环境.那么 我今天 使用 PHP  + shell 生成 一键设置权限的脚本. 举例子:linux服务器 一键配置discuz网站环 ...

  6. ecshop 修改支持php7 方案

    修改方法 http://jsb.php-php.com/2016/05/472/ 修改数据库配置 data/config.php

  7. JS判断滚动条是否停止滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. python之GUI图形用户界面 2014-4-7

    #图形用户界面1.下载和安装wxPython2.创建并显示一个框架import wx #导入wxPythonapp=wx.App()win=wx.Frame(None)win.Show() #调用窗口 ...

  9. 使用mysql-proxy 快速实现mysql 集群 读写分离

    目前较为常见的mysql读写分离分为两种: 1. 基于程序代码内部实现:在代码中对select操作分发到从库:其它操作由主库执行:这类方法也是目前生产环境应用最广泛,知名的如DISCUZ X2.优点是 ...

  10. mysql启服务的时候报1067错误解决办法

    网上百度了半天没有有效的办法,推荐一个万能的办法: 1.看日志: mysql安装目录下  data文件 ->  后缀为.err 的文件就是日志文件  打开它   :  可以看到错误信息 2.看错 ...