设计模式:解决问题的一种行之有效的思想。
单例设计模式:
解决:保证了一个类在内存中只能有一个对象。
比如多程序访问同一个配置文件。希望多程序操作的都是同一个配置文件中的数据。那么就需要保证该配置文件对象的唯一性。
思路:
怎么做才能保证这个对象是唯一的呢?
1, 其他程序随时用new创建该类对象,无法控制个数。
结论:不让其他程序创建该类的对象。因为不可以控制。
2,不让其他程序创建,该类在本类中自己创建一个对象
3,该类将创建的对象对外提供,让其他程序获取并使用。
步骤:
1, 怎么实现不让其他程序创建该类对象呢?
将该类的构造函数私有化
2, 在本类中创建一个本类对象。
3, 定义一个方法,返回值类型是本类类型。让其他程序通过该方法就能获取该类对象
//饿汉式
class Single
{
private static Single s=new Single();//0x0078
private Single(){};
public static Single getInstense()//定义方法是为了可控
{
return s;
}
}
//懒汉式
//单利的延迟加载方式
class Single2
{
private static Single2 s=null;
private Single2(){};
public static Single2 getInstense()//定义方法是为了可控
{
if(s==null)
s=new Single2();
return s;
}
}
classSingleDemo
{
public static void main(String[] args)
{
Single s1=Single.getInstance();
Single s2=Single.getInstance();
System.out.println(s1==s2);//true
}
}
开发时一般选用饿汉式,懒汉式存在线程安全隐患。但面试时写懒汉式。
当一个类中的所有方法都是静态的时,其构造函数位私有的,一般用于工具类。
文档注释:
要生成文档注释,该类必须是public
/**
@author 张三
@version v2.1
*/
-d:输出文件的目标目录
-author:包含作者信息
-version:包含版本信息
javadoc –d myhelp –author –versionArray.java
myhelp:生成问当的路径
Array.Java:文件名
private 或默认权限,javadoc是不会提取的。提取public类型的方法
包
包的作用:
1, 对类进行分类管理
2, 对类提供了多层名称空间
包的表现形式是文件夹
包名.类名才是类名的全称
编译:Javac –d 路径加文件
包与包之间的类的访问
被访问的包中的类以及类中的成员必须被public修饰。
当包与包之间的类存在着继承时
父类给不同包的子类提供了一个特殊的直接访问权限,保护权限protected
不同包与包之间有两种权限可以使用。
Public protected(局限性 只给不同包的子类提供使用)