随笔分类 - Java
摘要:服务异常报警,cpu 100% 1.执行top命令 查询进程ID为 17239 2.查看进程内的哪些线程CPU 高 top -Hp 17239 3.通过jstack生成dump信息 jstack 17239 > ./jstack-$(date + %Y%m%d%H%M%s).txt 查找线程dump
阅读全文
摘要:1、阻塞IO模型 传统的IO模型,即在数据读写的过程中会发生阻塞现象。当用户线程发出IO请求之后,内核回去查看数据是否就绪,如果没有就绪就等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回数据给用户线程,用户线程才解除阻塞状态。典型的阻塞
阅读全文
摘要:前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性
阅读全文
摘要:public class A{ private B b; } public class B{ private int id; } //对于List<A> 按照B对象的id进行排序: list.stream().sorted(Comparator.comparing(x-> x.getB().getI
阅读全文
摘要:java中的引用分为四种,分别是强引用、软引用、弱引用、虚引用。四种引用的区别不同如下: 类型 解释 强引用(Strong Reference) 强引用在程序代码中普遍存在,类似Object obj = new Object(),这类引用垃圾收集器永远不会回收掉被引用的对 象。 软引用(Soft R
阅读全文
摘要:一、什么是单例? 单例模式指的是保证一个类只有一个实例,并且提供一个全局可以访问的入口。举个例子:就像分身术,虽然分身有很多,但是每一个分身都对应同一个真身。 二、为什么需要单例? 第一、为了节省内存、节省计算。在很多时候我们只需要一个单例就够了,如果出现了更多实例,反而属于浪费。举个例子(Exam
阅读全文