《Java核心技术》学习笔记——第3章 Java的基本程序设计结构

版权声明:本文为博主ExcelMann的原创文章,未经博主允许不得转载。

第3章 Java的基本程序设计结构

作者:ExcelMann,转载需注明。

第2章是关于Java程序设计环境的介绍(包括JDK、JRE、使用IDE、命令行工具以及JShell),在此省略。

第3章内容目录:

  • 一个简单的Java应用程序
  • 注释
  • 数据类型
  • 变量与常量
  • 运算符
  • 字符串
  • 输入输出
  • 控制流
  • 大数
  • 数组

该篇文章主要记录书中提到的一些本人觉得值得注意的点(偏主观,但希望对你有用~)。

一、 一个简单的Java应用程序

注意点:

  1. Java区分大小写;
  2. Java应用程序中的全部内容都必须放置于类中;
  3. 类名采用骆驼命名法;
  4. 源代码的文件名必须与公共类的名字相同;
  5. Java虚拟机总是从指定类中的main方法的代码开始执行;
  6. main方法必须声明为public;

二、 注释

注意点:

  1. 注释不会出现在class文件中;
  2. /**…*/这种注释可以自动生成文档;
  3. 注释不能嵌套;

三、 数据类型

注意点:

  1. Java有一个能够表示任意精度的算术包,通常称为“大数”(big number),而且它是一个Java对象,而不是Java类型;
  2. 从Java7开始,为数字字面量加下划线,比如1_000_000表示100万,在Java编译时会去除这些下划线;
  3. Java没有任何无符号(unsigned)形式的int、long、short或者byte类型;
  4. 可以使用十六进制表示浮点数值,其中使用p表示指数,而不是e。注意,尾数采用十六进制,指数采用十进制,而且指数的基数为2而不是10。比如,0.125 = 2^-3可以表示为0x1.0p-3;
  5. 所有的浮点数值计算都遵循IEEE 754规范。但是,有三种特殊的浮点数值:正无穷大、负无穷大、NaN(不是一个数字),分别采用Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY和Double.NaN表示(以及相应的float类型);
  6. 浮点数会出现舍入误差的情况,比如2.0-1.1会等于0.8999999…。主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10(类似十进制无法表示1/3)。这种情况,应该采用BigDecimal类。
  7. char的值可以表示为十六进制,其范围从\u0000到\uFFFF。对于转义序列\u还可以出现在加引号的字符常量或者字符串之外(而其他所有转义序列不可以)。
    例如:public static void main(String \u005B\u005D args),其中\u005B\u005D表示[];
  8. Unicode转义序列会在解析代码之前得到处理
    例如:"\u0022+\u0022"并不是等于一个由引号包围加号构成的字符串。实际上,\u0022在解析之前就转换为",所以会得到""+""(即为空串);
  9. 在Java中,char类型描述了UTF-16编码中的一个代码单元;
  10. 强烈建议不要在程序中使用char类型,除非确实需要处理UFT-16代码单元。最好将字符串作为抽象数据类型处理;
  11. 整形值和布尔值之间不能进行相互转换(有的语言中,值0等价于布尔值false);

补充知识(码点、代码单元):
1)码点(code point)是指与一个编码表中的某个字符对应的代码值。在Unicode标准中,码点采用十六进制书写,加上前缀U+,如U+0041是字母A的码点。
2)Unicode的码点可以分为17个代码平面。第一个代码平面称为基本多语言平面,包括码点从U+0000到U+FFFF的经典Unicode代码;其余的16个平面的码点为从U+10000到U+10FFFF,包括辅助字符
3)代码单元:在基本多语言平面中,每个字符用16位表示,通常称为代码单元
4)而辅助字符编码为一对连续的代码单元。采用这种编码对表示的各个值落入基本多语言平面中未用的2048个值范围内,通常称为替代区域(U+DB00~U+DBFF用于第一个代码单元,U+DC00+U+DFFFF用于第二个代码单元)。

四、 变量与常量

注意点:

  1. 尽管$符号是一个合法的Java字符,但是不要在代码中使用这个字符。它只用在Java编译器或者其他工具生成的名字中;
  2. 不提倡一行中声明多个变量,逐一声明每一个变量可以提高程序的可读性;
  3. 变量的声明尽可能地靠近变量第一次使用的地方;
  4. 从Java10开始,对于局部变量,可以只使用关键字var而无须指定类型;
    如:var vacationDays = 12; //从初始值就能推断出它的类型
  5. 习惯上,常量名使用全大写
  6. 如果希望某个常量可以在一个类的多个方法中使用,通常将这些常量称为类常量,用static fianl设置;

五、 运算符

注意点:

  1. 整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或者NaN结果;
  2. 浮点数算数运算的可移植性:虚拟机设计者允许对中间计算结果采用扩展的精度,但是,对于使用strictfp关键字标记的方法必须使用严格的浮点计算来生成可再生的结果;
  3. 如果更加注重Math类计算的可再现性,则用StrictMath类
  4. Math类提供了一些方法使得整数运算有更好的安全性
    比如:10亿乘以3的计算结果是错误的结果(因为最大的int值只是刚刚超过20亿,而且程序不会提示这种错误)。如果用Math.multiplyExact(一亿,3)就会生成一个异常ÿ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值