java day014课后作业

  1. static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点)
    随着类的加载而加载;早于对象的创建;只要权限允许,可以通过”对象.static属性”的方式进行调用;存在于方法区的静态域

  2. final 可以用来修饰哪些结构,分别表示什么意思
    在这里插入图片描述

  3. 代码实现单例模式的饿汉式

  • 单例设计模式:
    1. 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。
    1. 如何实现?
  • 饿汉式 vs 懒汉式
    1. 区分饿汉式 和 懒汉式
  • 饿汉式:
  •  坏处:对象加载时间过长。
    
  •  好处:饿汉式是线程安全的
    
  • 懒汉式:好处:延迟对象的创建。
  •    目前的写法坏处:线程不安全。--->到多线程内容时,再修改
    

*/
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. 类的属性赋值的位置有哪些?先后顺序为何?
默认初始化
显式初始化 、代码块中初始化
构造器中初始化
通过”对象.属性” 或”对象.方法”的方式赋值

猜你喜欢

转载自blog.csdn.net/weixin_46381608/article/details/107827459