首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JVM
订阅
冰小毛
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
深入理解Java虚拟机(一)——Java内存区域
Java虚拟机在运行Java程序的过程中,会把总的内存划分为多个内存数据区域,包括:程序计数器、虚拟机栈、本地方法栈、堆、方法区。每个内存数据区域功能、特点各不相同。 程序计数器是内存占用较小的一块区域,属于线程私有,可以看做是字节码执行的行号指示器。 ●字节码解释器工作是就是…
万万没想到,JVM内存结构的面试题可以问的这么难?
在我的博客中,之前有很多文章介绍过JVM内存结构,相信很多看多我文章的朋友对这部分知识都有一定的了解了。 以上10道题,如果您可以全部准确无误的回答的话,那说明你真的很了解JVM的内存结构以及内存分配相关的知识了,如果有哪些知识点是不了解的,那么本文正好可以帮你答疑解惑。 Ja…
深入理解Java虚拟机(十)——类加载过程
类加载的全过程包括:加载、验证、准备、解析、初始化,下面介绍这5个步骤虚拟机所做的工作。 1. 加载 加载是类加载过程的一个阶段,这两个概念不要混淆。 ●通过类的全限定名称获取到类的二进制字节流。 ●将这个字节流的静态数据结构转化为方法区的运行时数据结构。 ●为该类生成一个Ja…
深入理解Java虚拟机(三)——垃圾收集策略(1)
1. 垃圾收集概述 ●Java内存区域分为:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中程序计数器、虚拟机栈、本地方法栈均是线程私有的,也即意味着这部分内存区域随线程生而生,随线程灭而灭。其中栈帧随方法的进入和退出执行入栈和退栈操作(退栈后栈帧所占的内存也将释放)。综上,…
深入理解Java虚拟机(二)——对象的创建
1.检查准备创建的对象所属类是否已被加载,若没有,则先加载该类;若加载完毕,进行下一步。 2.为新生对象分配空间。类加载完成后,对象所需的空间是完全确定下来的,分配空间就是在内存中划出一小块空间分配给对象。分配方式有两种: ●指针碰撞:当我们使用的垃圾收集算法会导致已被使用在内…
深入理解Java虚拟机(六)——对象内存的分配策略
1.在Java的内存区域中,本地方法栈、虚拟机栈、程序计数器这三块内存区域的分配和回收具有确定性,他们在编译阶段就能确定需要分配的空间大小。此外,这些内存区域属于线程私有,随线程生而生,随线程灭而灭。综上,虚拟机不需要在这部分内存区域花费太多精力用于垃圾回收。 2.方法区存储的…
关于JVM堆外内存的一切
Java中的对象都是在JVM堆中分配的,其好处在于开发者不用关心对象的回收。但有利必有弊,堆内内存主要有两个缺点:1.GC是有成本的,堆中的对象数量越多,GC的开销也会越大。2.使用堆内内存进行文件、网络的IO时,JVM会使用堆外内存做一次额外的中转,也就是会多一次内存拷贝。 …
深入理解Java虚拟机(十一)——类加载器
在类加载过程中的加载阶段,其任务之一是通过类的全限定名称来获取此类的二进制字节流,而虚拟机规范并没有限制二进制字节流的来源方式,因此类加载器就是用来通过指定的途径加载字节流的。 对于任意一个类来说,它的唯一性是通过类加载器和这个类本身来确定的,也就是说即便两个类加载自同一个Cl…
深入理解java虚拟机
以上问题在《深入理解java虚拟机》这本书里都有详尽的解答。 一. java各版本发展史 02年发布1.4版本,走向成熟的版本。代表技术:正则,异常链,NIO,日志类,xml解析等 06年发布1.6版本,使用java6命名。代表技术:锁,同步,垃圾收集,累加值等算法优化。宣布开…
感受lambda之美,推荐收藏,需要时查阅
一、引言二、java重要的函数式接口1、什么是函数式接口1.1 java8自带的常用函数式接口。1.2 惰性求值与及早求值2、常用的流2.1 collect(Collectors.toList())2.2 filter2.3 map2.4 flatMap2.5 max和min2…