访问修饰符
控制被访问的权限 public protected default(不写) private (权限从高到低)
静态(static)
内存结构
问:创建对象之前会做些什么?
答:.java文件 -- 编译 ----> .class ---加载----> 虚拟机
问:java内存结构分几部分?
答:1,栈 2,堆 3,方法区(静态区) 4,程序计数器 5,本地方法栈(native)
问:构造对象会经历哪些步骤?
答:1,去方法区看下这个类是否已经被加载 了,如果没有被加载则先加载这个类。(静态的东西会在第一次加载的时候初始化)
2,然后new 在堆中申请空间,然后给这个对象初始化。(非静态)
3,执行构造方法里面的逻辑。
下面是代码在内存中的运行过程:
代码块
解释 :
一块代码,用{}括起来一段逻辑代码
特点:
1,是在构造对象的时候运行的,但是是在构造函数之前执行。
2,写在方法里面的临时代码块跟没有代码块几乎没有区别,但是需要注意变量的作用域。
3,静态代码块就会在类加载的时候执行,但是类加载只加载一次,所以静态代码里面的内容只会执行一次。
4,普通代码块由于是在构造对象的时候执行的,所以每构造一个对象会执行一次。