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; } }
区别 : 饿汉式类加载的时候就创建对象, 懒汉式,类调用的时候没有创建对象再创建对象:延迟加载::
补充在实际开发中我们建议使用饿汉式,懒汉式在多线程调用时,存在问题。如何解决:使用同步代码块
转载请注明原文地址: https://www.6miu.com/read-23307.html