Java基础 (代码块、静态结构、单例模式)
思维导图

静态结构
静态变量
用static关键字修饰的变量
静态方法
用static关键字修饰的方法
调用:类名.变量名,类名.方法名()
特点:
1、静态变量(方法)随着类的加载而加载,随着类的消失而消失
2、静态变量(方法)属于类的
3、静态方法只能访问静态方法,不能访问实例方法
4、非静态方法既可以访问非静态方法,也可以访问静态方法
5、静态方法不存在重写
6、无论是this还是super,都不可以在静态结构中使用
代码块
局部代码块
在方法中的代码块
静态代码块
语法格式:
static{
//Java语句
}
实例代码块
{
}
当一个类中同时有静态代码块,实例代码块,构造器时,执行顺序为静态代码块,实例代码块,构造块
内部类
不能有静态变量、静态方法和静态代码块
静态内部类
在类中的用static修饰的类
单例模式
实现单例模式的要求
- 类中构造方法的访问权限必须设置为私有
- 必须在类中创建该类的静态私有对象
- 在类中提供一个公有的静态方法用于创建,获取静态私有对象
饿汉式
1 public class Test { 2 private Test(){}; 3 private static final Test test = new Test(); 4 public static Test getInstance(){ 5 return test; 6 } 7 }
类加载时便实例化一个静态对象
懒汉式
1 public class Test3 { 2 private static Test3 test3; 3 4 private Test3() { 5 6 } 7 public static Test3 getInstance(){ 8 if (test3 == null){ 9 test3 = new Test3(); 10 } 11 return test3; 12 } 13 }
在多线程中无法保证单例的存在
内部类实现单例
public class Test4 { private Test4(){ } public static Test4 getInstance(){ return inner.TEST_4; } private static class inner{ private static final Test4 TEST_4=new Test4(); } }
综合了饿汉式和懒汉式,多线程也可保证单例
浙公网安备 33010602011771号