Keep going!
blog-comments's Introduction
blog-comments's People
blog-comments's Issues
算法目录 — Bob的城堡
MySQL - 数据类型 — Bob的城堡
博文目录汇总 — Bob的城堡
https://adolphor.com/1997/01/01/top-blog-article-menus/
数据结构和算法数据结构和算法 汇总目录
Java并发 - 线程安全的设计方式 — Bob的城堡
https://adolphor.com/2021/08/23/03-java-concurrent-thread-safe-design/
本文从面向对象设计的角度出发介绍几种保障线程安全的常用技术。这些技术的使用通常可以使得在不必借助锁的情况下保障线程安全,从而既避免锁可能导致的问题以及开销,又有利于提高系统的并发性并简化代码。另外,本文还介绍了常用的线程安全的集合对象。
Java数据结构和算法 - AVL树 — Bob的城堡
https://adolphor.com/2021/07/23/01-avl-tree/
AVL树是最早的一种平衡树,它以发明者的名字命名:Adelson-Velskii 和 Landis。在AVL树中每个节点存储一个额外的数据:它的左子树和右子树的高度差。这个差值不会大于1,也就是说,节点的左子树的高度和右子树的高度相差不会大于一层。
Java并发 - 执行器 — Bob的城堡
https://adolphor.com/2021/07/27/03-concurrent-executor/
执行器框架是在实现并发任务时将线程的创建和管理分割开来的一种机制。你不必担心线程的创 建和管理,只需要关心任务的创建并且将其发送给执行器。执行器框架另一个重要的优势是 Callable 接口。它类似于 Runnable 接口,但是却提供了两方面的增强: 这个接口的主方法名称为 call() ,可以返回结果。 当发送一个 Callable 对象给执行器时,将获得一个实现了 Future 接口的对象。可以使用这个对象来控制 Callable 对象的状态和结果。
Java数据结构和算法 - 红黑树 — Bob的城堡
MySQL - 数据类型 — Bob的城堡
使用 jrecreate 工具创建自己的 JRE — Bob的城堡
https://adolphor.com/2018/04/10/create-your-jre-with-jrecreate/
Done:Bullshit!不能用来精简JRE,GAME OVER ~
Java并发 - 多线程顺序执行案例 — Bob的城堡
https://blog.adolphor.com/2021/10/04/03-multi-thread-sequential-execution/
多线程顺序执行,主要考察多线程之间的通信问题。
Redis - 持久化 — Bob的城堡
https://blog.adolphor.com/2021/10/02/04-redis-persistence/
在运行情况下, Redis 以数据结构的形式将数据维持在内存中, 为了让这些数据在 Redis 重启之后仍然可用,Redis 分别提供了 RDB 和 AOF 两种持久化方法: RDB(Redis 数据库):RDB 持久性以指定的时间间隔执行数据集的时间点快照。 AOF(Append Only File):AOF 持久化记录服务器收到的每个写操作,在服务器启动时会再次播放,重建原始数据集。命令使用与 Redis 协议本身相同的格式以仅附加的方式记录。当日志变得太大时,Redis 能够在后台重写日志。
缓存雪崩 & 缓存穿透 & 缓存击穿 — Bob的城堡
https://blog.adolphor.com/2020/08/31/cache-penetration-breakdown-avalanche/
设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。
Java并发 - 线程停止 — Bob的城堡
https://adolphor.com/2021/08/23/02-java-concurrent-thread-stop/
线程停止:看似简单,实则不然。
Java基础知识目录 — Bob的城堡
https://adolphor.com/2016/08/22/java-basic-menus/
Java基本概念:JVM & JDK & JRE 面向对象 类 方法 关键字 final static JDK 类 String 集合 Collection继承图 ArrayList LinkedList Annotation 注解 异常体系 lambda lambda表达式 Java class 编译版本相关设置和查看
Java并发 - Java内存模型 — Bob的城堡
https://adolphor.com/2021/08/23/04-concurrent-memory-model/
许多硬件部件都有这样一个特点 —— 硬件设计者引人一个部件是为了解决某些问题,然而这些部件自身又会引人新的问题。为了解决这些新的问题,硬件设计者又引入了其他部件。因此,掌握这些部件之间的这种关系有助于我们更好地理解相关部件。Java内存模型是对Java多线程程序的正确性进行推理的理论基础,了解Java内存模型有助于编写正确的多线程程序以及进行代码复审。
MySQL 存储引擎 — Bob的城堡
Java基础知识目录 — Bob的城堡
Java基础知识目录 — Bob的城堡
https://adolphor.com/2021/08/22/01-static-keyword/
static修饰基本类型变量
Java并发目录 — Bob的城堡
Redis - 集群 — Bob的城堡
https://blog.adolphor.com/2021/10/02/05-redis-cluster-mode/
Redis集群有扩容和高可用的需求,那么集群如何搭建,就是一个需要考虑的问题。Redis 支持三种集群方案: 主从复制模式 Sentinel(哨兵)模式 Cluster 模式
Linux 排查进程和线程 — Bob的城堡
https://blog.adolphor.com/2021/09/28/01-linux-progress-thread/
服务器运行过程中,可能有些程序运行异常,就需要通过排查手段找到运行异常的应用,分析异常原因,来解决相关问题。
JVM - 内存区域 — Bob的城堡
https://adolphor.com/2021/08/23/05-jvm-memory/
Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java 虚拟机规范》的规定,Java 虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示:
MySQL 索引 — Bob的城堡
https://blog.adolphor.com/2021/05/20/mysql-index/
概念一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。
MySQL - 锁机制 — Bob的城堡
https://blog.adolphor.com/2021/07/13/02-mysql-lock-system/
当多个用户对数据库进行操作时,会带来数据不一致的情况,所以,锁主要是在多用户情况下保证数据库数据完整性和一致性。
spring bean 的生命周期 — Bob的城堡
https://blog.adolphor.com/2021/09/06/01-spring-bean-life-cycle/
在传统的Java应用中,bean的生命周期很简单。使用Java关键字new进行bean实例化,然后该bean就可以使用了。一旦该bean不再被使用,则由Java自动进行垃圾回收。
Java并发 - Java内存模型 — Bob的城堡
Java基础 - 面向对象:类 — Bob的城堡
https://adolphor.com/2021/07/03/10-java-basic-class/
面向对象三大特征 封装 继承 多态
Java并发 - 同步机制 — Bob的城堡
JVM - 引用类型 — Bob的城堡
https://adolphor.com/2021/08/24/02-jvm-reference-type/
在 JDK 1.2 版之前,Java 里面的引用是很传统的定义:如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该 reference 数据是代表某块内存、某个对象的引用。这种定义并没有什么不对,只是现在看来有些过于狭隘了,一个对象在这种定义下只有“被引用”或 者“未被引用”两种状态,对于描述一些“食之无味,弃之可惜”的对象就显得无能为力。譬如我们希望能描述一类对象:当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以抛弃这些对象 —— 很多系统的缓存功能都符合这样的应用场景。
如何编写 Git commit 信息 — Bob的城堡
https://blog.adolphor.com/2018/12/13/how-to-write-git-commit-messages/#%E5%88%86%E6%94%AF
规范Git commit 内容格式:(): // 空一行// 空一行
Java并发 - 线程中断 — Bob的城堡
https://adolphor.com/2021/08/23/01-java-concurrent-interrupt/
线程间协作还有一种常见的形式是,一个线程请求另外一个线程停止其正在执行的操作。比如,对于有些比较耗时的任务,我们往往会采用专门的工作者线程来负责其执行,如果中途要取消(比如用户不想等了)这类任务的执行,那么我们就需要借助Java 线程中断机制。
About — Bob的城堡
Keep going
设计模式之 - 单例模式 — Bob的城堡
https://adolphor.com/2021/08/06/01-java-design-patterns-singleton/
参考《Java多线程编程实战指南-核心篇》第3.9节 120页 的内容,讲述了如何正确实现单例模式。常规的双重验证的方式还可能面临指令重排的问题~
设计模式之 - 单例模式 — Bob的城堡
https://adolphor.com/2021/08/06/01-singleton/
单例模式是软件开发过程中经常用到的一种设计模式,但如果优雅的实现单例模式,并不是一个简单的问题。
MySQL - 复制 — Bob的城堡
https://adolphor.com/2021/07/14/02-mysql-replication/
MySQL 主从复制的作用
Java并发 - 并发设计模式 — Bob的城堡
https://adolphor.com/2021/07/27/07-concurrent-design-patterns/
在软件工程中,设计模式是针对某一类共同问题的解决方案。这种解决方案被多次使用,而且已 经被证明是针对该类问题的最优解决方案。每当你需要解决这其中的某个问题,就可以使用它们来避 免做重复工作。其中,单例模式(Singleton)和工厂模式(Factory)是几乎每个应用程序中都要用到 的通用设计模式。并发处理也有其自己的设计模式。本节,我们将介绍一些最常用的并发设计模式,以及它们的 Java 语言实现。
macOS上使用MySQL的那些事 — Bob的城堡
https://blog.adolphor.com/2018/11/28/mysql-on-macos/
macOS上安装 MySQL 5.7
Java数据结构和算法 - 哈弗曼编码 — Bob的城堡
macOS上安装多个版本的JDK — Bob的城堡
HashMap中的hash方法实现解析 — Bob的城堡
https://adolphor.com/2018/01/23/the-implement-of-hash-method-in-hashmap/
简介HashMap使用的是哈希表形式的数据结构,为了尽可能的减少哈希碰撞,尽量将对象均匀分布在哈希表中,hash算法就至关重要。
Java并发 - CAS与原子变量 — Bob的城堡
https://adolphor.com/2021/08/06/01-concurrent-cas-atomic/
在 Java 并发领域,我们解决并发安全问题最粗暴的方式就是使用 synchronized 关键字了,但它是一种独占形式的锁,属于悲观锁机制,性能会大打折扣。volatile 貌似也是一个不错的选择,但 volatile 只能保持变量的可见性,并不保证变量的原子性操作。
Java并发 - 并行流 — Bob的城堡
https://adolphor.com/2021/07/27/05-concurrent-stream/
流和 lambda 表达式可能是 Java 8 中最重要的两个新特性。流已经被增加为 Collection 接口和 9 其他一些数据源的方法,它允许处理某一数据结构的所有元素、生成新的结构、筛选数据和使用 MapReduce 方法来实现算法。
重复提交问题及解决方案 — Bob的城堡
https://blog.adolphor.com/2018/06/05/resolution-of-repeat-submit/
设计表单请求的系统都会遇到表单重复提交的问题,因为重复提交的原因有很多,比如网络延迟、用户提交操作速度过快、绕过前端重复提交验证的恶意重复提交等等。对于订单交易等比较敏感的交互操作,防重复提交设计一定要做好,不然会出现订单重复、多次扣费等问题。
MySQL - 多版本并发控制 MVVC — Bob的城堡
Java并发 - 基本概念 — Bob的城堡
JVM - javap指令 — Bob的城堡
https://adolphor.com/2021/08/22/01-jvm-javap/
javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。
ffmpeg的使用 — Bob的城堡
MySQL - 逻辑架构 — Bob的城堡
JVM目录 — Bob的城堡
https://adolphor.com/2021/07/29/jvm-menus/
JVM Class对象
MySQL - 分表分库组件 — Bob的城堡
https://blog.adolphor.com/2021/10/02/07-mysql-sharding-component/
当业务数据量达到一定程度,单表数据量过大,操作效率会迅速下滑,这时候就需要考虑分库分表的问题。针对分库分表,需要梳理清楚如何分库分表、以及使用什么组件实现分库分表。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.