/*方法区的定义*/
方法区习惯的认为是static修饰的共享的成员变量储存的地方,其实方法区还是函数方法储存的地方
例如:
public vod run(){}这种类似的方法在方法区中保留。
/*单例设计模式*/
书籍《设计模式》
设计模式:解决一类问题最行之有效的方法
java中总共有23种设计模式
单例设计模式:实现一个类中只有一个对象。
例如:
class Person
{
private Person(){} //第一步:私有化构造函数,因为在其他类能创建对象的原因是:构造函数未私有
private static Person p=new Person(); //第二步:在本类中建立对象,因为第三步是静态方法调用,所以Person类的p必须是静态
public static Person getInstance() //第三步:在本类中建立外界获取途径,用类名直接调用方式获取。
{
return p;
}
}
class Q1
{
public static void main(String[] args)
{
Person p1=Person.getInstance();
}
}
/*懒汉式和饿汉式的初步了解*/
/*饿汉式*/
class Person
{
private Person(){}
private static Person p=new Person();
public static Person getInstance()
{
return p;
}
}
/*懒汉式*/
class Person
{
private Person(){}
private static Person p=null;
public static Person getInstance()
{
if(p==null)
{
synchronized(Person.class) //确定其安全性
{
if(p==null)
p=new Person();
}
}
return p;
}
}
//懒汉式和饿汉式的区别:1.定义单例(指实现一个类只设计出一个对象的功能),建议使用饿汉式(吐槽:我就不知道懒汉式有何卵用)
// 2.饿汉式是指Person类一进内存就建立对象,果然很饿;而懒汉式是指Person类进入内存,很淡定不慌,等到调用getInstance()
// 方法了才建立对象,特别懒,而且这种安全性差,到底有何用?