标签:垃圾回收

Java

记一次FullGC的排查经历–从FullGC日志到业务代码

5

尖兵 发布于 2020-07-26

问题的发生 简单介绍下我们服务的背景,我们的服务是一个使用类似dubbo的RPC框架以及若干Spring全家桶组合起来的微服务架构,大致结构可以参考下图。 Java服务使用的是CMS的垃圾回收器。 某天突然收到一台实例(即一个Java应用)产生FullGC日志的报警,如上图红色标...

阅读(1051)评论(0)赞 (0)

Java

JVM内存模型系列(堆、方法区以及对象和GC)

23

Harries 发布于 2020-07-26

上文已经介绍了JVM内存模型中线程私有的部分(虚拟机栈、本地方发栈、程序计数器),那么本篇文章就来探讨下JVM中线程共享的区域:堆、方法区 方法区 方法区是JVM规范中定义的一个逻辑内存,在JDK1.8以前对方法区的实现叫做“永久代”,然而在JDK1.8以后讲“永久代”废弃,改为...

阅读(1057)评论(0)赞 (0)

Java

JVM系列之:String.intern和stringTable

1

dulong 发布于 2020-07-26

StringTable是什么?它和String.intern有什么关系呢?在字符串对象的创建过程中,StringTable有起到了什么作用呢? 一切的答案都在本文中,快来看看吧。 intern简介 intern是String类中的一个native方法,所以它底层是用c++来实现的...

阅读(56)评论(0)赞 (0)

Java

就因为没看这篇文章面试失败了

4

hanze 发布于 2020-07-26

前言 熬夜整理了一份java基础面试题,希望大家支持,如果文中有错误希望大家指正; 公众号:知识追寻者 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 一 java基础面试 ...

阅读(69)评论(0)赞 (0)

Java

Java垃圾回收详解

14

Harries 发布于 2020-07-25

1.GC介绍 什么是垃圾回收(GC)? 垃圾回收,顾名思义,便是将已经分配出去的,但却不再使用的内存回收回来,以便能够再次分配。 在 Java 虚拟机的语境下, 垃圾 指的是死亡的对象所占据的堆空间。 Java 虚拟机中的垃圾回收器采用 可达性分析 来探索所有存活的对象。它从一系...

阅读(96)评论(0)赞 (0)

Java

JVM系列-读懂 GC 日志

4

xiaoli.wang 发布于 2020-07-25

Java 生态发展到今天,JVM (Java Virtual Machine)的价值可能已经超过了 Java 语言本身。 而 GC (垃圾回收)机制也是 JVM 的核心之一,在程序运行的过程中,GC 的过程会以日志的形式记录下来,看懂 GC 日志是研究 GC 机制的基础,GC日志...

阅读(83)评论(0)赞 (0)

Java

JVM-运行时数据区—方法区

9

xiaoli.wang 发布于 2020-07-25

在jdk7及以前,习惯上把方法区称为永久代。jdk8开始,使用元空间取代了永久代。 本质上,方法区和永久代并不等价。仅是对hotSpot而言的。《java虚拟机规范》对如何实现方法区,不做统一要求。例如:BEA JRockit/IBM J9中不存在永久代的概念。 现在看来,当年使...

阅读(71)评论(0)赞 (0)

Spring

苦苦面试了半年,上个月凭借着这份面试题,我一举拿下了阿里,字节跳动和京东的offer!

9

xirruiqiang 发布于 2020-07-24

前言 最近收到很多粉丝的私信,有工作几年的,也有即将面临毕业的学生党。都是来跟我说金九银十马上到了,自己想去冲击面试一波大厂,问我有没有相关的面试题分享。听到后我也是赶紧为大家整理了一份,话不多说满满的干货都在下面了,友情提示,文章篇幅齐全,全是干货慢慢观看!!! Redis 什...

阅读(97)评论(0)赞 (0)

Spring

Spring 为啥默认把bean设计成单例的?这篇讲的明明白白的

6

likai 发布于 2020-07-24

