今天我们先来总结java关键字中的static

我们为什么需要关键字static呢?


当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上


的对象,只有通过 new 关键字才会产生出对象,这时系统才会分配内存空间给对象,


其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少


对象的情况下, 某些特定的数据在内存空间里只有一份 ,例如所有的中国人都有个


国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中


都单独分配一个用于代表国家名称的变量。




java面对对象(下.1)(java关键字理解:static final main)_内存空间


如果想让一个类的所有实例共享数据,就用类变量!

java面对对象(下.1)(java关键字理解:static final main)_内存空间_02

 

 


使用范围:


在 Java 类中,可用 static 修饰 属性、方法 、 代码块、内部类


被修饰后的成员具备以下特点:


 


随着类的加载而加载


优先于对象存在


修饰的成员,被所有对象所共享


访问权限允许时,可不创建对象,直接被类调用



java面对对象(下.1)(java关键字理解:static final main)_饿汉式_03


 理解一个东西不能停留在表面的知识点,要深入,我们来看下他的内存解析

java面对对象(下.1)(java关键字理解:static final main)_饿汉式_04

 类方法(class method)

java面对对象(下.1)(java关键字理解:static final main)_设计模式_05

 

java面对对象(下.1)(java关键字理解:static final main)_内存空间_06

单例 (Singleton)设计模式

 

 

java面对对象(下.1)(java关键字理解:static final main)_设计模式_07

单例 (Singleton)设计模式通常又可以分为懒汉式和饿汉式

单例(Singleton)设计模式-饿汉式

java面对对象(下.1)(java关键字理解:static final main)_eclipse_08


单例(Singleton)设计模式-懒汉式

 

java面对对象(下.1)(java关键字理解:static final main)_设计模式_09

 

java面对对象(下.1)(java关键字理解:static final main)_内存空间_10

 

java面对对象(下.1)(java关键字理解:static final main)_饿汉式_11

main到底是一个什么玩意?

甚至你翻完课本也没见到几句话,今天我们可以来了解了解!!!!

java面对对象(下.1)(java关键字理解:static final main)_java_12

 

java面对对象(下.1)(java关键字理解:static final main)_eclipse_13

 最后最后,我们总结一波类中我们很少用到的玩意,类的成员:代码块

java面对对象(下.1)(java关键字理解:static final main)_饿汉式_14

 

java面对对象(下.1)(java关键字理解:static final main)_内存空间_15

 

 举个例子消化一波

java面对对象(下.1)(java关键字理解:static final main)_饿汉式_16

java面对对象(下.1)(java关键字理解:static final main)_eclipse_17

 最后最后最后:是对关键字final的总结

java面对对象(下.1)(java关键字理解:static final main)_java_18

 

java面对对象(下.1)(java关键字理解:static final main)_java_19

 

java面对对象(下.1)(java关键字理解:static final main)_eclipse_20

 

java面对对象(下.1)(java关键字理解:static final main)_设计模式_21

 

java面对对象(下.1)(java关键字理解:static final main)_内存空间_22

 

 好了,今天就到这里吧,晚安