关于访问修饰符,静态,内存结构和代码块

访问修饰符

  控制被访问的权限   public    protected    default(不写)     private (权限从高到低)

 

 

 静态(static)

 

 

 

 

 内存结构

  问:创建对象之前会做些什么?

  答:.java文件 -- 编译 ----> .class ---加载----> 虚拟机

 

 

  问:java内存结构分几部分?

  答:1,         2,         3,方法区(静态区)    4,程序计数器        5,本地方法栈(native)   

  

  问:构造对象会经历哪些步骤?
  答:1,去方法区看下这个类是否已经被加载 了,如果没有被加载则先加载这个类。(静态的东西会在第一次加载的时候初始化)
         2,然后new 在堆中申请空间,然后给这个对象初始化。(非静态)
         3,执行构造方法里面的逻辑。

  下面是代码在内存中的运行过程

 

代码块

解释

一块代码,用{}括起来一段逻辑代码

特点

1,是在构造对象的时候运行的,但是是在构造函数之前执行。

2,写在方法里面的临时代码块跟没有代码块几乎没有区别,但是需要注意变量的作用域。

3,静态代码块就会在类加载的时候执行,但是类加载只加载一次,所以静态代码里面的内容只会执行一次。

4,普通代码块由于是在构造对象的时候执行的,所以每构造一个对象会执行一次。

posted @ 2019-10-17 21:34  红·林  阅读(143)  评论(0编辑  收藏  举报