网站大量收购独家精品文档,联系QQ:2885784924

第2讲Java语言的类型系统.pptVIP

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2讲Java语言的类型系统

Lecture Notes on Object-Oriented Programming Design /~lwj/object-oriented/ Dr. LI Wenjun lnslwj@ /~lwj/ Department of Computer Science SUN YAT-SEN UNIVERSITY, GZ 510275;第三讲 Java语言的类型系统;;类型的作用;强类型 vs 弱类型;强类型带来的好处;数据:在程序中表达实体的属性。 常量+变量=数据。 常量:在程序执行过程中取值不能改变的数据。 变量:在程序执行过程中取值可改变的数据。;如何确定数据的类型;变量的4个要素;Java语言提供了8种基本数据类型 又称原始(primitive)数据类型。 Integral char、byte、short、int、long Numeric Floating float、double Logical boolean Java语言的类型系统(Type System) 基本类型 数组(array)类型 引用类型 class 用户自定义类型(UDT) interface;布尔类型;表示方法 只需占用1位。 Java语言并未规定编译器的实现方式。 取值范围 {true, false} 可用操作 可用:赋值运算、关系运算(仅==和!=)、逻辑运算、位运算(位非除外)、条件运算、... 不可用:算术运算、位非运算。;字符类型;;整数类型;;浮点类型;表示方法 1985年通过的IEEE 754标准:阶码采用增码、尾数采用原码;数符位于最左位;尾数规格化,从而可多用1位精度。 32位(单精度)浮点数:阶码8位、尾数24位。 64位(双精度)浮点数:阶码11位、尾数53位。 取值范围 类型 长度 取值范围 float 4字节(32位) 约-3.4?1038 ? +3.4?1038 double 8字节(64位) 约-1.8?10308 ? +1.8?10308 可用操作 可用:赋值运算、算术运算、关系运算、位运算、条件运算、... 不可用:逻辑运算。;与数学意义下实数的区别 (1) 程序中的浮点数是数学意义下实数的一个子集; (2) 程序中的浮点数是离散的而数学意义下的实数是连续的。 精度与溢出 JRE不执行运行期间的溢出检查。 没有C++语言的long double类型(10字节80位表示格式)。 JDK预定义的类:java.math.BigDecimal。;字符串类型;变量的初始化;基本数据类型的包装类(wrapper);所谓常量只是指在程序运行过程其值保持不变, 但并不意味着在应用环境中或整个软件生存期会一成不变!;编译器可保证符号常量只能初始化,而不能对其赋值。 适当使用符号常量可提高程序的可扩充性。;常量只能进行一次赋值 不同于C++语言:既可使用初始化表达式,也可使用赋值。 通常在声明的同时进行初始化: final double PI = 3.14; // 圆周率 final int MAX = 100; // 学生人数的上限 禁止对已有初始值的符号常量再次进行赋值!;3.4 运算符与表达式;表达式的作用;赋值运算;复合与简化写法 除方便程序员外,还可生成效率更高的代码! x += expr、x -= expr、x *= expr、x /= expr、x %= expr x = expr、x = expr、x = expr x = expr、x |= expr、x ^= expr x++、++x、x--、--x x++与++x 副作用相同,但求值结果不同。;算术运算;重载(overloading)运算符 运行符“/”的含义由其参数的类型确定。 Java语言不允许程序员重载现有的运算符 C++语言则允许程序员重载现有的运算符。;关系运算;;逻辑运算;短路(short-circuit)求值 只有两个逻辑运算会短路求值:“”和“||”。 无论单纯逻辑表达式求值还是控制分支或循环,均以短路形式求值。 为什么要短路求值? 优化了时间效率仅仅是一方面原因。 对语言使用者(程序员编程)或实现者(设计编译器)的影响! if ((count != 0) (total / count 10)) ... if ((obj != null) obj.found()) ...;位运算;位运算的应用 较少应用场合才需要。 通常是面向设备级的底层应用,如机顶盒或其他嵌入式应用。 位运算的用法 每一个bit对应一种二值的开关状态。 使用易记忆的枚举符号常量帮助程序员记忆每一位的含义。;移位运算;右操作数决定移位

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档