Java之关键字、修饰符
static、final、abstract是重要的关键字、修饰符,能够为面向对象增加新的特性。
一、static关键字——静态的
特点:1)修饰的资源会在类加载时执行或初始化;
2)成员可以通过类名直接调用
Inerger.MAX-VALUE
Math.random();
AnimalFantory.getAnimal(1);
类加载:class load
当JVM第一次使用某个类时,会将其*.class文件读入JVM内存,存于code区,可以作为模板来创建对象,使用其方法。
类加载的时机:
1)new Student();会加载Student类,只声明引用Studeng stu;不会加载;
2)类名.静态成员
Arrays.sort(ds);会先加载Java.util .Arrys类,
补充:JVM启动时会提前加载java.lang下所有类;(Java.lang.String、Integer、Math...)
3)class.forName("day08.Animal");
手动加载 day08.Animal类
目的:就是为了加载一个类,类必须写全面。
JVM内存的三大区域:
1)栈区Stack:局部变量;
2)堆区Heap:对象;
3)方法区 Code:类的信息、静态资源;
1、static修饰属性
不加static:实例变量,每个对象(实例)拥有一份
加了static:类变量,整个类只有一份(对象共享一份)
在day09.sta包汇总新建TestStatic1.class
class Student{
int no; //学号
static int cno; //班级号
}