java解惑笔记
今天抽空下了《java解惑》这本书看了一下,确实不错,提出了很多我们平时不会注意的小问题。想想如果不注意说不定会因为一个BUG郁闷个一两天也找不到。以下是总结的笔记,备忘~~
1.判断奇数
i % 2 == 1 在i 为负数时结果为-1,所以使用i % 2 != 0来判断;当有性能要求时使用 (i & 1) != 0。
*在使用%时一定要考虑到操作数的符号的影响!
2.不是所有小数都可以用二进制浮点数来表示(如1.1等)
2.00-1.10 = 0.89999999999
*方法一:使用整型来计算 (200-110)/100 = 0.9
*方法二:new BigDecimal("2.00").subtract(new BigDecimal("1.10")); //必须使用new Decimal(String)这个构造
3.在操作很大的数字时要防止溢出
long a = 24*60*60*1000*1000; //因为是int之间的运算,结果先保存在一个int中再赋给a,导致溢出
long b=24*60*60*1000;
a/b = 5;
*方法:long a = 24L*60*60*1000*1000;
4.在使用条件操作符(?a:b)时,尽量保持a与b的类型一致
5.复合赋值表达式自动将运算的结果转型为左侧变量的类型
相关文档:
在网上看了好多人,对jdk的环境变量配法不祥,在此小结一下
前提条件:电脑上安装了jdk
步骤:
1)我的电脑/系统属性/高级/环境变量/用户变量/新建
a)变量名:JAVA_HOME
变量值:E:\Program Files\Java\jdk1.5.0_04(jdk安装路径)
b)变量名:PATH
变量值:%JA ......
考虑用静态工厂方法代替构造函数
类可以为它的客户提供一些静态工厂方法,来替代构造函数,或者同时也提供一些构造函数。
静态工厂方法的一个好处是,与构造函数相比,静态工厂方法具有名字,它可以使得代码更容易阅读。如果一个类看起来需要多个构造函数,并且它们的原型特征相同,那么你应该考虑用静态工厂方法来 ......
ubuntu下用java直接用FileWriter写入到一个txt文件中之后,由于默认编码的缘故,不能使用gedit打开该txt。
在将String写入到txt之前,先转换一下编码,就可以解决问题。
实例代码如下:
import java.io.FileWriter;
import java.io.IOException;
public class testcode {
public static void main(String[] ......