2022.01.08static、final、单例设计模式
2022.01.08每日一考
1. static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点)
随着类的加载而加载;早于对象的创建;只要权限允许,可以通过”对象.static属性”的方式进行调用;
存在于方法区的静态域
2. final 可以用来修饰哪些结构,分别表示什么意思
变量 该变量不可更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象
方法 该方法不能被重写被final修饰的方法将不能被子类覆盖
类 表示该类不能再被继承
在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。
3. 代码实现单例模式的饿汉式
public class Account { private Account() { } private static Account test = new Account(); public static Account getAccount() { return test; } }
4. 代码实现单例模式的懒汉式 -目前还是线程不安全的。
class Sample { private Sample() { } private static Sample test2 = null; public static Sample getTest2(){ if (test2 == null){ test2 = new Sample(); } return test2; } }
5. 类的属性赋值的位置有哪些?先后顺序为何?
默认初始化
显式初始化 、代码块中初始化
构造器中初始化
通过”对象.属性” 或”对象.方法”的方式赋值