javafor循环打印直角三角形

本文详细介绍了Java类从加载到卸载的生命周期,包括加载、验证、准备、解析、初始化、使用和卸载七个阶段,以及类加载器的工作原理。文章探讨了类加载的触发条件,强调了类加载器的双亲委派模型,并提供了面试相关知识点和获取面试资料的方式。
摘要由CSDN通过智能技术生成

前言

为什么互联网资讯这么发达,但是没有出现技术人才井喷

为什么会出现应届生薪资倒挂多年老员工的现象?

这个世界有太多的现象都可以用**“二八定律”**来解释。

20%拿着高工资,80%每天挣扎在增删改查边缘。

职场一分钱一分货

人家拿高薪,不是全靠运气

工作年限越久,不代表越值钱

一年经验用了五年,无法改变

因为经历不等于经验

加班“重灾区”的互联网行业以996闻名,每天超过11小时的工作时长每年位居各行业之首。

工作内容重复,加班导致学习时间不够,无法跟上技术更新脚本。

如何花最少时间学习最多知识,迫在眉睫!

如何打破程序员提升的三大屏障,成为符合互联网行业的JAVA高级工程师。

类的生命周期

类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载,验证,准备,解析,初始化,使用,卸载这7个阶段.其中其中验证、准备、解析3个部分统称为连接.

加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定特性(也称为动态绑定或晚期绑定)

注意,这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或激活另一个阶段。

加载:查找并加载类的二进制数据

在加载阶段,虚拟机需要完成以下3件事情:

  • 1)通过一个类的全限定名来获取定义此类的二进制字节流。
  • 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
  • 3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。

验证:确保被加载的类的正确性

验证是连接阶段的第一步,这一阶段的目的是为了确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。验证阶段大致会完成4个阶段的检验动作:

  • 文件格式验证: 验证字节流是否符合Class文件格式的规范;例如: 是否以0xCAFEBABE开头、主次版本号是否在当前虚拟机的处理范围之内、常量池中的常量是否有不被支持的类型。<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值