![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jdk
文章平均质量分 92
老艮头
这个作者很懒,什么都没留下…
展开
-
jvm:jvm GC日志解析:G1日志解析
1、背景简介1.1、应用背景介绍1)业务特点:流量高峰都集中在白天,凌晨流量很低。2)应用特点:对外提供了很多核心业务接口,早6点之后,流量逐渐增加。凌晨会通过自动化调度,跑一些数据处理任务,主要都是核心业务数据的缓存预热【从DB(mysql/es)读取,写入到redis】。1.2、jdk版本(openjdk)由于oracle声明将针对企业用户对于JDK 8 u191之后的版本需要付费购买商业许可。所以公司统一都切换到了openjdk,目前应用的版本是:openjdk 1.8.0_272-原创 2021-12-06 12:09:33 · 9368 阅读 · 2 评论 -
java io里的BufferedInputStream为什么性能高
java io流的分类从读写角度拆分读取流(InputStream、Reader的子类)写入流(OutputStream、Writer的子类)按操作数据类型可分为字节流:所有InputStream、OutputStream的子类都是字节进行操作。字符流:所有Reader、Writer的子类都是针对字符进行操作。按处理类型可分为终端流(节点流):个人理解,觉得终端流更形象贴切一些。如果某个流是直接和磁盘、内存、网络等物理终端联通来进行读写操作的,这种流就可以称为终端流或者原创 2020-05-23 17:36:22 · 1837 阅读 · 4 评论 -
ClassLoader中那些傻傻分不清的概念
ClassLoader中那些傻傻分不清的概念ClassLoader有几种根加载器你的java程序想要运行,就必须有一个运行环境,这个运行环境既包括底层的jvm支持,还包括基础的jre类库支持。那么这些基础的jre类本省也是java的class,所以这些class的加载就是由native代码实现的bootstrap class loader来加载的。根加载器主要加载的是%JAVA_HOME%...原创 2020-04-25 20:16:44 · 250 阅读 · 0 评论 -
JDK8:HashMap源码解析:remove方法、removeNode方法
一、概述在HashMap中如果要根据key删除这个key对应的键值对,需要调用remove(key)方法,该方法将会根据查找到匹配的键值对,将其从HashMap中删除,并且返回键值对的值。二、方法解析我们先来看remove方法/*** 从HashMap中删除掉指定key对应的键值对,并返回被删除的键值对的值* 如果返回空,说明key可能不存在,也可能key对应的值就是null...原创 2018-07-20 23:24:56 · 4076 阅读 · 0 评论 -
JDK8:HashMap源码解析:TreeNode类的putTreeVal方法
一、概述我们都知道,目前HashMap是采用数组+链表+红黑树的方式来存储和组织数据的。在put数据的时候,根据键的hash值寻址到具体数组位置,如果不存在hash碰撞,那么这个位置就只存储这么一个键值对。参见:put方法分析如果两个key的hash值相同,那么对应数组位置上就需要用链表的方式将这两个数据组织起来,当同一个位置上链表中的元素达到8个的时候,就会再将这些元素构建成一个红黑...原创 2018-06-09 18:31:48 · 3798 阅读 · 2 评论