勇往直前的专栏

写给以后的自己

骚操作 | 不重启 JVM,替换掉已经加载的类,偷天换日?

在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话: “Debug一下吧。” “线上机器,没开Debug端口。” “看日志,看看请求值和返回值分别是什么?” “那段代码没打印日志。” “改代码,加日志,重新发布一次...

2019-07-02 10:11:13

阅读数 156

评论数 1

某团面试题:JVM 堆内存溢出后,其他线程是否可继续工作?

来源:http://sina.lt/gqaM 最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。 由于题目中给出的OOM,java中OOM又分很多类...

2019-06-26 11:21:30

阅读数 39

评论数 0

JVM 最多支持多少个线程?

McGovernTheory在StackOverflow提了这样一个问题: Java虚拟机最多支持多少个线程?跟虚拟机开发商有关么?跟操作系统呢?还有其他的因素吗? Eddie的回答: 这取决于你使用的CPU,操作系统,其他进程正在做的事情,你使用的Java的版本,还有其他的因素。我曾...

2019-06-20 15:19:49

阅读数 185

评论数 0

两道JVM面试题,竟让我回忆起了中学时代!

中学授课模式 考虑到可能有部分粉丝对JVM参数不清楚,所以我们参照中学的授课模式,给大家做一些知识上的普及。理论上,JVM参数主要分为三类 1.标配参数 该类型参数在JDK各个版本之间稳定,很少有大的变化。比如查看版本号 java-version 2.X参数 这些用的不多,看看就好...

2019-06-18 13:18:20

阅读数 132

评论数 0

图解 Java 垃圾回收机制,写得非常好!

原文:https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html 译文:https://www.oschina.net/translate/java-gc 翻译:Rhys_Lee, AzureS...

2019-06-06 13:44:34

阅读数 244

评论数 0

JVM 与 Linux 的内存关系详解

来源:美团技术团队 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m。 从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存...

2019-06-06 13:37:47

阅读数 28

评论数 0

蚂蚁面试:字符串在JVM中如何存放?

字符串对象在JVM中可能有两个存放的位置:字符串常量池或堆内存。 使用常量字符串初始化的字符串对象,它的值存放在字符串常量池中; 使用字符串构造方法创建的字符串对象,它的值存放在堆内存中; String提供了一个API,java.lang.String.intern(),这个A...

2019-06-03 09:52:42

阅读数 32

评论数 0

这 17 个 JVM 参数,高级 Java 必须掌握!

作者:SimpleSmile cnblogs.com/Simple-Object/p/10272326.html 前言 大家都知道,jvm在启动的时候,会执行默认的一些参数。一般情况下,这些设置的默认参数应对一些平常的项目也够用了。但是如果项目特别大了,需要增加一下堆内存的大小、或者是系统...

2019-05-22 23:22:58

阅读数 38

评论数 0

拯救 Out Of Memory,8个案例带你飞!

来自:唐尤华 https://bloggceasy.files.wordpress.com/2015/05/outofmemoryerror2.pdf 1. Java 堆空间 发生频率:5颗星 造成原因 无法在 Java 堆中分配对象 吞吐量增加 应用程序无意中...

2019-05-21 19:45:49

阅读数 42

评论数 0

跟面试官聊到JVM,他99%会让你谈谈这个问题!

本文转载自微信公众号:王磊的博客 但凡问到 JVM(Java 虚拟机)通常有 99% 的概率一定会问:在 JVM 中如何判断一个对象的生死状态? 本文就来聊聊这个问题,判断对象的生死状态的算法有以下几个: 1、引用计数器算法 引用计算器判断对象是否存活的算法是这样的:给每一个对象设置一个...

2019-05-17 13:51:19

阅读数 59

评论数 0

经典面试题 | 讲一讲JVM的组成

