-
static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点)
随着类的加载而加载;早于对象的创建;只要权限允许,可以通过”对象.static属性”的方式进行调用;存在于方法区的静态域 -
final 可以用来修饰哪些结构,分别表示什么意思
-
代码实现单例模式的饿汉式
- 单例设计模式:
-
- 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。
-
- 如何实现?
- 饿汉式 vs 懒汉式
-
- 区分饿汉式 和 懒汉式
- 饿汉式:
-
坏处:对象加载时间过长。
-
好处:饿汉式是线程安全的
- 懒汉式:好处:延迟对象的创建。
-
目前的写法坏处:线程不安全。--->到多线程内容时,再修改
*/
public class SingletonTest1 {
public static void main(String[] args) {
// Bank bank1 = new Bank();
// Bank bank2 = new Bank();
Bank bank1 = Bank.getInstance();
Bank bank2 = Bank.getInstance();
System.out.println(bank1 == bank2);
}
}
//饿汉式
class Bank {
// 1.私有化类的构造器
private Bank() {
}
// 2.内部创建类的对象
// 4.要求此对象也必须声明为静态的
private static Bank instance = new Bank();
// 3.提供公共的静态的方法,返回类的对象
public static Bank getInstance() {
return instance;
}
}
4. 代码实现单例模式的懒汉式 -目前还是线程不安全的。
*
- 单例模式的懒汉式实现
*/
public class SingletonTest2 {
public static void main(String[] args) {
Order order1 = Order.getInstance();
Order order2 = Order.getInstance();
System.out.println(order1 == order2);
}
}
class Order {
// 1.私有化类的构造器
private Order() {
}
// 2.声明当前类对象,没有初始化
// 4.此对象也必须声明为static的
private static Order instance = null;
// 3.声明public,static的返回当前类对象的方法
public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}
}
5. 类的属性赋值的位置有哪些?先后顺序为何?
默认初始化
显式初始化 、代码块中初始化
构造器中初始化
通过”对象.属性” 或”对象.方法”的方式赋值
扫描二维码关注公众号,回复:
11574351 查看本文章