Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。 这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》 的规定,Java虚拟机所管理的内存将会包括以下几个 ...
分类:
其他好文 时间:
2020-05-30 22:09:29
阅读次数:
71
JMM内存模型 JMM即Java内存模型(Java Memory Model)。可以理解为它是一种抽象出来的硬件存储模型的规范。 根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Me ...
分类:
其他好文 时间:
2020-05-26 10:32:42
阅读次数:
88
1.JVM内存模型 ?程序计数器:当前线程字所执行节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有。 ?Java虚拟机栈:存放基本数据类型,对象的引用,方法出口等,线程私有。 ?本地方法栈:和虚拟栈类似,不过它服务于本地方法,线程私有。 ?Java堆:Java内存中最大的一块,所有对 ...
分类:
编程语言 时间:
2020-05-21 21:18:05
阅读次数:
64
jvm细化图: VM的内存部分则是由方法区(Method Area)、JAVA堆(Heap)、虚拟机栈(Stack)、程序计数器、本地方法栈这几部分组成;除此以外,在概念中还有一个直接内存的概念,事实上这部分内存并不属于虚拟机规范中定义的内存区域,但是因为在JDK1.4+后新加的NIO类,以及JDK ...
分类:
编程语言 时间:
2020-05-21 19:01:10
阅读次数:
51
# 二面1. jvm内存管理机制,分***论2. 说项目(主要就是项目,说了很久)3. 集群一般有哪些实现方式4. 分布式的注册中心怎么实现5. 有哪些分布式开源框架,K8s了解么6. 家乡在哪?对来北京工作有什么看法7. 你有什么想问我的# 三面:1. 本科和研究生成绩2. 一个聊天应用,我和你通... ...
分类:
编程语言 时间:
2020-05-20 12:12:54
阅读次数:
70
工作相关使用到的JDK类及其相关源码、机制 设计模式,设计模式在工作中用到了哪些,具体使用场景 并发类的相关知识,线程安全、锁机制、信号量、闭锁、栅栏、线程池等 框架相关,Spring相关机制、Spring MVC相关机制、MyBatis相关机制、使用的细节点、框架实现原理等 JVM,内存布局、垃圾 ...
分类:
其他好文 时间:
2020-05-18 19:11:17
阅读次数:
66
一、JVM内存区域JVM内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA堆、方法区】、直接内存。二、线程私有区域线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束而创建/销毁。程序计数器:是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。正在执行java方法的话,计数器记录的是虚拟字节码指令的地址(当前指令的地址)。如果还是native方
分类:
其他好文 时间:
2020-05-18 09:19:10
阅读次数:
68
一、定义 1、堆:FIFO队列优先,先进先出。jvm只有一个堆区被所有线程所共享!堆存放在二级缓存中,调用对象的速度相对慢一些,生命周期由虚拟机的垃圾回收机制定。 2、栈:FILO先进后出,暂存数据的地方。每个线程都包含一个栈区!栈存放在一级缓存中,存取速度较快,“栈是限定仅在表头进行插入和删除操作 ...
分类:
其他好文 时间:
2020-05-18 00:25:23
阅读次数:
89
原文 JVM内存主要分为三部分线程私有(Thread Local)、线程共享(Thread Shared)、直接内存(Direct Memory)。 1|0线程私有 线程私有区域从字面意思可以看出,这部分内存,是归属于每个线程独立拥有的部分。其生命周期与线程生命周期一致。线程私有区域可以分为两部分程 ...
分类:
其他好文 时间:
2020-05-15 09:30:34
阅读次数:
71
JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配; 方法区存储类信息、常量、静态变量等数据,是线程共享的区域 ...
分类:
其他好文 时间:
2020-05-10 10:41:45
阅读次数:
49