• 类的加载—连接—初始化
  • 加载:查找并加载类的字节码文件,从硬盘到内存.
  • 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,加载的.class文件的方式主要有:从本地系统中直接加载,通过网络下载.class文件,从zip、jar等归档文件中加载.class文件,从专有数据库中提取.class文件,将java源文件动态编译成.class文件。类的加载的最终产物就是位于堆内存中的Class 对象 。Class对象封装了类在方法区内的数据结构,并且向java程序员提供了访问方法区内的数据结构的接口,这个接口就是反射接口。

              

  • 连接:
  • 1.验证:确保被加载类的正确性.
  • 2.准备:为类的静态变量分配内存,并将其初始化为默认值,隐式初始化.
  • 3.解析:把类中的符号引用转换为直接引用.
  • 初始化:为类的静态变量赋予正确的初始化值显示初始化.
  • Java程序对类的使用方式分为两种:
  • —主动使用(六种)
  • 1.创建类的实例 new Demo();
  • 2.访问某个类或借口的静态变量,或者对该静态变量赋值 int a = Demo.x; Demo.x = a;
  • 3.调用类的静态方法 Demo.dosomething();
  • 4.反射(Class.forName(com.cnblogs.Demo))
  • 5.初始化一个类的子类
  • 6.虚拟机启动时,被标明为mian类的类
  • 每个类或接口被Java程序"首次主动使用"时才初始化它们
  • —被动使用:除以上6种其他情况都称为对类的被动使用,都不会导致类的初始化.

最新文章

  1. Python实现简单的记账本功能
  2. PHP读取流文件
  3. Laravel 5 服务的注册和使用
  4. 文件操作I
  5. WCF分布式开发步步为赢(6):WCF服务契约继承与分解设计
  6. springMVC从上传的Excel文件中读取数据
  7. Ext.Net学习笔记04:Ext.Net布局
  8. tableView特色用法
  9. IOS 页面之间的传值(主讲delegate)
  10. 第一百零八节,JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式
  11. 图片转换PDF
  12. 二分图最小路径覆盖--poj2060 Taxi Cab Scheme
  13. Problem A
  14. ES6 let&const
  15. L3-021 神坛(极角排序求三角形最小面积)
  16. Docker Data Center系列(四)- 离线安装UCP和DTR
  17. oracle-组件vault
  18. 设计模式(五)Builder Pattern建造者模式
  19. windows下安装并启动hadoop2.7.2
  20. Mac terminal Javac

热门文章

  1. 2018.4.27 java容器
  2. Mac添加环境变量方法
  3. centos安装tomcat步骤
  4. 爬坑Linux
  5. Android related
  6. EF 指定字段修改
  7. 关于Spring的那点事
  8. Promise的实现原理
  9. percona-toolkit(pt-online-schema-change)工具包的安装和使用
  10. docker 在windows7 、8下的安装