促销活动
CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
目标地图
课程
级别 18
JVM 中的内存
模块 3
第 18 级,
课程 0
了解 JVM 中的内存 如您所知,JVM 在其内部运行 Java 程序。像任何虚拟机一样,它有自己的内存组织系统。 内部存储器布局指示 Java 应用程序的工作方式。通过这种方式,可以识别应用程序和算法运行中的瓶颈。让我们看看它是如何工作的。 重要的!原来的Java模型不够好,所以在Java 1.5中进行了修改。这个版本一直沿用至今(Java 14+)。 线程栈 JVM内部使用的Java内存模型将内存分为线程栈和堆。我们来看下Java内存模型,逻辑上分为块: JVM 中运行的
JVM 中的内存,第 2 部分
模块 3
第 18 级,
课程 1
内存硬件架构 现代内存硬件架构不同于 Java 的内部内存模型。因此,您需要了解硬件体系结构才能了解 Java 模型如何与它一起工作。本节介绍一般内存硬件架构,下一节介绍 Java 如何使用它。 这是现代计算机硬件架构的简化图: 在现代世界,一台计算机有 2 个或更多处理器,这已经是常态。其中一些处理器可能还具有多个内核。在这样的计算机上,可以同时运行多个线程。每个处理器核心都能够在任何给定时间执行一个线程。这意味着任何 Java 应用程序都是先验多线程的,并且在您的程序中,
Java内存模型
模块 3
第 18 级,
课程 2
Java内存模型简介 Java 内存模型 (JMM)描述了线程在 Java 运行时环境中的行为。内存模型是 Java 语言语义的一部分,它描述了程序员在开发不是针对特定 Java 机器而是针对整个 Java 的软件时可以和不应该期望的内容。 1995 年开发的原始 Java 内存模型(特别是指“percolocal 内存”)被认为是失败的:许多优化无法在不失去代码安全保证的情况下进行。特别是,编写多线程“单”有几种选择: 访问单例的每个行为(即使对象是很久以前创建的,并且什么
Java 中的垃圾收集
模块 3
第 18 级,
课程 3
回想一下 Java 中的垃圾回收是什么 垃圾收集是通过销毁未使用的对象来回收完整的运行时内存的过程。 有时程序员可能会忘记销毁无用的对象,而分配给它们的内存并没有被释放。越来越多的系统内存被消耗,最终不再分配。此类应用程序遭受“内存泄漏”。 在某个点之后,不再有足够的内存来创建新对象,并且程序由于OutOfMemoryError异常终止。 Java 中的垃圾收集是 Java 程序自动管理内存的过程。Java 程序被编译成在 Java 虚拟机 (JVM) 上运行的字节码。 当
世代垃圾收集
模块 3
第 18 级,
课程 4
处理多代对象 Java 垃圾收集器实现了分代垃圾收集策略,可以按年龄对对象进行分类。 JVM 中的这种需要(标记和压缩所有对象)可以称为低效。由于分配了大量对象,因此它们的列表会增长,从而导致垃圾收集时间增加。对应用程序的实证分析表明,Java 中的大多数对象都是短暂的。 JVM中的堆内存区分为三部分: 年轻一代 新创建的对象从年轻一代开始。年轻一代进一步细分为两类。 Eden Space - 所有新对象都从这里开始,它们被分配初始内存。 幸存者空间(FromSpace 和
Java中垃圾收集器的类型
模块 3
第 18 级,
课程 5
串行GC 垃圾收集通过从堆中删除未引用的对象并为新创建的对象腾出空间来提高 Java 中的内存效率。 Java 虚拟机有八种类型的垃圾收集器。让我们详细考虑它们中的每一个。 Serial GC是最简单的 GC 实现。它适用于在单线程环境中运行的小型应用程序。所有垃圾收集事件都在同一线程上按顺序执行。压缩在每次垃圾收集后执行。 运行收集器会导致“world stop”事件,此时整个应用程序都会暂停。由于整个应用程序在垃圾收集期间被冻结,如果您想尽可能降低延迟,您不应该在现实生活
选择Java中的垃圾收集器
模块 3
第 18 级,
课程 6
7.1* 如何选择合适的垃圾收集器 如果您的应用程序没有严格的延迟要求,您应该只运行应用程序并让 JVM 自己选择正确的收集器。 在大多数情况下,默认设置工作正常。如有必要,您可以调整堆大小以提高性能。如果性能仍然不如预期,请尝试修改收集器以满足您的应用程序要求。 顺序的。如果应用程序有一个小数据集(最多约 100 MB)和/或它将在没有任何延迟要求的单个处理器上运行。 并行。如果优先级是应用程序的峰值性能并且没有延迟要求(或者一秒或更长时间的暂停是可以接受的)。 内容管理系
Java 中的垃圾链接
模块 3
第 18 级,
课程 7
8.1 Java 中的弱引用 Java 中有多种引用。 有StrongReference - 这些是我们每天创建的最常见的链接。 Object object = new Object();//создал обьект
Please enable JavaScript to continue using this application.