作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/6959615.html 一、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方 ...
分类:
编程语言 时间:
2019-11-23 23:38:18
阅读次数:
104
转自:https://www.cnblogs.com/starhu/p/6400348.html?utm_source=itdadao&utm_medium=referral 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制 ...
分类:
编程语言 时间:
2019-11-23 23:33:12
阅读次数:
83
参考:《深入理解JAVA虚拟机》第二版 3.3 垃圾收集算法 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,只是介绍几种算法的思想及其发展过程。 3.3.1 标记 清除算法 最基础的收集算法是“标记 清除”(Mark Sweep)算法。 算法分为 标记和清除 ...
分类:
编程语言 时间:
2019-11-23 20:03:35
阅读次数:
88
参考自《深入理解JAVA虚拟机》第二版 第2章 Java内存区域与内存溢出异常 2.1 概述 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,由虚拟机管理内存这 一切看起来都很美好 ,一旦出现 内存泄漏和溢出方面 的问题,如果 ...
分类:
其他好文 时间:
2019-11-23 19:50:47
阅读次数:
69
这篇博客主要摘自《深入理解Java虚拟机 JVM高级特性与最佳实践》,写这篇博客最初的目的是为了准备期末Java考试关于JVM的几个问题,看了这本书几章节后感觉收获匪浅,对JVM的一些结构有了一些了解。 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都 ...
分类:
其他好文 时间:
2019-11-23 19:49:20
阅读次数:
55
JDK安装 JVM :JAVA虚拟机 JRE :java运行环境=JVM+核心类库 JDK :JAVA开发工具包=JRE+java开发工具 java开发工具:编译工具(javac.exe) 、 运行工具(java.exe) 、打包工具(jar.exe)等 JDK下载:https://www.orac ...
分类:
编程语言 时间:
2019-11-23 12:23:43
阅读次数:
70
JavaGC的相关知识点在《深入理解JAVA虚拟机》上比较琐碎,有的概念没有详细介绍,前后顺序也不太连贯。为了便于理解原理和问题排查,反复阅读了这一部分及相关文章后简单的总结一下。
思想脉络是:JVM内存模型->内存模型中的堆的进一步分代->GC回收算法、日志、回收器,从一个面(内存模型)到一个点... ...
分类:
编程语言 时间:
2019-11-22 19:08:34
阅读次数:
94
一、Kotlin基本语法 1、Kotlin是一种静态类型编程语言,在java虚拟机上运行。Kotlin程序文件以 .kt 结尾 2、函数定义: 函数定义使用fun,参数格式为 参数:参数类型 2.1函数有返回值 fun sum(a:Int,b:Int):Int{ //函数有返回值 return a+ ...
分类:
其他好文 时间:
2019-11-22 19:04:20
阅读次数:
86
总线锁、缓存锁、MESI缓存一致性协议、CPU 层面的内存屏障 1.JMM定义: Java Memory Model(java内存模型)是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后 ...
分类:
编程语言 时间:
2019-11-22 00:58:53
阅读次数:
76
前言本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(JavaVirtualMachine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Ja
分类:
编程语言 时间:
2019-11-19 00:47:47
阅读次数:
67