首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JVM
订阅
春暖花开爱学习48249
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
由一个Bug来看Java内存模型和垃圾回收
前两天,项目中发现一个Bug。我们使用的RocketMQ,在服务启动后会创建MQ的消费者实例。测试过程中,发现服务启动一段时间后,与RocketMQ的连接就会断掉,从而找不到订阅关系,监听不到数据。 经过回溯代码,发现订阅的逻辑是这样的。将ConsumerStarter类注册到…
弄清Java虚拟机GC的运行过程
GC(Garbage Collection)垃圾收集,JVM一个非常重要的功能。本文将围绕着JVM的GC这个动作展开,来过一遍GC的整个运作过程。 JVM是GC的发起者,准确说是VMThread是GC的发起者,那用什么来进行GC呢?很显然,用到的是垃圾收集器来进行GC的。而垃圾…
对象的创建与内存分配
当 JVM 收到一个 new 指令时,会检查指令中的参数在常量池是否有这个符号的引用,还会检查该类是否已经被加载过了,如果没有的话则要进行一次类加载。 使用指针碰撞的前提是堆内存是完全工整的,用过的内存和没用的内存各在一边每次分配的时候只需要将指针向空闲内存一方移动一段和内存大…
突发奇想-怎么写一个死锁?
刚把手头上的项目代码撸完,闲来看看博客,然后就看到了线程这块的东西。之前有简单的记录过线程和进行的零碎知识。 看着看着就想着怎么能写一个死锁呢,打开eclipse,突然感觉无从下手;之前都是一直在解决阻塞、死锁这些问题,现在反过来去写一个死锁感觉有点莫名奇妙。。。 ok,写一个…
好好说说Java中的常量池之Class常量池
在Java中,常量池的概念想必很多人都听说过。这也是面试中比较常考的题目之一。在Java有关的面试题中,一般习惯通过String的有关问题来考察面试者对于常量池的知识的理解,几道简单的String面试题难倒了无数的开发者。所以说,常量池是Java体系中一个非常重要的概念。 谈到…
深入理解synchronized关键字
synchronized是并发编程中重要的使用工具之一,我们必须学会使用并且掌握它的原理。 JVM自带的关键字,可在需要线程安全的业务场景中使用,来保证线程安全。 锁的是当前类或者指定类的Class对象。一个类可能有多个实例对象,但它只可能有一个Class对象。 使用synch…
Synchronized原理
synchronized是java中加锁的关键字,可以用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程可以执行这段代码。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。然而,当一个线程访问object的一个加锁代码块…
JVM:Java对象的创建、内存布局 & 访问定位 全过程解析
本文全面讲解JVM中的Java对象的创建、内存布局 & 访问定位 过程
Java代码的编译与反编译那些事儿
在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。 机器语言(Machin…