对于继承、实现这两种关系没有疑问, 它们体现的是一种类和类、或者类与接口间的纵向关系;
其他的四种关系体现的是类和类、或者类与接口间的引用、横向关系,是比较难区分的, 有很多事物间的关系要想准确定位是很难的, 总的来说后几种关系所表现的强弱程度依次为: 组合 > 聚合 > 关联 > 依赖;
希尔的博客
兰之猗猗,扬扬其香。不采而佩,于兰何伤?
-
-
Oop 学习笔记
OOP 是 jvm 中用于抽象及映射 java 对象实例的 C++ 基础结构, 这对于普通 java 程序员来说颇为陌生, 但如果想搞懂 jvm 的底层原理, 我们就必须仔细学习这个 C++ 类的实现细节;
-
Klass 学习笔记
jvm 对 java Class 在 C++ 的映射及实现是 Klass 类, 这对于普通 java 程序员来说颇为陌生, 但如果想搞懂 jvm 的底层原理, 我们就必须仔细学习这个 C++ 类的实现细节 (尤其是 jvm 的多态实现, 其核心机制就存在于该类的数据结构中);
-
etcd 基础知识学习
etcd 凭借自身高效的一致性共识协议 (Raft) 和对存储数据高效的组织结构 (B-Tree 和 B+Tree), 已事实上成为云原生社区 “水和电” 一般的基础设施, 其重要性不言而喻;
因此有必要了解一下 etcd 的相关原理知识; -
zookeeper 的数据结构
我们都知道 zookeeper 使用了树状结构来管理它的 ZNode, 无数中间件使用 zookeeper 的 ZNode 组织并管理了具有层次关系的数据结构;
本文将探究 zookeeper ZNode 树状结构的实现方式及原理; -
zookeeper 的逻辑时钟
逻辑时钟是分布式共识系统中重要的概念, 是实现顺序一致性的关键保障;
zookeeper 逻辑时钟的设计创新性得引入了高低位相结合的方式, 实现了高效的事件顺序对比与事件同步; -
kafka-topics.sh 介绍
kafka-topics.sh
是 kafka 提供的一个命令行工具, 用于管理和操作 kafka 主题; 它允许用户创建、删除、修改和查看 kafka 主题的配置; -
中国导弹分类
不是东风压倒西风,就是西风压倒东风。
秋收时节暮云愁,霹雳一声暴动。
鹰击长空,鱼翔浅底,万类霜天竞自由。
今日长缨在手,何时缚住苍龙。
······
毛主席的诗词, 在浪漫的中国军工人手中, 变成了一件件镇国神器, 呼啸着划破长空, 将敌人化为齑粉, 拱卫着华夏大地! -
git tag 使用总结
对于一般的业务后端系统来说, git tag 命令是不怎么会被用到的;
但是对于一个库的开发者来说, git tag 命令很重要, 每一个正式版本 / 里程碑的发布, 都需要用 git tag 来标记, 方便日后追溯, 问题排查; -
mapstruct 实践
在领域模型与持久层的 DO 之间拷贝数据是 java 开发常见的场景, 如果需要拷贝的字段过多, 我们往往寻求使用一些工具以代替赋值语句;
类似 spring 的 BeanUtils 使用反射实现自动赋值是一种经典的解决方案, 但在有性能要求的场景下存在性能瓶颈;
而 mapstruct 提出了另一种解决方案: 使用编译期预处理的方式自动生成拷贝转换的代码, 在节省拷贝代码的同时也保证了转换的性能;