java基础
文章平均质量分 66
平安喜乐-2021
努力向上的小程序媛
展开
-
nignx和keepalived详细配置与原理
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离;Nginx 的 6 大应用场景转载 2022-11-14 14:35:27 · 751 阅读 · 0 评论 -
高并发,负载均衡,高可用的概念理解记录
高并发,负载均衡,高可用的概念理解记录原创 2022-11-14 11:14:34 · 71 阅读 · 0 评论 -
java事物失效的几个场景
java事务失效原创 2022-07-28 16:51:33 · 1572 阅读 · 0 评论 -
Map对于key相同的值处理方式
map的单个k有多个v原创 2022-06-24 11:48:16 · 905 阅读 · 0 评论 -
分布式事务的理解记录
文章目录传统事务的基本特性原子性一致性隔离性持久性分库分表表垂直拆分表水平拆分分库微服务下的多库存储回想CAP定理和BASE理论海量数据/高并发分布式事务解决方案强一致性二阶段提交协议问题三阶段提交协议TCC模式框架补偿模式传统事务的基本特性mysql中,我们可以使用begin开始事务,rollback回滚事务,commit提交事务redolog记录变更,undolog回滚Spring中,使用@Transaction标记事务原子性要么全部成功,要么全部失败,没有中间状态一致性指的是在执行事务原创 2022-03-24 13:32:42 · 1550 阅读 · 0 评论 -
关于redis在分布式架构当中使用的一些理解和总结
redis的特征:1、基于内存的2、key-value键值对的存储结构3、对于工作流是单线程的4、io模型 epoll(多路复用)5、value有类型6、value有类型使具有本地方法->触发计算向数据移动(结合redis工作单线程使redis在计算上能达到最大的性能效果)工作模型:下面展示一个操作模型kernel是内核,redis和很多的客户端并发访问通信的时候,因为可能发数据也有可能没发数据,如何快速知道那个客户端有数据进行读取,没有数据不进行读取减少没必要的操作,就用到了.原创 2021-03-18 00:58:16 · 262 阅读 · 1 评论 -
关于mysql调优的一些理解记录
尽可能多的减少io量;(减少io次数,减少io量)局部性原理:数据和程序都有聚集成群的倾向,之前被查询过的数据可能会被再次查询。磁盘预读:在磁盘根内存进行交互的时候有一个很小的逻辑单元,称为页,datapages,页跟操作系统相关,一般情况下是4k或者8k,每次再进行数据交互的时候,一定读取的是页的整数倍。mysql的innodb在进行数据读取的时候也是和页有关的,datapagesize 默认16kb。索引是存在磁盘中的,但是会预先加载到内存中,而且在进行加载的时候是分页加载->分块读取原创 2021-03-10 14:15:36 · 117 阅读 · 0 评论 -
关于GC的理解与整理
GC有两种模型:分带模型、分区模型。默认使用分带模型·分带模型 6个分为3对(一般情况下)。分带模型:把整个内存分成两个部分 新生代、 老年代新生老年代找垃圾使用的算法:引用计数 有引用值向他 他就不是垃圾(循环引用,abc循环引用 会导致分不出那三个已经变成垃圾)根可达算法 能找到的根的的定位出来的垃圾的回收算法:标记清除(内存碎片化)拷贝(把空间一分为二,一直使用其中一半,把另一半用于前一班有用拷过来,浪费空间)标记压缩(把有用的往前挪,压缩在最前面;效率最低)垃圾回收原创 2021-03-04 21:35:37 · 382 阅读 · 2 评论 -
代理模式
在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。介绍**意图:**为其他对象提供一种代理以控制对这个对象的访问。**主要解决:**在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上对此对原创 2021-02-09 10:19:48 · 88 阅读 · 0 评论 -
Thinking in java--注册工厂
//工厂方法可以被多态地调用,从而为你创建恰当类型的对象。public interface Factory<T> { //泛型参数T使得create(可以在每种Factory实现中返回不同的类型。 T create();}import java.util.ArrayList;import java.util.List;import java.util.Random;public class Part { public String toString(){原创 2021-02-05 09:48:00 · 126 阅读 · 0 评论 -
无意识的递归
Java中的每个类从根本上都继承自Object,标准容器类自然也不例外。因此容器都有toString()方法,并且覆盖了该方法,使得它生成的String结果能够表达容器自身,以及容器所包含的对象。例如ArrayList.toString(),它会遍历ArrayList中包含的所有对象,调用每个元素上的toString()方法;如果你希望toString()方法打印出对象的内存地址,也许你会考虑使用this关键字: //: strings/InfiniteRecursion.java // ..原创 2021-01-25 16:49:40 · 69 阅读 · 0 评论 -
设计模式(工厂模式详解)Java实现
转载:https://www.cnblogs.com/yssjun/p/11102162.html工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。1. 简单工厂模式该模式对对象创建管理方式最为简单,因为其仅仅简单的对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的转载 2021-01-07 15:05:39 · 201 阅读 · 1 评论 -
设计模式(策略模式详解)Java实现
public class Processor { public String name(){ return getClass().getSimpleName(); } Object process (Object input){ return input; }}原创 2020-12-24 15:56:13 · 326 阅读 · 0 评论 -
is-a has-a like-a 的区别
Is-a:是a:A Is B:A是B(继承关系,继承)。has-a:有a:A has B:A有B(从属关系,聚合)。like-a:像a:A like B:A像B(组合关系,接口)。看书时看到觉得有点搞不懂,查阅后记录。参考:https://blog.csdn.net/m0_37265215/article/details/82142326...原创 2020-12-24 13:53:41 · 154 阅读 · 0 评论