05 2024 档案
摘要:参考: UNIX下的五种IO模型 10分钟看懂, Java NIO 底层原理 Linux 五种网络IO模式(阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO) 1.什么是IO 根据冯.诺依曼结构,计算机结构分为 5 大部分:运算器、控制器、存储器、输入设备、输出设备。 操作系统为了保证稳定
阅读全文
摘要:参考文章: jvm垃圾回收器-G1 ZGC篇 G1与ZGC 一文彻底搞懂八种JVM垃圾回收器 0.是什么 垃圾回收(Garbage Collection,GC)是Java虚拟机(JVM)的一项功能,用于自动管理内存。 其主要任务是回收不再被引用的对象所占用的内存,以便该内存可以被重新分配和使用。 1
阅读全文
摘要:参考: 面试必问,JVM内存模型详解 一篇文章掌握整个JVM,JVM超详细解析!!! JVM内存模型深度刨析 图灵课堂-JVM极简教程(视频) 0.是什么 本文基于HotSpotJVM JVM是Java Virtual Machine的缩写,即Java虚拟机。它能够运行编译后的 Java 字节码,使
阅读全文
摘要:1.背景 先来复习下URL请求的基本知识 HTTP的早期设计主要考虑了基本的文档检索需求以及表单提交功能,这直接影响了后来对POST请求和内容类型的发展。 1.1 请求方法 HTTP(超文本传输协议)最初设计的目的是为了支持万维网上的文档检索,这涉及到请求HTML页面、图像、视频等静态资源。 GET
阅读全文
摘要:1.背景 一个.java文件如何运行起来的。 在此之前,我们先了解下一些基本知识。 1.1 lib和dll 参考:LIB和DLL的区别与使用 大致就是说,lib是编译时用到的,dll是运行时用到的。 在咱们的jdk文件夹中搜索,是能找到一个jvm.dll文件的。 1.2 java.exe jre文件
阅读全文
摘要:参考文章: ReentrantLock学习(三)公平锁与非公平锁 0.什么是ReentrantLock ReentrantLock 是一种提供了可重入、灵活锁定控制和支持公平锁与非公平锁选择的互斥锁。 ReentrantLock 是 java.util.concurrent.locks 包中的一个类
阅读全文
摘要:0.是什么(What) wait(), notify(), 和 notifyAll()方法都是Object类的一部分,用于实现线程间的协作。 1.为什么(Why) 线程的执行顺序是随机的(操作系统随机调度的,抢占式执行),但是有时候,我们希望的是它们能够顺序的执行。 所以引入了这几个方法,使得我们能
阅读全文
摘要:文章目录层级较多,参考我这篇文章来进行展开,方便阅读:博客园SimpleMemory主题如何浮动目录显示 参考文章: synchronized底层monitor原理 Synchronized实现原理,你知道多少? Java对象的内存布局详解——超市薯片是怎么摆在货架上的? 【JUC】Java对象内存
阅读全文
摘要:0.背景 在[Java-线程-并发]这篇文章中,我们引入了并发场景下的一些问题,并在末尾给出了几种常见的解决方案。 1.方案 1.1 synchronized synchronized 是Java中的一个关键字,用于提供同步机制,保证多线程环境下对共享资源的安全访问。 通过使用 synchroniz
阅读全文
摘要:0.背景 在经典八股文中,我们会背: 啊,hashmap是线程不安全的,concurrentHashMap是线程安全的。 然后呢,又背: 啊,为啥ConcurrentHashMap是安全的,因为加锁了。 好好好,接着八股: 啊,啥啥分段锁。 本文,结合实际例子来进行分析,这他妈的并发、并发问题,到底
阅读全文
摘要:0.背景 参考资料:Java线程池实现原理及其在美团业务中的实践 在 Java 早期,每次创建线程时,都要涉及到线程的创建、销毁以及资源管理,这对于系统的性能和资源利用率是一种浪费。 因此,Java 提供了线程池的概念,以提高线程的管理效率和性能。 资源管理优化:传统的线程创建和销毁需要涉及系统资源
阅读全文
摘要:0.背景 借鉴抖音“老猿说开发”总结的一句口诀。 索引可能失效场景如下:模型数空运最快 序号 关键字 含义 解释 1 模 模糊查询 当使用模糊查询(比如使用LIKE操作符)时,如果查询条件的开头使用了通配符(如%),那么索引可能会失效。因为通配符在查询开始位置时,数据库无法利用索引进行高效的检索,需
阅读全文
摘要:0.背景 在mysql的并发访问中,有几个典型的并发场景: 读-读:无需处理,都是读取,不会对数据有影响。 写-写:由于都涉及到数据的修改,不可能乱改,所以没有较好的方式来处理,一般都得加锁。 读-写:读写场景,加锁当然ok。不过读操作是很频繁的,一但写数据就不让读取了,这种情况是让人很难受的。 M
阅读全文
摘要:0.背景 在数据库中,事务是一组数据库操作,可以将事务操作视为一个基本的工作单元。 1.事务的基本特性 事务的基本特性“ACID” 对于事务呢,就是这一组sql操作,要确保ACID这4个基本特性。 哎,八股文不好背,我记忆方式是:一元吃个(原持隔) 原子性(Atomicity):事务中的所有操作要么
阅读全文