先来看下面的 代码:
public class Test { public static void main(String[] args) { short i ; i = i + 1; //编译错误 i += 1; //正确 byte j = 1; //正确 byte k = 2; byte l = j + k; //错误 } }
1、关于 i = i + 1: i + 1是int型,赋值给short 型变量需要做显示转换。
2、+= 、-= 属于复合赋值运算符(Compound Assignment Operator),他们是一种赋值运算符,虽然他们有算数的功能,但应该属于赋值运算符的范畴,而不属于算术运算符一类。
Java规定:复合赋值运算符中的转换都要编译器负责。
这就是为什么使用 += 、-=不需要显示转换的原因。
3、算术运算符(Arithmetic Operator)
Java中,所有整数的算术运算符都会产生int型的结果(除非有long参与其中)。因此
byte l = j + k;
虽然 j 、 k 都是byte型的,但根据上面“所有整数的算术运算都会产生int型的结果“的规则, j + k 结果是int型。这样将int赋值给byte 就需要强制转换。
david.wang 2011-03-09
发表评论
-
JVM内存模型及垃圾收集策略解析
2011-09-25 01:56 796一 JVM内存模型 1.1 Java栈 Java栈 ... -
JVM基础概念总结:数据类型、堆与栈
2011-09-25 01:14 794数据类型 Java虚拟机中,数据类型可以分为两类:基本类型 ... -
JVM分代垃圾回收策略的基础概念
2011-09-25 01:07 685为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不 ... -
理解静态变量惰性初始化的双检锁模式
2011-05-10 22:28 1183对于双检锁,其实有多种不同的用法,有很多种用法是无论 ... -
DataSource 使用方法
2011-03-03 14:26 2968转自:http://marshal.easymorse.com ... -
Java util之常用数据类型特性盘点(Map 四种同步方式的性能比较)
2011-02-24 20:09 1848出处:http://www.iteye.com/topic/1 ... -
Java util之常用数据类型特性盘点 (HasMap深度分析)
2011-02-24 17:57 1230出处:http://www.iteye.com/topic/7 ... -
Java util之常用数据类型特性盘点 (三)
2011-02-24 16:22 1051Java util之常用数据类型特性盘点 (三) 出处 ... -
Java util之常用数据类型特性盘点 (二)
2011-02-24 16:07 1025Java util之常用数据类型特性盘点 (二) 出处 ... -
Java util之常用数据类型特性盘点(一)
2011-02-24 15:47 966Java util之常用数据类型特性盘点 出处:http:// ... -
Java 中实例化对象方法
2011-02-24 13:57 10241、直接 new 调用默认构造器实例化对象,如: ... -
java 冒泡排序、选择排序、插入排序、快速排序二分法查找代码
2011-02-23 20:42 4037java 排序的代码 import java.util ... -
java collection集合框架
2011-02-23 17:19 1348Java集合框架使用总 ... -
java.sql.Date与java.util.Date 异同
2011-02-23 17:13 1303java.util.Date 包含日期和时间。 ... -
类的初始化顺序问题
2011-02-23 16:10 712一道面试题目,看代码: public class ... -
java clone方法使用详解
2011-02-23 15:39 882java clone方法使用 出处 ... -
Java数据类型
2011-02-23 15:04 684Java数据类型 JAVA语言中定义了8种基本的数据类型, ... -
java float double为什么精度会丢失
2011-02-23 14:39 5712由于对float或double 的使用不当,可能会出现精度丢失 ... -
java基础知识回顾(1)float/double 与封装类型Float/Double
2011-02-23 14:31 3497float/double 与封装类型Float/Double ... -
HashSet \LinkedHashSet\TreeSet 元素顺序
2011-02-23 13:36 1246import java.util.Arrays; im ...
相关推荐
实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示数据和...
实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六 位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四 则运算,为了得到教好的显示效果,采用LCD显示数据和...
实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六 位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四 则运算,为了得到教好的显示效果,采用LCD显示数据和...
2.7.2 赋值运算中的类型转换 14 习题 15 第3章 顺序结构程序 16 3.1 复合语句和空语句 16 3.1.1 复合语句 16 3.1.2 空语句 16 3.2 程序举例 16 习题 17 第4章 选择结构 19 4.1 关系运算和逻辑运算 19 4.1.1...
本书的特色有二,旨在提高读者的问题求解能力,使读者能够理解算法设计的过程和思想:一是强调算法设计的创造性过程,注重算法设计背后的创造性思想,而不拘泥于某个具体算法的详细讨论;二是将算法设计类比于定理...
2.3.6 ISO/ANSI C++中的基本类型 49 2.3.7 字面值 50 2.3.8 定义数据类型的同义词 50 2.3.9 具有特定值集的变量 51 2.3.10 指定枚举常量的类型 52 2.4 基本的输入/输出操作 53 2.4.1 从键盘输入 53 ...
·分享c++程序的错误查找技术,并介绍通用的调试原则讨论每一个windows应用程序的结构和基本元素 ·举例说明如何使用mfc开发本地windows应用程序 ·指导读者用c++和c++/cli设计和创建大量的windows应用程序 ...
6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 ...
作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于实践的C++类,并且在每章结尾处提供练习。《3D数学基础:图形与游戏开发》介绍了基础概念,如向量、坐标空间...
1) d1= 2b2–2a2b+a2 在生成椭圆下部区域时,以y轴为步进方向,如图所示: y每步进减一个单位,就需要在判断x保持不变还是步进加一个单位,对于下部区域, 计算出d1和d2分别是: d1=b2(xi+12-x2) d2=b2(x2-xi2) 以...
用汇编写复杂的运算程序固然会比C更有效率,但同样的事在C中用一个表达式就全部搞定了,从这里开始学汇编,给人的感觉就像从复杂的公式开始学算术,要知道,加法还没有学会呢!而对于高级语言封装起来的系统功能,用...
如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用...
从其安排来看,基本内容是主干,而高级内容(放在63个框内,且有161个配合示例,编号前均加B)则分布在书中与相关基本内容对应的位置。如果把基本内容看作一个主程序,那么这些高级内容部分就像子程序,随时可在需要...