作者:小小木 juejin.im/post/5cab7ebf518825177637b2f9 熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、request、session、global session。 如下图是官方...

阅读(51)评论(0)赞 (0)

Java

Java软引用、弱引用、虚引用原理

1

changyuan.xu 发布于 2020-07-23

在Java中总共有4中核心的引用类型——强引用、软引用、弱引用、虚引用。一般情况下我们往往用到强引用比较多,很少会遇到场景用到其他三种引用,所以对其原理的掌握就更加是一纸空白。此次,恰遇机会就正好研究一下这四种引用的原理,以解己惑。 关于强引用,因为日常使用,大家基本都比较清楚,...

阅读(53)评论(0)赞 (0)

Java

一次年轻代GC长暂停问题的解决与思考,再学一遍JVM吧

7

xirruiqiang 发布于 2020-07-23

问题描述 公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的年轻代GC(流量并不大,并且LB下的每一台服务都会出现该情况) 在这次长暂停之后,每一次的年轻代GC暂停时间又都恢复在20-100ms以内 2s虽然看起来不长,但是对比规...

阅读(79)评论(0)赞 (0)

Java

史上最全的Android面试题集锦(九)

邓龙华 发布于 2020-07-23

原文链接: https://blog.csdn.net/xiangzh… 4、GC机制 垃圾收集器一般完成两件事 检测出垃圾; 回收垃圾; 4.1 Java对象引用 通常,Java对象的引用可以分为4类:强引用、软引用、弱引用和虚引用。 强引用:通常可以认为是通过ne...

阅读(71)评论(0)赞 (0)

Java

五千字的数组拓展,面试官对我竖起大拇指喊停

13

yeseng 发布于 2020-07-23

目录 为什么数组下标从0开始? 数组定义 为什么这么下定义? 定义数组的三种方式 从 ArrayList 源码看数组增删改查 初始化 增加 删除 修改 查找 数组和容器 数组时间复杂度 数组插入,删除优化 容器替代数组? 字节高频算法题:移动零 算法发散 ❝ 没有最完美的数据结构...

阅读(78)评论(0)赞 (0)

Java

深入探究JVM之对象创建及分配策略

4

changyuan.xu 发布于 2020-07-22

@ 目录 前言 Java是面向对象的语言,所谓“万事万物皆对象”就是Java是基于对象来设计程序的,没有对象程序就无法运行(8大基本类型除外),那么对象是如何创建的?在内存中又是怎么分配的呢? 正文 一、对象的创建方式 在Java中我们有几种方式可以创建一个新的对象呢?总共有以下...

阅读(79)评论(0)赞 (0)

Java

难难难难难!对象的创建七连问

12

puefu.he 发布于 2020-07-22

难难难难难!对象的创建七连问 关于 Object o = new Object() 请解释一下对象的创建过程?(半初始化) 加问 DCL 与 volatile 问题?(指令重排) 对象在内存中的存储布局?(对象与数组的存储不同) 对象头具体包括什么?(markword class...

阅读(86)评论(0)赞 (0)

Java

4.几种常见的垃圾收集器

尖兵 发布于 2020-07-21

1.垃圾收集算法 标记-复制算法、标记-清理算法、标记-整理算法,这三种算法都是在分代收集的机制上成立的 标记-复制算法: 其原理是将内存分成两部分,一部分内存1放对象,一部分内存2为空,当放对象的内存1进行垃圾回收时,会将仍然存活的对象标记起来,然后复制到另一块内存2中,再把内...

阅读(57)评论(0)赞 (0)

Java

看了这篇文章,我搞懂了StringTable

23

xubiao.zhuang 发布于 2020-07-21

好好学习,天天向上 本文已收录至我的Github仓库 DayDayUP :github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往: 目录导航 String应该是Java使用最多的类吧,很少有Java程序没有使用到String的。在Java中创建对象...

阅读(64)评论(0)赞 (0)

Java

10种常见OOM分析——手把手教你写bug

9

刘莉莉 发布于 2020-07-21

点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取 在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。 本篇主要包括如下 OOM ...

阅读(92)评论(0)赞 (0)