自动生成文档注释
这种注视以 /** 开始,以 */ 结束。
double被称作双精度浮点数的原因
| 类别 | 存储要求 | 取值范围 |
|---|---|---|
| float | 4bytes | 大约±3.40283247E+38F(有效数字6~7位) |
| double | 8bytes | 大约±1.79769313486231570E+308(有效数字15位) |
double的有效数字大约是float的两倍,因此被称作双精度浮点数。
2.0-1.1=0.899999?
浮点数不适用禁止出现舍入误差的金融计算,因为浮点数值采用二进制系统表示,而二进制系统中无法精确的表示分数1/10,就好比十进制无法精确的表示1/3一样。
转义字符\u
转义序列符通常都可以出现在字符常量或者字符串的引号内,比如’\u2122’或者"Hello\n",特别的有转义字符序列\u还可以出现在引号之外,例如
public static void main(String\u005B\u005D args)
这种形式是完全符合语法规则的,\u005B和\u005D分别为[和]的编码。
Java中整型值和布尔值之间不能进行相互转换
关键字final修饰常量
final修饰的常量只能被赋值一次,且被赋值之后无法被修改,通常用全大写的常量来表示。
Math类中的round()方法
对浮点数进行运算,得到一个最接近浮点数的整数,但是返回的是long类型,仍需强制类型转换
例如
double x=9.99;
int n=(int)Math.round(x);//n的值为10
注意 如果试图将一种类型转换成另一种类型,但是超过了类型的范围,则会得到一个意想不到的值,比如
(byte)300的值为44
检测字符串相等,且不用区分大小的方法
equalsIgnoreCase
"Hello".equalsIgnoreCase("hello");
注意 ==操作去判断字符串是否相等可能造成难以想象的错误情况。如果虚拟机始终将相同的字符串共享那当然没问题,可以使用==,但是事实上只有字符串常量是共享的,而由+或者substring等操作得到的结果并不是共享的,因此可能出现这样的情况
String t1="Hello";
boolean bn=(t1.substring(0.3)=="Hel");//bn为flase
StringBuffer和StringBuilder的区别
前者效率比后者略低,但是支持多线程的方式去执行添加或者删除字符的操作,如果所有字符操作都是在单线程在编写的,那么应该采用后者去代替它,这两个类的API都是相同的。
格式化输出
这里只强调这种情况:对于有限个给出的参数的重复调用的使用方式
1.%index$s 格式
System.out.print("%1$s %2$tB %2$te %2$tY","Due Date:",new Date());
2.<标志再次调用
System.out.print("%s %tB %<te %<tY","Due Date:",new Date());
带标签的break和continue
label(标签后面)跟着冒号,break跳出标签所在最外层的语句块,continue跳到标签最近的语句块首部。
本文详细介绍了double类型相对于float的存储优势,有效数字的提升以及为何被称为双精度浮点数。还讨论了浮点数舍入误差在金融计算中的问题,并列举了一些Java编程中的实例,如转义字符u的用法和类型转换注意事项。

被折叠的 条评论
为什么被折叠?



