- 技术分享
- JVM
- NIO
- 数据结构
- 算法
- Java
- 设计模式
- Go
- 12-30分布式锁主动续期的入门级实现-自省 | 简约而不简单
- 12-30从React源码角度看useCallback,useMemo,useContext
- 12-30React的setState为什么是异步的
- 12-30如何在Linux下使用密钥设置SSH无密码登录
- 12-30如何恢复 Linux 系统下被删除的文件
- 12-29基于Seata探寻分布式事务的实现方案
- 12-29IO多路复用模型,多线程IO
- 12-29Redis内存模型、数据结构
- 12-28Elasticsearch查询及聚合类DSL语句宝典
- 12-27SpringBoot构造流程源码分析:Web容器类型推断
- 12-27Golang互斥锁如何实现,互斥锁的多线程并发
- 12-27Go 快速入门指南 - 可见性和作用域
-
JVM 调优工具总结篇12-20
大家好,又见面了,我是你们的朋友全栈君。一、jps:虚拟机进程状况工具它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数......
-
JVM 性能调优之 jstat12-19
概述Jstat是JDK自带的一个轻量级小工具。全称“JavaVirtualMachinestatisticsmonitoringtool”,它位于java的bi......
-
JVM 性能调优之 jps12-19
大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。JVM调优是个大话题,涉及的知识点很庞大Java内存模型垃圾回收机......
-
JVM 性能调优之 jinfo12-19
概述jinfo是JDK自带的命令,可以用来查看正在运行的java应用程序的扩展参数,包括JavaSystem属性和JVM命令行参数;也可以动态的修改正在运行的J......
-
JVM 性能调优之 jstack12-19
概述jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或导出Java应用程序中线程堆栈信息。Jstack用法image参数说明:-l长列表.打印关于......
-
JVM 性能调优之 jmap12-19
概述命令jmap是一个多功能的命令。它可以生成java程序的dump文件,也可以查看堆内对象示例的统计信息、查看ClassLoader的信息以及finalize......
-
【JVM】浅谈双亲委派机制的缺陷及打破双亲委派机制11-17
平时做业务开发比较少接触类加载器,但是如果想深入学习Tomcat、Spring等开源项目,或者从事底层架构的开发,了解甚至熟悉类加载的原理是必不可少的。双签委派......
-
【JVM】什么是双亲委派机制,双亲委派有什么用11-16
前言Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象,而且,加载某个类的cla......
-
【NIO】深入分析 Channel 和 FileChannel12-05
上篇文章[【死磕NIO】—深入分析Buffer]介绍了NIO中的Buffer,Buffer我们可以认为他是装载数据的容器,有了容器,还需要传输数据的通道才能完成......
-
【NIO】探索 SocketChannel 的核心原理12-04
聊聊Socket要想掌握SocketChannel,我们就必须先了解什么是Socket。要想解释清楚Socket,就需要了解下TCP/IP。注:本文重点在Soc......
-
【NIO】跨进程文件锁:FileLock12-03
上篇文章(【死磕NIO】—深入分析Channel和FileChannel)已经详细介绍了FileChannel的核心原理及相关API,了解了FileChanne......
-
【NIO】Server Socket Channel到底有哪些缺陷?12-02
阻塞模式我们先看服务端方法:publicstaticvoidmain(String[]args)throwsException{ByteBufferbuffer......
-
【IO】深入分析 Buffer 核心原理11-14
BufferBuffer是一个抽象类,主要用作缓冲区,其实质我们可以认为是一个可以写入数据,然后从中读取数据的内存块。这块内存被包装成NIOBuffer对象,并......
-
【IO】NIO 基础详解11-14
Netty是基于JavaNIO封装的网络通讯框架,只有充分理解了JavaNIO才能理解好Netty的底层设计。JavaNIO由三个核心组件组件:BufferCh......
-
【IO】详解 5 种 IO 模型11-11
要想彻底弄清楚这五种IO模型,我们需要先弄清楚几个基本概念。基本概念什么是IO什么是IO?维基百科上面是这样解释的:I/O(英语:Input/Output),即......
-
【IO】阻塞、非阻塞、同步、异步11-11
同步与异步什么是同步与异步呢?百度百科是这样定义的:同步指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系。异步与同步相对(这解释让我无言相对)所以,......
-
【数据结构】约瑟夫链表-环形链表
一、双向链表双向链表的定义:在单链表的每个结点里再增加一个指向其直接前驱的指针域prior,这样链表......
-
【数据结构】java实现双向链表
一、链表基础链表是一种常见的数据结构,其中运用到了结构体指针,链表可以实现动态存储分配,换而言之,链......
-
【数据结构】java实现单向链表
一、链表基础链表是一种常见的数据结构,其中运用到了结构体指针,链表可以实现动态存储分配,换而言之,链......
-
【排序算法】java实现快排算法
一、快速排序算法是一种基于交换的高效的排序算法,它采用了分治法的思想:1、从数列中取出一个数作为基准......
-
【算法】如何使用java语言实现冒泡排序呢
基本介绍冒泡排序(BubbleSort)的基本思想是:通过对排序序列从前向后(从下标较小的元素开始)......
-
分布式锁主动续期的入门级实现-自省 | 简约而不简单
一、背景如果某个客户端获得锁之后处理时间超过最大约定时间,或者持锁期间内发生了故障导致无法主动释放锁......
-
基于Seata探寻分布式事务的实现方案
1背景知识随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向......
-
SpringBoot构造流程源码分析:Web容器类型推断
用了这么多年的SpringBoot那么你知道什么是SpringBoot的web类型推断吗?估计很多小......
-
是否有必要升级JDK 17,Spring Boot使用JDK17
最近在调研JDK17,并且试着将twelvet微服务升级,在测试环境跑了一段时间。最终,决定了,新项......
-
SpringBoot内置tomcat启动过程及原理
1背景SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多......
-
Mybatis源码解析之执行SQL语句
mybatis操作数据库的过程//第一步:读取mybatis-config.xml配置文件Input......
-
RabbitMQ、RocketMQ、Kafka延迟队列实现
延迟队列在实际项目中有非常多的应用场景,最常见的比如订单未支付,超时取消订单,在创建订单的时候发送一......
-
JDK8 中的 HashMap 链表的长度超过 8 为什么会转换为红黑树?
首先说一说转换为红黑树的必要性:红黑树的插入、删除和遍历的最坏时间复杂度都是log(n),因此,意外......
-
Java 中是如何获取 IP 属地的,IP精准定位
首先需要写一个IP获取的工具类,因为每一次用户的Request请求,都会携带上请求的IP地址放到请求......
-
Java 创建线程池的正确姿势: Executors 和 ThreadPoolExecutor 详解
我们先看Java开发手册上说的:我们可以看一下源码:这里的ThreadPoolExecutor的构造......
-
Spring Bean的生命周期(一图看懂bean生命周期)
Bean的生命周期概括起来有四个阶段:具体如下图所示:1、实例化实例化一个Bean,即new。2、I......
-
循环依赖之手写代码模拟spring循环依赖
本次博客的目标手写spring循环依赖的整个过程spring怎么解决循环依赖为什么要二级缓存和三级缓......
-
Golang互斥锁如何实现,互斥锁的多线程并发
概述对于任一共享资源,同一时间保证只有一个操作者,这种方法称为互斥机制。关键字Mutex表示互斥锁类......
-
Go 快速入门指南 - 可见性和作用域
可见性包通过导出机制控制变量、结构体、函数等数据可见性。只有1个简单的规则:首字母大写,可导出,首字......
-
Go 快速入门指南 - Golang切片(分片)slice详解
概述切片是对数组的一个连续片段的引用。片段可以是整个数组,也可以是数组的一部分(例如数组的第3个元素......
-
Go异常处理优化 try 新提案靠谱吗?想简化错误处理了
在近日新的try提案《proposal:Go2:errorhandling:trystatement......
-
Go基础:函数声明之方法接受者(函数名之前括号中的内容)
什么是方法?方法与函数的区别是,函数不属于任何类型,方法属于特定的类型。普通类型的方法接受者Go语言......