小破站,记录和学习
Java的反射与动态编译 Java的反射与动态编译
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。这种技术在一些开源框架中使用非常广泛,
2022-06-05
对于类加载的一点理解 对于类加载的一点理解
当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以
2022-06-02
LeetCode-最长公共子序列 LeetCode-最长公共子序列
力扣上一道中等题,求两个字符串的最长公共子序列。说实话这道题我完全没有思路,一开始尝试用双指针去遍历两个数组,但是公共子序列可以是不连续的,这样情况就会变得很复杂。在和力扣度过美好的一天后,我最终放弃了。看完题解后,茅塞顿开。故此记录一下思
2022-05-31
存储引擎的MVCC机制 存储引擎的MVCC机制
MVCC全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。对存储引擎的MVCC机制,早有涉猎学习。但如果在工作中生活中没有足够的经历,其实很难对它有深入的理解。为什么要
2022-05-26
Mysql存储引擎总结 Mysql存储引擎总结
SQL的全称是Structured Query Language,翻译成中国话就是结构化查询语言。这是一种声明式的语法,和其它数据库相比,MySQL 有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,
2022-05-15
图灵机与冯诺依曼模型 图灵机与冯诺依曼模型
图灵机是─种抽象的机器,一种抽象的计算模型。由数学家阿兰·图灵提出来的,尽管这个机器很简单,但它可以模拟计算机的任何算法,无论这个算法有多复杂。 当今的计算机都是图灵机的实现,要想知道程序执行的原理,我们可以先从「图灵机」的工作原理说起,图
2022-05-04
线程间的通信 线程间的通信
在Java中线程之间通信一般使用共享变量的方式,用同步锁来实现。在Golang中不推荐使用共享变量的方式,而是更多使用管道来实现信息同步。本文总结一下在Java中线程间通信的方式 要实现线程间通信的模型有两种:共享内存和消息传递,以下方式
2022-05-02
详细解读Raft共识算法 详细解读Raft共识算法
业界最著名的一致性算法就是大名鼎鼎的Paxos(Chubby的作者曾说过:世上只有一种一致性算法,就是Paxos)。但Paxos是出了名的难懂,而Raft正是为了探索一种更易于理解的一致性算法而产生的。Raft是分布式环境下的一致性算法,它
2022-05-01
布隆过滤器详解 布隆过滤器详解
布隆过滤器在wiki上的介绍: 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般
2022-04-17
关于Kubernetes 关于Kubernetes
虽然 Docker已经很强大了,但是在实际使用上还是有诸多不便,比如集群管理、资源调度、文件管理等等。那么在这样一个百花齐放的容器时代涌现出了很多解决方案,比如 Mesos、Swarm、Kubernetes 等等,其中谷歌开源的 Kuber
2022-04-16
云计算与虚拟化随笔 云计算与虚拟化随笔
对于微服务技术栈我比较熟悉的是Spring Cloud,最近公司在各应用升级到K8S部署。虽然对Docker与K8S我有所了解,但是一直没有深入的使用过。任何框架或者中间件的登场和消亡都有其历史原因,从历史角度会对各技术的演变有更深刻的理解
2022-04-10
Spring的循环依赖与三级缓存 Spring的循环依赖与三级缓存
我们都知道Spring通过三级缓存来解决循环依赖的问题,那么是不是必须是三级缓存?二级缓存不能解决吗?先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化
2022-04-05
3 / 17