1.
java.util.Locale类对象表示了特定的地理,政治和文化地区。 以下是有关区域设置的要点:
需要Locale来执行其任务的操作称为语言环境敏感,它使用Locale,形成信息的用户。
Locale是一种机制,用于识别对象,而不是一个容器对象本身.获取Locale使用getdefaultLocale
2.
父类的私有成员变量,无法通过super.成员变量名获得,不可见
3.
dateFormat =DateFormat.getInstance();
4.序列化
相关注意事项
a)序列化时,只对对象的状态进行保存,而不管对象的方法;
b)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口;
c)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;
d)并非所有的对象都可以序列化,,至于为什么不可以,有很多原因了,比如:
1.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,或者进行rmi传输 等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。
2. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存,也无法对他们进行重新的资源分 配,而且,也是没有必要这样实现。
5.Console
Console cons = System.console();
6.If you define D e = (D)(new E()), then e.bMethod() invokes the version of bMethod() defined in Line 9.
7.子类向上转型为父类时,子类中的方法父类无法调用
8.java的访问权限有四种,public,protected,默认,private
9. Has-a relationships can be implemented using instance variables.
D. Is-a relationships can be implemented using the extends keyword.
E. Is-a relationships can be implemented using the implements keyword.
An array or a collection can be used to implement a one-to-many has-a relationship.
10.必须用this()调用无参构造函数,必须是有参构造函数额第一条语句
11.
interfaceData { public voidload(); }
abstract classInfo { public abstract voidload(); }
public classEmployee extendsInfo implementsData { public voidload() { /
*do something*/ }
}
12.
抽象类也有构造函数
13.
抽象类实现接口可以不实现其中的所有方法:其实接口就是一个抽象类的另一种体现形式
14.
bar.notifyall()其他的线程的开启
15.
当我们试图把某个类的对象当成 HashMap 的 key,或试图将这个类的对象放入 HashSet 中保存时,重写该类的 equals(Object obj) 方法和 hashCode() 方法很重要,而且这两个方法的返回值必须保持一致:当该类的两个的 hashCode() 返回值相同时,它们通过 equals() 方法比较也应该返回 true。通常来说,所有参与计算 hashCode() 返回值的关键属性,都应该用于作为 equals() 比较的标准。
如下程序就正确重写了 Name 类的 hashCode() 和 equals() 方法。
16.hashset中的hashcode和equal
为什么要重写equals方法和hashCode方法(技术实现原理):
程序向HashSet中添加一个对象时,先用hashCode方法计算出该对象的哈希码。
比较:
(1),如果该对象哈希码与集合已存在对象的哈希码不一致,则该对象没有与其他对象重复,添加到集合中!
(2),如果存在于该对象相同的哈希码,那么通过equals方法判断两个哈希码相同的对象是否为同一对象(判断的标准是:属性是否相同)
1>,相同对象,不添加。
2>,不同对象,添加!
17.
Comparable和Comparator都是用来实现集合中元素的比较、排序的。
Comparable是在集合内部定义的方法实现的排序,位于java.util下。
Comparator是在集合外部实现的排序,位于java.lang下。
18.compareTo只有这一个函数时,=0,产生冲突,不能添加
19.comparable可以extend也可以implement
20.
treeset是有序的
------HashMap无序输出------
Key: 3--Value: Value3
Key: 2--Value: Value2
Key: 1--Value: Value1
Key: b--Value: ValueB
Key: a--Value: ValueA
------TreeMap按Key排序输出------
Key: 1--Value: Value1
Key: 2--Value: Value2
Key: 3--Value: Value3
Key: a--Value: ValueA
Key: b--Value: ValueB
--LinkedHashMap根据输入的顺序输出--
Key: 3--Value: Value3
Key: 1--Value: Value1
Key: 2--Value: Value2
Key: b--Value: ValueB
Key: a--Value: ValueA
21.
Comparable是一个对象本身就已经支持自比较所需要实现的接口,如String、Integer自己就实现了Comparable接口,可完成比较大小操作。自定义类要在加入list容器中后能够排序,也可以实现Comparable接口,在用Collections类的sort方法排序时若不指定Comparator,那就以自然顺序排序。所谓自然顺序就是实现Comparable接口设定的排序方式。
Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足要求时,可写一个比较器来完成两个对象之间大小的比较。Comparator体现了一种策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。
总而言之Comparable是自已完成比较,Comparator是外部程序实现比较。