首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/680379

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

Java类加载的过程

JVM和类 当我们调用 Java 命令运行某个 Java 程序时,该命令将会启动一条 Java 虚拟机进程,不管该 Java 程序有多么复杂,该程序启动了多少个线程,它们都处于该 Java 虚拟机进程里。同一个 JVM 的所有线程、所有变量都处于同一个进程里,它们都使用该 JVM 进程的内存区。当系统出现以下几种情况时, JVM 进程将被终止: 程序运行到最后正常接收; 程序运行到使用System.exit()或Runtime.getRuntime().exit()代码结束程序; 程序运行中遇到未捕获的异常或错误结束; 程序所在平台强制结束了JVM进程; 类加载器就是寻找类或接口字节码文件进行解析并构造JVM内部对象表示的组件,在java中类装载器把一个类装入JVM,经过以下步骤: 1、加载:查找和导入Class文件 2、链接:其中解析步骤是可以选择的 (a)检查:检查载入的class文件数据的正确性 (b)准备:给类的静态变量分配存储空间 (c)解析:将符号引用转成直接引用 3、初始化:对静态变量,静态代码块执行初始化工作 类的加载过程 当Java程序需要使用某个类时,如果该类还未被...

【Java】深入理解Java虚拟机的读书笔记

java虚拟机所管理的内存包括以下几个运行时数据区域【程序计数器】线程私有,是一块较小的内存空间,当前线程执行的字节码的行号指示器,处理分支、循环、跳转、异常处理、线程恢复等基础功能,每个线程都需要有一个独立的程序计数器【虚拟机栈】线程私有,生命周期与线程相同,描述的是Java方法执行的内存模型:每个方法被执行的时候同时创建一个栈帧,存放局部变量表、操作栈、动态链接、方法出口等信息。每个方法的调用到完成对应了栈帧从入栈到出栈的过程,局部变量表所需的内存空间在编译期间完成分配,方法运行期间不会改变局部变量表的大小。【本地方法栈】为使用到的Native方法服务,与虚拟机栈所发挥的作用是非常相似的。【Java堆】最大的一块,被所有线程共享的一块内存区域,在虚拟机启动时创建,几乎所有的对象实例都在这里分配内存。Java堆是垃圾收集器管理的主要区域,因此被称为GC堆。Java堆可以处于物理上不连续的内存空间,只要逻辑上是连续的即可。【方法区】各个线程共享的内存区域,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。不需要连续的内存,垃圾收集行为在这个区域是比较少出现的,这...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册