Java连载53-单例模式初步、final关键字补充、回顾知识点

1、回顾java

1.类和对象的区别node

2.UML(uniform makeup language)git

3.方法区存储静态变量、常量(static final修饰)github

4.堆内存中存储对象设计模式

5.栈存储变量微信

6.this()可用于构造方法第一行学习

7.static静态语句块(JVM中第一次使用类的时候,会进行加载静态语句块),还能够修饰变量和方法大数据

8.设计模式是能够重复利用的解决方案能够分为四类ui

9.类的继承(单继承)this

10.方法覆盖(相同修饰符,相同方法名,相同参数)

11.多态,子类->父类(向上转型

父类->子类(向下转换,强制类型转换)

12.super关键字,子类里面访问父类的方法

13.super()能够出如今构造方法第一行,默认自动生成,不会建立父类,只是用来初始化,用来调用父类的构造方法。

14.final关键字

15.abstract抽象类

非抽象类调用抽象类,必须将抽象类中的方法覆盖、重写

2、深刻final关键字

1.抽象类不能够被final关键字修饰(抽象类定义出来就是用来继承的)

2.fianl修饰的引用类型,该引用不能够再从新指向其余的java对象

可是final修饰的引用,该引用指向的对象的属性是能够修改的。

 

package com.bjpowernode.java_learning;

​

public class D53_1_FinalKeywordAddition {

  public static void main(String[] args) {

    final Customer53 c1 = new Customer53("Jack",45);

   

//    c1 = new Customer53("liuming",45); //这个语句报错,这是由于final关键字修饰了c1这个变量

//    咱们固然不能再将它进行赋值了,可是下面的对c1中的属性进行赋值就是能够的

    c1.name = "jfaolj";

  }

}

​

class Customer53 {

  String name;

  int age;

  Customer53(String name,int age){

    this.name = name;

    this.age = age;

  }

}

 

 

运行不会报错。

3、设计模式

1.设计模式:能够重复利用的解决方案

2.设计模式从结构 上能够分为三类:建立型、结构型、行为型

3.单例模式

(1)单例模式是23种设计模式中最简单的一种设计模式

(2)为了解决什么问题呢?

为了保证JVM中某一个类型的java对象永远只有一个;为了节省内存的开销

(3)实现单例模式的方法

i.构造方法私有化

ii.对外提供一个公开的静态的获取当前类型对象的方法

ii.对外提供一个当前类型的静态变量。

 

package com.bjpowernode.java_learning;

​

public class D53_2_SingletonMode {

  public static void main(String[] args) {

    Singleton53 s1 = Singleton53.getInstance();

    Singleton53 s2 = Singleton53.getInstance();

    System.out.println(s1==s2);//返回结果是true,说明这两个对象是同一个对象,这就达到了咱们的目的 

  }

}

​

class Singleton53{

  private static Singleton53 s;//这个很关键,由于静态变量是存储在方法区内存的,这里的s一旦被赋值了,就不会变了

  //第二次调用这个类不会执行这段语句语句由于第一次调用类以前已经建立,第一次调用类改变了它,就一直不用变了

  //将构造方法私有化

  private Singleton53() { 

   

  }

  //对外提供一个公开获取Singleton对象的方法

  public static Singleton53 getInstance() {

    if(s==null) {

      s = new Singleton53();

    }

    return s;

  }//这里必须是静态方法,若是是实例方法,咱们对象都不能在外面建立,那么若是调用这个方法呢?

}

4、源码:

D53_1_FinalKeywordAddition.java

D53_2_SingletonMode.java

地址:

https://github.com/ruigege66/Java/blob/master/D53_1_FinalKeywordAddition.java

https://github.com/ruigege66/Java/blob/master/D53_2_SingletonMode.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,我的公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

相关文章
相关标签/搜索