Below you will find pages that utilize the taxonomy term “java”
Java GC垃圾收集
概述 GC的三个问题: 哪些内存需要回收 什么时候回收 如何回收 Java 是自动垃圾回收的语言,所回收的内存区域指堆和方法区,主要面向占用大部分内存的堆区。类如线程栈这种,执行
Java NIO理解
理解好Java NIO前提要熟悉IO模型,IO复用(以epoll为例)、非阻塞IO的基础知识。java.nio抽象出来一些类或接口,底层实际是对epoll等系统调
Java synchronized实现原理
synchronized是Java中的关键字,提供了一种对共享资源互斥访问的并发控制,也可以作为线程同步的一个工具。这里我们看下synchronized背后的实
Java ThreadLocal原理
为什么要有ThreadLocal 多线程利用锁来解决共享变量的问题,那如果每个线程都有自己的一份变量,就不涉及到线程安全的事情了。 当然这个变量不是方法里线程栈上的
Java YoungGC的一次排查优化
问题发现 线上报警发生频繁young gc 初步排查 频繁ygc很快就结束了,持续几十秒。没有dump日志或者统计信息可看。 初步排查,是最近刚上线一个功能,10点整有外部
Java 在线调试利器 Arthas
Arthas 简介 为什么要用它,能做什么 开发测试中经常遇到需要调试的时候,比如代码走到某个调用方法时这里的参数是什么值,方法出参是什么值?代码是否走了某个方法?优化接口耗时
Java8 总结笔记
Java8 给出了很多新特性,让Java编程更丝滑。如引入Stream流处理、Lambda表达式、默认方法、Optional处理等等。这里做个应用总结。 stream 构建stream
Java常见面试题解析
1. 内存区域划分 程序计数器PC 和操作系统的PC类似,Java虚拟机也需要,都是指执行下一条的命令。每个线程私有的。 虚拟机栈 也可以称作线程栈,每个线程私有的。在每个
Java日期处理
引言 在各种语言编程中,日期和时间的处理都是一个常见的需求。Java中还特殊一点,在Java8 前后提供了不同的日期和时间 API,它们在设计和使用上有很大的差异。本
Java条件变量之阻塞队列实现
条件变量概念 条件变量,不需要代码层面盲目轮询一个条件,线程可以等待直到有其他线程唤醒。 条件变量使用 条件变量的使用,通常是基于一个互斥锁,并在while循环条件中
Java线程池
线程池的实现原理用一句话理解:维持多个线程和一个阻塞队列。队列里的放的是待执行任务,线程从队列里循环获取任务并执行。
Java集合容器一览
说到Java容器集合,忍不住要对比下Go。 Java要掌握的语法和API更多,相比来说Go要更简洁。但另一个角度看,Java提供了非常丰富的类和API,这点Go就
JUC 常用并发组件
这里列举几个常用的并发组件:
- Semaphore
- CountDownLatch
- CyclicBarrier
- SynchronousQueue
JUC 并发组件CompletableFuture
优势 不会阻塞当前线程,如主线程后续逻辑; 异常处理 多个异步任务的编排 函数式编程、链式处理等 基本原理 CompletableFuture 同样实现了之前的 Future ,此外新增加了接口 CompletionSta
LRU算法
LRU介绍 LRU(Least Recently Used)最近最少使用算法,通常在缓存策略中使用。操作系统在内存管理中,对页的置换有应用这一算法。 通常缓存空间有限,因此当空间满的
Reactor模式
服务器基础 三种fd 认识三个fd listenfd connfd clientfd 服务器监听连接请求 accept 返回connfd,后续和客户端的通信fd 客户端进行connect连接请求的 clientfd 基本服务器模型 单线程阻塞 int listenfd;
Spring 原理入门
IOC-对象池 IOC 控制反转,Bean 对象由 Spring 来托管(生命周期),这些对象所在的位置暂且称为 Bean 的对象池(Map)。Bean 对象的创建除了实例化,还经历了哪些步骤最终
SpringBoot bean的常用扩展点
了解Spring这些扩展点,有助于我们编写更优雅的代码。扩展点的具体应用实践,我们可以多看优秀的源码借鉴思路。 扩展点顺序 【1】BeanFactoryPostPr
SpringBoot 如何开发一个starter组件
引言 在SpringBoot生态系统中,starter组件是一种非常重要的机制,它简化了依赖管理和自动配置的过程。这里介绍如何开发自己的SpringBoot-st
设计模式:单例模式与线程安全
模式说明 单例模式,顾名思义,JVM全局下某Class只有一个实例对象。 使用场景 一个全局使用的类避免频繁地创建与销毁,节省系统资源。 理解重点 构造函数私有 统一访问入
设计模式:策略+工厂+模板方法 混合使用
模式说明 策略工厂: 策略模式+工厂模式 工厂模式用来生成策略 模板方法 模板方法里组装策略方法 使用场景 策略模式 自然要求是 完成一件事情,其间有不同的业务场景区分。 工厂模式
设计模式:装饰器模式应用
模式说明 装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为
设计模式:责任链、观察者模式在Spring下的应用
模式说明 责任链模式: 本本上的定义,责任链模式避免了请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到