
java
文章平均质量分 90
何人听我楚狂声
A programmer
展开
-
一起写个数据库 —— 6. 记录的版本与事务隔离
本文原载于我的博客:https://ziyang.moe/article/mydb6.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/vm 中。前言从这一章开始,我们开始讨论 Version Manager。VM 基于两段锁协议实现了调度序列的可串行化,并实现了 MVCC 以消除读写阻塞。同时实现了两种隔离级别。类似于 Data Mana原创 2021-12-26 00:47:29 · 2019 阅读 · 2 评论 -
一起写个数据库 —— 10. 服务端客户端的实现及其通信规则
本文原载于我的博客:https://ziyang.moe/article/mydb10.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/server 、 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/client 与 https://原创 2021-12-26 00:45:39 · 1727 阅读 · 0 评论 -
一起写个数据库 —— 9. 字段与表管理
本文原载于我的博客:https://ziyang.moe/article/mydb9.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/parser 与 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/tbm 中。前言原创 2021-12-25 18:28:51 · 1540 阅读 · 0 评论 -
一起写个数据库 —— 8. 索引管理器
本文原载于我的博客:https://ziyang.moe/article/mydb8.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/im 中。前言IM,即 Index Manager,索引管理器,为 MYDB 提供了基于 B+ 树的非聚簇索引。目前 MYDB 只支持基于索引查找数据,不支持全表扫描。感兴趣的同学可以自行实现。在依赖关系图中可以原创 2021-12-24 23:21:31 · 1712 阅读 · 0 评论 -
一起写个数据库 —— 5. 页面索引与 DM 层的实现
本文原载于我的博客:https://ziyang.moe/article/mydb5.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/dm/pageIndex、https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/dm/dat原创 2021-12-11 22:00:17 · 2057 阅读 · 5 评论 -
一起写个数据库 —— 4. 日志文件与恢复策略
本文原载于我的博客:https://ziyang.moe/article/mydb4.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/dm/logger 和 https://github.com/CN-GuoZiyang/MYDB/blob/master/src/main/java/top/guoziyang/mydb/backend/dm/Reco原创 2021-12-11 15:05:22 · 2598 阅读 · 4 评论 -
一起写个数据库 —— 2. 引用计数缓存框架和共享内存数组
本文原载于我的博客:https://ziyang.moe/article/mydb2.html本章涉及代码都在 https://github.com/CN-GuoZiyang/MYDB/tree/master/src/main/java/top/guoziyang/mydb/backend/common 中。前言从这一章中,我们开始讨论 MYDB 中最底层的模块 —— Data Manager:DM 直接管理数据库 DB 文件和日志文件。DM 的主要职责有:1) 分页管理 DB 文件,并进行缓存;原创 2021-12-01 01:07:53 · 3053 阅读 · 4 评论 -
一起写个Dubbo——7. 服务端自动注册服务
到目前为止,客户端看起来挺完美了,但是在服务端,我们却需要手动创建服务对象,并且手动进行注册,如果服务端提供了很多服务,这个操作就会变得很繁琐。本节就会介绍如何基于注解进行服务的自动注册。原创 2020-08-04 17:04:21 · 11851 阅读 · 26 评论 -
一起写个Dubbo——6. 自动注销服务和负载均衡策略
一起写个 Dubbo 第六节,实现服务自动注销和负载均衡策略原创 2020-08-04 16:17:45 · 9750 阅读 · 24 评论 -
一起写个Dubbo——5. 基于 Nacos 的服务器注册与发现
用 Naocs 作为服务注册中心进行远程过程调用原创 2020-08-04 12:31:20 · 12506 阅读 · 16 评论 -
一起写个Dubbo——4. Kryo序列化
上一节我们实现了一个通用的序列化框架,使得序列化方式具有了较高的扩展性,并且实现了一个基于 JSON 的序列化器。这一节我们就来实现一个基于 Kryo 的序列化器。原创 2020-08-03 10:55:23 · 8518 阅读 · 0 评论 -
一起写个Dubbo——3. Netty传输和通用序列化接口
本节我们会将传统的 BIO 方式传输换成效率更高的 NIO 方式,当然不会使用 Java 原生的 NIO,而是采用更为简单的 Netty。本节还会实现一个通用的序列化接口,为多种序列化支持做准备,并且,本节还会自定义传输的协议。原创 2020-08-02 21:36:51 · 15038 阅读 · 30 评论 -
一起写个Dubbo——2. 注册多个服务
本文原载于我的博客,地址:https://blog.guoziyang.top/archives/63/,项目地址:https://github.com/CN-GuoZiyang/My-RPC-Framework本文对应的commit为8467b19,完整的项目目录上一节中,我们使用 JDK 序列化和 Socket 实现了一个最基本的 RPC 框架,服务端测试时是这样的:public class TestServer { public static void main(String[] arg原创 2020-08-02 16:17:07 · 13184 阅读 · 24 评论 -
并发中的ArrayList——CopyOnWriteArrayList源码阅读
面试中常问并发?那怎么能没看过CopyOnWriteArrayList源码呢原创 2020-06-28 16:39:10 · 430 阅读 · 0 评论 -
一起写个Dubbo——1. 一个最简单的实现
面试问你RPC,一起写个Dubbo吧!一起写个Dubbo第一章,一个最简单的RPC框架实现原创 2020-06-26 17:53:05 · 27067 阅读 · 27 评论 -
一起写个Dubbo——0. 一些不得不说的话
面试问你RPC?一起写个Dubbo吧!一个RPC框架的渐进式实现教程原创 2020-06-26 17:49:54 · 20134 阅读 · 1 评论 -
经常用ArrayList?来看看源码吧!
面试常问ArrayList?一篇源码解读就搞定!原创 2020-06-13 19:15:20 · 2470 阅读 · 2 评论 -
面试中又被问到SpringMVC了?不如自己写一个吧!
自己写一个SpringMVC框架,代码齐全,功能完备,从此面试不愁!原创 2020-06-08 16:14:58 · 1051 阅读 · 0 评论 -
面试别再问我HashMap了——史上最全HashMap源码解读!
本文会深入HashMap的源码,对其常用方法和相关属性进行解读,进一步了解HashMap的机制。着重于一些HashMap的重要方法和算法的解读。面试不愁!原创 2020-06-05 12:21:57 · 650 阅读 · 2 评论 -
0202年了,你还不会lambda表达式?一文带你完全搞懂lambda!
Java 8 新特性——Lambda 表达式学习lambda表达式,Java 8新引入的一个语法糖,是Java进入函数式编程的第一步,本质上是一个匿名接口实现。原创 2020-06-04 11:40:37 · 1124 阅读 · 0 评论 -
手撸一个Spring IOC容器——渐进式实现
最近阅读了Spring Framework中的IOC容器部分的实现,手痒,决定自己实现一个比较简单的版本。和我一起手写一个,面试的时候丝毫不虚!原创 2020-06-03 13:45:37 · 1317 阅读 · 0 评论 -
HttpComponents使用纪要
概览本文原载于我的博客,地址:https://blog.guoziyang.top/archives/15/HttpComponents是Apache基金会开发和维护的一组底层HTTP及其它协议相关的Java套件包。HttpComponents的前身是Apache Commons包下的HttpClient包,在3.1版本后,独立成了单独的一组套件,包全名为org.apache.httpcomponents,目前HttpCore的最新版本是4.4.11,HttpClient的最新版本是4.5.7。鉴于原创 2020-06-02 16:36:43 · 1199 阅读 · 1 评论 -
JavaGUI技术——Swing概览
JavaGUI技术——Swing概览前言万恶之源——JFrame主要方法讲解必须要做的事情组件的容器——JPanel主要方法讲解必须要做的事情菜单栏——JMenuBar主要方法讲解必须要做的事情按钮——JButton主要方法讲解必须要做的事情单行文本框——JTextField主要方法讲解必须要做的事情JTextArea下拉菜单——JComboBox主要方法讲解一定要做的事事件驱动——ActionListener举例swing的事件驱动模式键盘监听——KeyListener举例大坑画画!——paintComp原创 2020-06-02 16:21:28 · 1362 阅读 · 0 评论