来源:王磊的博客 JVM(Java 虚拟机)算是面试必问的问题的了,而但凡问 JVM 一定会问的第一个问题就是:讲一讲 JVM 的组成?那本文就注重讲一下 JVM 的组成。 首先来说 JVM 的组成分为,整体组成部分和运行时数据区组成部分,一般开发者关注的和面试官问的都是后者,但本文会详细讲...

2019-05-06 01:00:22

阅读数 18

评论数 0

JVM 发生 OOM 的 8 种原因、及解决办法

1. Java 堆空间 发生频率:5颗星 造成原因 无法在 Java 堆中分配对象 吞吐量增加 应用程序无意中保存了对象引用,对象无法被 GC 回收 应用程序过度使用 finalizer。finalizer 对象不能被 GC 立刻回收。finalizer 由...

2019-04-25 19:49:15

阅读数 142

评论数 1

JVM发生频繁 CMS GC,罪魁祸首是这个参数!

了解 CMS GC 的同学,一定知道 -XX:CMSScavengeBeforeRemark 参数,它是用来开启或关闭在 CMS-remark 阶段之前的清除(Young GC)尝试。 大家都知道CMS GC 只会回收 OldGen 的对象,那为什么需要这个参数? 由于 YoungGen 存在引...

2019-04-08 15:39:04

阅读数 164

评论数 0

生产环境JVM内存溢出案例分析

如果我们所在公司的业务量比较大,在生产环境经常会出现JVM内存溢出的现象,那我们该如何快速响应,快速定位,快速恢复问题呢? 本文将通过一个线上环境JVM内存溢出的案例向大家介绍一下处理思路与分析方法。 案例:架构组接到某项目组反馈,Zabbix监控上显示JMX不可用,请求协助处理。 分析思路...

2019-04-07 15:52:00

阅读数 45

评论数 0

听说又被 JVM 内存区域方面的面试题给虐了?看看这篇文章吧!

本文转载自微信公众号:JavaGuide 基本问题 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针两种方式) 拓展问题 String类和常量池 8种基本类型的包装类和...

2019-03-28 23:40:03

阅读数 133

评论数 0

一些长时间GC停顿问题的排查及解决办法

对于许多企业级应用,尤其是OLTP应用来说,长暂停很可能导致服务超时,而对这些运行在JVM上的应用来说,垃圾回收(GC)可能是长暂停最主要的原因。本文将描述一些可能碰到GC长暂停的不同场景,以及说明我们如何排查和解决这些GC停顿的问题。 下面是一些应用在运行时,可能导致GC长暂停的不同场景。 ...

2019-03-28 23:21:07

阅读数 110

评论数 0

JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略

JVM 配置常用参数 堆参数 回收器参数 如上表所示,目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种。并行和并发 GC 的策略通过 UseParallelGC 和 UseConcMarkSweepGC 来指定,还有一些细节的...

2019-03-25 09:43:44

阅读数 88

评论数 0

Minor GC、Major GC和Full GC之间的区别

在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一些疑惑。 文章要求读者熟悉 JVM ...

2019-03-19 10:09:00

阅读数 246

评论数 0

无责任书评:每个Java程序员都应该深入理解Java虚拟机!

Java这门语言的发展是很有意思的,它不像Python, Ruby 等完全是开源社区驱动,也不像C#,VB.NET主要由微软操刀。它是一个以Oracle(之前是Sun)为主,各大巨头一起参与,一起制定标准的一门语言。 想对Java添加一点特性, 得走JCP流程,巨头们要审查,看看对自己是否有利,...

2019-03-14 09:45:56

阅读数 167

评论数 0

一次生产的 JVM 优化案例

背景 生产环境有二台阿里云服务器,均为同一时期购买的,CPU、内存、硬盘等配置相同。具体配置如下: 节点 CPU 内存 硬盘 其它 A 2CPU 4G 普通云盘 Centos6.4 64位+JDK1.8.0_121 B 2CPU ...

2019-03-09 15:30:58

阅读数 170

评论数 0

提示
确定要删除当前文章?
取消 删除