后端知识库(八股文大全 没事的时候再看)_20230303012103.docx
![preview](https://dl-preview.csdnimg.cn/87525657/0001-39608aff57a982304280ae7ae6854b6f_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
后端开发涉及众多知识领域,其中包括Java虚拟机(JVM)的相关概念。本文主要讨论JVM的对象创建过程、内存结构以及常量池。 1. JVM对象创建步骤: - 类加载检查:在创建对象时,JVM会首先确保类已经被加载、解析和初始化。如果未加载,JVM会进行加载。 - 内存分配:根据对象大小在Java堆中划分内存。内存分配有两种策略:指针碰撞(内存规整)和空闲列表(内存不规整)。并发情况下,JVM可能使用CAS(Compare and Swap)算法或本地线程分配缓存(TLAB)来保证线程安全。 - 初始化零值:分配完内存后,所有字段会被初始化为0。 - 设置对象头:记录对象类型、哈希码、GC信息等。 - 执行<init>方法:初始化对象的成员变量,完成对象的实际构造。 2. JVM内存结构: - 程序计数器:每个线程都有自己的计数器,记录当前执行的指令地址。 - 虚拟机栈:每个方法对应一个栈帧,存储局部变量、操作数、动态链接等。栈溢出会导致StackOverflowError。 - 本地方法栈:处理native方法,存储native方法相关的信息。 - 堆:所有线程共享,存放对象实例和数组,是垃圾回收的主要区域。 - 方法区:存储类信息,如Class、静态变量等。JDK 1.8后,方法区被元空间(Metaspace)取代。 3. JVM中的常量池: - Class文件常量池:存在于.class文件中,包含编译时的常量信息。 - 运行时常量池:在运行时可动态添加常量,如String.intern()。 - 全局字符串常量池:JVM维护的字符串引用表,使用Hashtable实现,存储字符串实例的引用。 - 基本类型包装类对象常量池:Byte、Short等基本类型包装类实现了常量池技术,用于优化内存使用。 理解这些基础概念对于后端开发者来说至关重要,它们有助于优化代码性能,避免内存泄漏,以及正确处理并发问题。深入学习JVM的工作原理能够帮助开发者编写更高效、更稳定的代码。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/release/download_crawler_static/87525657/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87525657/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87525657/bg3.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87525657/bg4.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87525657/bg5.jpg)
剩余352页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)