exam1-java

双重检查锁的单例模式

public class Singleton {
        private static volatile Singleton singleton;

        private Singleton() {
        }

        public static Singleton getInstance() {
            if (singleton == null) {
                synchronized (Singleton.class) {
                    if (singleton == null) {
                        singleton = new Singleton();
                    }
                }
            }
            return singleton;
        }

    }

HashMap 取值 一个value有三个abc字符串

编译错误与运行时错误

选择题

  • 子类调用从父类继承过来的方法

    这里要区分继承多态的概念, 多态分为运行时多态编译时多态方法重载都是编译时多态。根据实际参数的数据类型、个数和次序, Java在编译时能够确定执行重载方法中的哪一个。方法覆盖表现出两种多态性,当对象引用本类实例时,为编译时多态,否则为运行时多态运行时多态是多指父类指向子类的引用,并且子类重写父类的方法 ,当父类指向子类的引用调用子类独有的方法时会报编译时错误

  • 不管构造方式是什么修饰符,当我们初始化这个类的实例时,都会调用他的构造方法

    单例模式的构造方法就是使用private修饰符修饰, Singleton模式,指的是一个类,在一个JVM里,只有一个实例存在。 单例模式又分为懒汉式饿汉式懒汉式是延时加载,只有使用的时候才会加载;并且有线程安全的考量。饿汉式是立即加载,论是否会用到这个对象,都会加载

  • 初始化顺序

    父类静态变量-父类静态初始化块-子类静态变量-子类静态初始化块 父类初始化快,构造方法-子类初始化快,构造方法

    静态代码块只会初始化一次,初始化子类时也会调用父类的非静态代码块构造方法

    静态变量是所有对象共享

  • i++;++i;return i++; return ++i; i=i++;i=++i;

    i++: 先赋值后运算

    ++i: 先运算后赋值

Last updated

Was this helpful?