java代码目录结构是咋样的,《深入理解java虚拟机》-目录结构

本文深入探讨Java的内存区域,包括程序计数器、虚拟机栈、Java堆、方法区等,解析对象创建、内存布局和访问定位。同时,详细分析了各种内存溢出异常及其实战解决方案,涵盖垃圾收集器与内存分配策略。此外,还介绍了Java虚拟机的执行子系统、类加载机制和字节码执行引擎,以及编译期和运行期的优化技术。最后,涉及Java并发编程,涵盖内存模型、线程安全和锁优化。
摘要由CSDN通过智能技术生成

第一部分 走进Java

第1章 走进Java

第二部分 自动内存管理机制

第2章 Java内存区域与内存溢出异常

2.1 概述

2.2 运行时数据区域

2.2.1 程序计数器

2.2.2 java虚拟机栈

2.2.3 本地方法栈

2.2.4 Java堆

2.2.5 方法区

2.2.6 运行时常量池

2.2.7 直接内存

2.3 HotSpot虚拟机对象探秘

2.3.1 对象的创建

2.3.2 对象的内存布局

2.3.3 对象的访问定位

2.4 实战:OutOfMemoryError异常

2.4.1 Java堆溢出

2.4.2 虚拟机栈和本地方法栈溢出

2.4.3 方法区和运行时常量池溢出

2.4.4 本机直接内存溢出

2.5 本章小结

第3章 垃圾收集器与内存分配策略

第4章 虚拟机性能监控与故障处理工具

第5章 调优案例分析与实战

第三部分 虚拟机执行子系统

第6章 类文件结构

第7章 虚拟机类加载机制

第8章 虚拟机字节码执行引擎

第9章 类加载及执行子系统的案例与实战

第四部分 程序编译与代码优化

第10章 早起(编译期)优化

第11章 晚期(运行期)优化

第五部分 高效并发

第12章 Java内存模型与线程

第13章 线程安全与锁优化

我们可以吧Java程序设计语言、Java虚拟机、Java API类库这三个部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。另外,可以把Java API类库中的JavaSE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。

类的方法存在哪里?

类加载时,方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中。可参考《深入java虚拟机》前几章。

如果instance method也随着instance增加而增加的话,那内存消耗也太大了,为了做到共用一小段内存,Java 是根据this关键字做到的,比如:instance1.instanceMethod(); instance2.instanceMethod(); 在传递给对象参数的时候,Java 编译器自动先加上了一个this参数,它表示传递的是这个对象引用,虽然他们两个对象共用一个方法,但是他们的方法中所产生的数据是私有的,这是因为参数被传进来变成call stack内的entry,而各个对象都有不同call stack,所以不会混淆。其实调用每个非static方法时,Java 编译器都会自动的先加上当前调用此方法对象的参数,有时候在一个方法调用另一个方法,这时可以不用在前面加上this的,因为要传递的对象参数就是当前执行这个方法的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值