Java_static 关键字, 单例设计模式

来源:互联网 发布:远程suse安装软件 编辑:程序博客网 时间:2024/05/16 12:27

static 静态

        用于修饰类成员,包括成员变量,成员函数,静态代码块。用static修饰的成员不依赖于对象存在,类加载时加载存在,体现为:可以直接用 类名.属性名 访问static修饰的属性(成员变量),直接用 类名.方法名 访问static修饰的方法(成员函数)重点是可以不需要创建访问类的属性和方法。

1.static用于修饰属性   2.static用于修饰方法       特点:可以直接访问,不依赖对象存在

3.修饰代码块 : 称为静态代码块  ,特点:在类加载时加载,即创建对象之前执行。静态代码块在同一个程 序中只会执行一次。           而动态代码块每创建一个对象执行一次,相当于构造函数,又叫构造代码块

4. jdk1.8以后可以在接口中,用static或者 default修饰的方法可以有方法体

主要运用 ——工具类:所有属性和方法都用static修的类,直接通过类名访问其属性和方法。

 单例设计模式 :

1) 懒汉式:
class LanHan {
//静态本类对象做属性
private static LanHan lanHan;

//私有化构造函数
private LanHan(){}
//对外提供对外获取本类对象的静态方法
public static LanHan getLanHan(){
if(lanHan==null)
lanHan = new LanHan;
return lanHan;
}

}
2) 饿汉式:
class EHan{
private static EHan eHan= new EHan();


private EHan(){}


public static EHan getEHan(){

return eHan;
}

}

区别 : 饿汉式类加载的时候就创建对象, 懒汉式,类调用的时候没有创建对象再创建对象:延迟加载::
补充在实际开发中我们建议使用饿汉式,懒汉式在多线程调用时,存在问题。如何解决:使用同步代码块

 

0 0
原创粉丝点击