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.复合赋值表达式自动将运算的结果转型为左侧变量的类型
相关文档:
其技巧就是:定义一个简单接口,并在该接口中声明我们要调用的方法,一般可以应用在键盘鼠标事件跟踪。
下面举一个例子:
假定我们希望在某个事件发生时得到通知。我们可以定义一个接口:
/*
* 在某个事件发生时得到通知.
*/
public interface InterestingEvent {
public void interestingEvent() ......
创建一个类的实例时,
1.会为它以及它的所有父类的实例变量分配内存空间,如果分配空间成功,则所有实例变量都会初始化为默认值0、false、null
2.会递归调用父构造函数,但是暂不执行构造函数的语句;
3.对该父构造函数对应的类的实例变量赋值
4.执行父构造函数的其他语句
5.对于子类,执行2-4步骤 ......
Java 接口和抽象类区别 收藏
来源 http://blog.csdn.net/sunboard/archive/2009/01/18/3831823.aspx
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业 ......
BufferedReader:
Read text from a character-input
stream, buffering characters so as to provide for the
efficient reading of characters, arrays, and ......