- 浏览: 32107 次
- 性别:
- 来自: 鲨堡
最新评论
-
H_eaven:
1.相等的对象要返回相等的哈希码,
2.不相等的对象要返回不 ...
equals和hashCode -
dayang2001911:
讲讲hashcode和equals有什么联系?
equals和hashCode
文章列表
Observable提供必要的信息.
Observer(Listener)则对Observer所提供的数据做自己感兴趣的处理 .
比如TimeSource提供时间这一数据,TimeSink可以获所得TimeSource提供的时间数据,有人可能要实现数字时钟,另外有人可能想使用所提供的时间实现一个提醒服务。还有人可能想启动每晚备份功能。简而言之,希望一个单一的TimeSource对象能够为多个TimeSink对象提供时间.
Observable与Observer关系,如果1 : 1则可以做成依赖关系, 如果1 : n 则在Observable 内保存一个Observer的集合。
当然也可以利用 ...
- 2009-10-10 17:20
- 浏览 845
- 评论(0)
What,Why,How,When;
Struts2 中获取request,response,session,application 的方式1,2,
1:(1)使用帮助类ActionContext的静态方法 ActionContext.getContext()
(2)使用ServletActionContext帮助类的静态方法,ServletActionContext.getRequest();
...
- 2009-10-09 20:45
- 浏览 759
- 评论(0)
抽象类仍然一个类,这可能会影响到灵活性.因为 Java是单一继承.
接口的灵活性要更大.
接口可以模拟多重继承.(参见Spring BeanFactory接口体系的设计)
抽象类的后继演变要比接口更容易些,可以直接在抽象类里添加具体方法,但是接口会要求所有实现类都实现新添加的抽象方法.
抽象类的使用应该做为一种实现手段来用,而不是做为类的体系设计来用.
抽象类在设计时应该多的拥有代码,以增加代码的复用,要少的拥有数据,子类应该多的有数据.
Java类型检查基于这样一个事实:每一变量的声明都给这个变量一个类型,每一个方法(和构造子)的声明都给出这个方法的特征。这样一来,Java编译器可以 ...
- 2009-10-09 19:08
- 浏览 849
- 评论(0)
继承:使得相同的代码可以在不同类型之间得到复用.
多态:使得不同的代码可以以一种相同的方式得到调用.
继承可以做为复用的手段,但这不是继承的最大意义,继承的最大意义在于封装变化的代码,将变化的代码和不变的代码进行剥离,使得代码的维护性,扩展性,重用性得增强.
继承分为extends和implements.
在子类重写方法时,要注意到这有可能是在修改父类,违背LSP. 子类应该进可能去实现一个抽象方法,而不是去重写一个具体方法.
- 2009-10-09 18:45
- 浏览 846
- 评论(0)
import java.util.*;
//重构前:根据所给出的数字n,返回1-n之间的所有质数.
class GeneratorPrimes
{
public static void main(String[] args)
{
long start = System.currentTimeMillis();
int[] a = PrimeGenerator.generate(10000000);
long end = System.currentTimeMillis();
...
- 2008-12-08 03:58
- 浏览 851
- 评论(0)
// 程序1
class Singleton {
private static Singleton obj = new Singleton();
public static int counter1;
public static int counter2 = 0;
private Singleton() {
counter1++;
counter2++;
}
public static Singleton getInstance() {
return obj;
}
}
// 程序2
public class MyMain {
public static ...
- 2008-10-09 20:24
- 浏览 886
- 评论(0)
public class Person
{
private int id;
private String name;
private String password;
private double salary;
private int hashCode;
public Person(int id,String name,String password,double salary) {
this.id = id;
this.name = name;
...
- 2008-10-08 01:51
- 浏览 1443
- 评论(2)
代理模式:
public interface Interface {
void doSomething();
void somethingElse(String arg);
}
public class RealSubject implements Interface {
public void doSomething() {
System.out.println("realSubject.doSomething()...");
}
public void some ...
- 2008-09-27 01:43
- 浏览 869
- 评论(0)
一个Singleton类如果可序列化,则除实现java.io.Serializable标记接口,还需定义private Object readResolve() throws ObjectStreamException;
如果没有第二步则在反序列化的时候会重新生成一个对象.因而失去了Singleton.
原因在于:反序化也相当于构造方法生成一次对象.
import java.io.*;
public class Thing implements Serializable
{
private int id;
private String name;
private st ...
- 2008-09-11 18:47
- 浏览 959
- 评论(0)
public class Suit {
private static int nextOrdinal = 0;
private final int ordinal = nextOrdinal++;
private final String name;
private Suit (String name) {
this.name = name;
}
public String toString() {
return this.name;
}
public int ordinal( ...
- 2008-09-09 21:44
- 浏览 885
- 评论(0)
内存泄漏:应用程序中保留了从不会再被使用的引用,引用未被释放,GC无法工作.
import java.util.*;
public class Test
{
private Object[] objs;
private int count;
public Test(int size) {
objs = new Object[size];
count = 0;
}
public void addEle(Object obj) {
objs[count] = obj;
count++;
}
public ...
- 2008-09-03 21:04
- 浏览 869
- 评论(0)