Java的单例
单例模式的特点
- 单例设计模式保证一个类只有一个实例。
- 要提供一个访问该类对象实例的全局访问点。
懒汉模式
- 懒汉模式:在类加载的时候不被初始化。
饿汉模式
- 饿汉模式:在类加载时就完成了初始化,但是加载比较慢,获取对象比较快。
两种模式的特点
- 饿汉模式是线程安的,在类创建好一个静态对象提供给系统使用,懒汉模式在创建对象时不加上synchronized,会导致对象的访问不是线程安全的。
Java中的关键字
-
synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。
-
饿汉模式实例 :
class Single{
//1.私有化构造方法
private Single(){}
//2.new一个Single对象
private static final Single s=new Single();
//3.创建一个方法,让外面的类可以拿到对象的引用
public static Single getInstance(){
return s;
}
}
- 懒汉模式实例 :
class Single{
//1.私有化构造方法
private Single(){}
//2.声明一个对象的引用
private static Single s= null;
//3.判断一下,如果对象为null,再创建一个对象
public static Single getInstance(){
if(s==null){
s = new Single();
}
return s;
}
}
Java的继承
继承的特点
-
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
-
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
继承的优点
-
继承关系是传递的。若类C继承类B,类B继承类A,则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。
-
继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系;继承提供了软件复用功能。
-
这种做法能减小代码和数据的冗余度,大大增加程序的重用性;提供多重继承机制。
-
出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。