Java单例模式详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java单例模式详解相关的知识,希望对你有一定的参考价值。
接口中说声明的方法都是抽象方法。接口中的方法都是public的。
接口中也可以定义成员变量。接口中的成员变量都是public,final,public,static
一个类不能既是final,又是abstract,因为abstract的主要目的是一种约定,让子类实现这种约定,而final表示该类不能被继承,这样abstract希望该列可以被继承,而final明确说明,该列不能被继承,两者矛盾,
Design Pattern(设计模式)单利模式(Singleton)表示一个类只会生成唯一的一个对象
package com.yuanzijian02; class Singleton{ private static Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton getInstance(){ if(singleton == null){ singleton = new Singleton(); } return singleton; } } public class SingletonTest { public static void main(String[] args) { // TODO 自动生成的方法存根 Singleton singleton = Singleton.getInstance(); Singleton singleton2 = Singleton.getInstance(); System.out.println(singleton == singleton2); } }
5. 包。用于将完成不同功能的类分门别类,方法不同的目录下,包的命名规则:将公司的域名翻转作为包名,对于包名:每个字母都需要小写,如果没有使用package那么Java就认为我们所定义的类默认包里面
6. 变异大爱有package声明的Java源文件有两种方式
1.直接编译,然后根据类中定义的包名,追忆手工建立目录结构,最后将生成的class文件放到该目录中(很少使用,比较麻烦)
2.使用编译参数 -d , 方式为Java -d.源文件.java,这样编译后,编译器就会帮助我们建立好相应的目录结构
7. 有两个包,分别为aa.bb.cc与aa.bb.dd,那么我们成后者为前者的子包
8. 导入(import),将使用package分离的各个类导入回来,让编译器能够找到需要的类
9. import的语法:import com.yuanzijian.PackageTest
10.import com.yuanzijian.*;表示导入com.yuanzijian包下面所有的类
11.import aa.bb.*并不会导入aa.bb.cc包下面的类,这是需要这样写:
import aa.bb.*;
import aa.bb.cc.*;
12.关于package、import、class的顺序问题
1.首先要定义包的顺序 可选
2.接下来使用import进行导入 可选
3.然后才是class或者是interface的定义。
13.如果两个类在同一个包的下面,直接使用就可以了,不需要导入
14.访问修饰符(access modifier)
1.public(公共的):被public修饰的属性和方法可以被所有的类访问
2.protected(受保护的):
3.private(私有的):被private所修饰的属性和方法,只能在该类的内部使用
4.默认的(不加任何访问修饰符):在类的内部可以访问,以及在相同包下面的类也可以访问
15.instanceof:判断某个对象是否是魔偶个类的实例。形式:引用名in是探测偶发类名,返回一个布尔值。
以上是关于Java单例模式详解的主要内容,如果未能解决你的问题,请参考以下文章
Java设计模式图文代码案例详解Java五大创建者模式 建造者原型(抽象)工厂单例模式