[转载]一文读懂Java动态代理

事实上,对于很多Java编程人员来说,可能只需要达到从入门到上手的编程水准,就能很好的完成大部分研发工作。除非自己强主动获取,或者工作倒逼你学习,否则我们好像没必要去真正了解Java编程,或者深入研究JDK运行原理、或者在实际工作中某个模块写一套设计模式、或者纠结一个线程安全问题。我觉得完全没必要了

[转载]Mybatis的API

1、Mybatis架构与核心API不出意外的话,在后续源码剖析相关文章中,我们会对Mybatis的源码进行一次大扫荡,一起挖掘每一处值得大家深入理解/记忆的知识点。而在本文中,我们主要先把Mybatis的架构/层次铺开,俯视Mybatis架构的设计全貌,再把几个硬核的API详细消化。我们先简单揭开M

[转载]MySQL如何设计索引更高效?

前言数据库系列更新到现在我想大家对所有的概念都已有个大概认识了,这周我在看评论的时候我发现有个网友的提问我觉得很有意思:帅丙如何设计一个索引?你们都是怎么设计索引的?怎么设计更高效?我一想索引我写过很多了呀,没道理读者还不会啊,但是我一回头看完,那确实,我就写了索引的概念,优劣势,没提到怎么设计,那

[转载]HashMap剖析

HashMap是一个非常重要的集合,日常使用也非常的频繁,同时也是面试重点。本文并不打算讲解基础的使用api,而是深入HashMap的底层,讲解关于HashMap的重点知识。需要读者对散列表和HashMap有一定的认识。HashMap本质上是一个散列表,那么就离不开散列表的三大问题:散列函数、哈希冲

[转载]二叉树、平衡二叉树、B-Tree、B+Tree

背景一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash、RTree、FullText。本文简要说明一下MySQL的B+Tree索引,以及和其相关的二叉树、平衡二叉树、B-Tree,相关的知识网上很多,为了方便自己更快、清楚的了解,文本聚合一些内容以及个人的一些理解。说明二叉查找树

[转载]SpringBoot @Value 读取配置

一、前言在日常开发中,经常会遇到需要在配置文件中,存储List或是Map这种类型的数据。Spring原生是支持这种数据类型的,以配置List类型为例,对于.yml文件配置如下:test:list:-aaa-bbb-ccc对于.properties文件配置如下所示:test.list[0]=aaate

[转载]深入理解Java线程池核心技术:ThreadPoolExecutor

线程池介绍在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。可能出现服务器在为每个请求

[转载]SynchronousQueue源码分析

问题(1)SynchronousQueue的实现方式?(2)SynchronousQueue真的是无缓冲的吗?(3)SynchronousQueue在高并发情景下会有什么问题?简介SynchronousQueue是java并发包下无缓冲阻塞队列,它用来在两个线程之间移交元素,但是它有个很大的问题,你

[转载]代表Java未来的ZGC深度剖析

JAVA程序最爽的地方是它的GC机制,开发人员不需要关注内存申请和回收问题。同时,JAVA程序最头疼的地方也是它的GC机制,因为掌握JVM和GC调优是一件非常困难的事情。在ParallelOldGC、CMS、G1之后,JDK11带来的全新的「ZGC」为我们解决了什么问题?Oracle官方介绍它是一个

[转载]JAVA 线上故障排查完整流程

线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如 jstack、jmap 等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap 伺候,具体问题