Java的访问控制符

修饰类的的控制符

修饰符 同一package 不同package
friendly(默认的) 可以 不可以
public 可以 可以

修饰类成员的控制符

修饰符 同一类中 同一package不同类 不同package不同类
private 可以 不可以 不可以
friendly(默认) 可以 可以 不可以
protected 可以 可以 是子孙类可以,不是不可以
public 可以 可以 可以

生命周期

静态区 代码区
空间小速度,快存放临时变量 空间大,存放多有new出来的对象 存放static修饰的变量或方法 储存字节码
    class Person{
        private static int id = 0;
        private String name = " ";
        
        public Person(String name){
            this.name = name;
        }
    
        public static void main(String[] args){
            id = 200;
            Person p = new Person("瞎打");
        }
    }
  1. 将代码加载到代码区
  2. 开始执行main方法,在静态区创建id=0;在栈区创建p指向堆区的对象,在静态区创建"瞎打"
  3. 开始执行public Person(),首先在栈中创建临时变量name,其指向静态区的"瞎打",然后在堆中创建p指向的真正内容
  4. 回到main方法,main方法结束,JVM结束并释放所有内存
原文地址:https://www.cnblogs.com/fiwen/p/9005367.html