java题库5

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是外部程序实现比较。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值