Java知识汇总
文章平均质量分 90
Java学习过程中的一些知识点,整理一下,以后复习方便点。
way365
淡定!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解JDK动态代理
本篇文章深入解析了 JDK 动态代理的原理与应用。首先对比静态代理与动态代理,指出动态代理通过在运行时生成代理类,避免手工编写代理代码,具有更高的灵活性。文章详细剖析了 JDK8 动态代理的实现机制,包括 Proxy、InvocationHandler 的角色划分,以及通过 Klass 元数据与方法表分派实现反射调用的底层原理。结合源码与示例,展示了代理类如何拦截方法调用并织入日志、事务等横切逻辑,最后总结其在 Spring AOP、Dubbo RPC、MyBatis 等框架中的广泛应用。原创 2025-09-15 15:19:24 · 11584 阅读 · 5 评论 -
深入理解MySQL主从架构中的Seconds_Behind_Master指标
本文解析了 MySQL Seconds_Behind_Master 指标的计算逻辑与局限。该指标通过从库当前时间、binlog 事件时间戳及主从时间差计算得出,并在 SQL/I/O 线程状态下有不同表现。但在生产环境中,它并不总是准确:可能出现延迟为 0 却仍滞后主库的情况,系统时间修改会导致失真,长事务会让延迟曲线先升高再瞬间归零,STATEMENT 还会低估延迟。总体而言,Seconds_Behind_Master 大多数场景下仍有参考价值。原创 2025-09-14 21:24:22 · 12684 阅读 · 16 评论 -
Netty中的直接内存是怎么回事?
在 Java 中对象都是在堆内分配的,通常我们说的JVM 内存也就指的堆内内存,堆内内存完全被JVM 虚拟机所管理,JVM 有自己的垃圾回收算法,对于使用者来说不必关心对象的内存如何回收。堆外内存与堆内内存相对应,对于整个机器内存而言,除堆内内存以外部分即为堆外内存。堆外内存不受 JVM 虚拟机管理,直接由操作系统管理。直接内存申请空间调用方法就可以了:和。下图展示了 Buffer 分配在直接内存的功能和作用:。。。这样就,提高了效率。原创 2025-03-20 21:49:50 · 910 阅读 · 0 评论 -
粘包半包以及Netty的解决办法
指通信双方中的一端发送了多个数据包,但在另一端则被读取成了一个数据包,比如客户端发送123、ABC两个数据包,但服务端却收成的却是123ABC这一个数据包。造成这个问题的主要是因为TPC为了优化传输效率,将多个小包合并成一个大包发送,同时多个小包之间没有界限分割造成的。①当使用TCP短连接时,不必考虑沾包问题。②当发送无结构数据,如文件传输时,也不需要考虑沾包问题,因为这类数据只管发送和接收保存即可。原创 2025-03-20 19:24:29 · 762 阅读 · 0 评论 -
netty的ByteBuf比NIO的ByteBuffer哪里高级了?
Netty ByteBuf原创 2025-03-20 19:19:13 · 1036 阅读 · 0 评论 -
Redisson 分布式锁原理
Redisson分布式锁原创 2025-03-20 19:13:48 · 1148 阅读 · 0 评论 -
掌握Java中的ThreadLocal
key不设置成弱引用的话就会造成和entry中value一样内存泄漏的场景。弱引用会在每次GC时回收,无论内存是否足够。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。一旦 key 被回收,ThreadLocalMap 在进行 set、get 的时候就会对 key 为 null 的 Entry 进行清理。原创 2025-03-20 10:38:06 · 1720 阅读 · 3 评论 -
netty的零拷贝,和操作系统的零拷贝有什么区别
Netty零拷贝原创 2025-03-20 10:15:51 · 763 阅读 · 3 评论 -
深入理解HashMap
深入剖析了HashMap的实现原理和源码原创 2021-08-12 22:11:41 · 5279 阅读 · 43 评论 -
深入理解Object中的hashCode()
深入剖析了hashCode的生成策略和用法原创 2021-08-11 17:06:36 · 17448 阅读 · 0 评论 -
课堂派(SpringBoot+Vue)
重庆理工大学软件工程与计算Ⅱ-课堂派原创 2021-06-30 23:57:31 · 8142 阅读 · 16 评论 -
NIO聊天室(群聊+私聊)
功能:群聊+私发+上线提醒+下线提醒+查询在线用户 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency> &l原创 2021-05-10 22:45:08 · 892 阅读 · 12 评论 -
Java基础——多线程
目录什么是多线程进程与线程并行与并发实现多线程继承Thread实现Runnable接口实现Callable接⼝线程池Thread类线程优先级守护线程线程的生命周期sleep方法yield方法join方法interrupt方法线程同步synchronized锁Lock锁线程通信死锁什么是多线程进程与线程并行与并发实现多线程继承Thread实现Runnable接口实现Callable接⼝...原创 2020-04-28 10:59:21 · 1208 阅读 · 5 评论 -
Java基础——泛型
目录一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-04-23 16:41:46 · 1718 阅读 · 4 评论 -
Java基础——IO流
这里写目录标题一. File类1.简单介绍2.基本用法2.1 构造方法2.2 常用方法2.2.1 File类的获取功能2.2.2 File类的判断功能2.2.3 File类的其他功能二. IO流1. 简单介绍2. 节点流(文件流)2.1 FileReader/FileWriter2.2 FileInputStream/FileOutputStream3.缓冲流3.1 BufferedInputSt...原创 2020-04-21 22:22:19 · 2695 阅读 · 5 评论 -
Java基础——异常处理机制
目录异常处理1. 介绍2. 异常类型3. 异常处理的详细操作3.1 声明异常3.2 抛出异常3.3 捕获异常与finally子句3.4 从异常中获取信息4. 创建自定义异常类异常处理1. 介绍如果一个用户在运行程序期间,由于程序的错误或一些外部环境的影响造成用户数据的丢失,用户就有可能不再使用这个程序了, 为了避免这类事情的发生, 至少应该做到以下几点:向用户通告错误保存所有的工作结果...原创 2020-04-15 10:53:10 · 3797 阅读 · 3 评论 -
Java基础——抽象类,接口和内部类(含JDK8接口新特性)
目录一 .抽象类1. 介绍1.1基本用法1.2 抽象类的匿名子类2. 注意事项二. 接口1.介绍1.1 JDK7及以前用法1.2 JDK8用法2. Comparable接口2.1 用法2.2 注意事项3.Cloneable接口3.1 用法3.2 注意事项三. 内部类1. 介绍2.局部内部类3.匿名内部类4.静态内部类一 .抽象类1. 介绍1.1基本用法随着继承层次中一个个新子类的定义,类变...原创 2020-04-12 21:37:28 · 3213 阅读 · 4 评论 -
Java基础——继承与多态
目录一. 继承1.介绍2.super关键字2.1 调用父类的构造方法2.2 构造方法链2.3 调用父类的方法3.方法重写4.Object类及其常用方法4.1 toString()方法4.2 equals()方法二. 多态5.1 介绍5.2 动态绑定5.3 对象转换和instanceof()运算符一. 继承1.介绍多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义...原创 2020-04-11 10:20:00 · 2733 阅读 · 6 评论 -
Java基础——Biglnteger 和 BigDecimal 类
目录介绍常见构造方法与方法(详细可见API文档)方法代码显示介绍如果基本的整数与浮点数精度不能满足需求,那么可以使用java.math包中的Biglnteger 和 BigDecimal 类。其中Biglnteger类实现了任意精度的整数运算,BigDecimal 类实现了任意精度的浮点数运算。常见构造方法与方法(详细可见API文档)BigDecimal(BigInteger val) ...原创 2020-04-10 14:05:23 · 1628 阅读 · 0 评论 -
Java基础——字符串与包装类
前言一、String类基本概念1.1 介绍1.2 构造字符串1.3 不可变字符串与限定字符串二、字符串的操作2.1 字符串的比较2.2 字符串的替换和分隔2.3 字符串与数组之间的转换2.4 将字符和数值转换为字符串2.5 格式化字符串三、StringBuilder 和 StringBuffer 类3.1 介绍3.2 StringBuilder 和 StringBuffer 类的区别3.3 St...原创 2020-04-09 14:10:30 · 1451 阅读 · 5 评论
分享