自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 十进制与二进制的相互转化(2022.8.29-9.4)

进制转化

2022-08-31 16:55:41 360 1

原创 LinkedList的简单用法(2022.6.13-6.19)

LinkedList用法

2022-06-14 13:42:25 125

原创 反射创建实例三种方式(2022.6.6-6.12)

反射三种方式创建实例

2022-06-14 13:41:12 1877

原创 RabbitMQ四种发布模式(2022.5.30-6.5)

RabbitMQ发布模式

2022-06-14 13:39:35 414

原创 RabbitMQ四种交换机(2022.5.23-5.29)

RabbitMQ交换机

2022-06-14 13:37:40 258

原创 MQ组成部分(2022.5.16-5.22)

MQ的组成部分

2022-06-14 13:32:35 294

原创 MQ的选择(2022.5.9-5.15)

MQ的选择

2022-06-14 13:31:42 139

原创 MQ优缺点(2022.5.2-5.8)

MQ优缺点

2022-06-14 13:30:03 99

原创 Dubbo与SpringCloud简单区别:(4.25-5.1)

主要是七个区别:1.注册服务的不同:dubbo是基于Java接口和Hession2的序列化来进行传输的,一般搭建在zookeeper服务上的;provider向外暴露的是接口,consumer只需要关注是否能匹配接口就可以了;SpringCloud的服务发现是基于Http协议来实现的,Provider对外暴露的是应用信息,比如应用名称,ip地址等等,Consumer关注的是应用名称来进行匹配选择的;2.Server集群服务信息同步的区别:Dubbo使用Zookeeper做服务发现和治理,Zo

2022-05-01 21:21:46 1447

原创 TCP三次握手和四次挥手简介(2022.4.18-4.24)

三次握手的通俗理解如下:客户端向服务端发起连接请求(第一次),服务端收到客户端的信息并加验证发给客户端(第二次),客户端收到并确认验证发给服务端(第三次)连接请求成功;专业三次握手文字解析如下:第一次:客户端向服务端发起SYN连接申请并带上自己的序列端口号(如Seq=x),大概传送的有SYN=1,Seq=x;第二次:服务端收到客户端连接申请,发送SYN+ACK(确认),分别传送给客户端的为SYN=1,Seq=y(服务端自身的序列号),ACK=1,ack=x+1;第三次:客户端收到服务端发来

2022-04-19 18:48:29 727

原创 策略模式(2.28-3.6)

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何

2022-04-07 20:58:37 51

原创 解释器模式(3.7-3.13)

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。介绍意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,

2022-04-07 20:54:00 56

原创 空对象模式(3.14-3.20)

介绍在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。实现我们将创建一个定义操作(在这里,是客户的名称)的 AbstractCustomer 抽象类,和扩展了 Abst

2022-04-07 20:44:28 142

原创 命令模式(3.21-3.27)

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。何时使用:在某些场合,比如要对行

2022-04-06 20:33:14 51

原创 中介者模式(3.28-4.3)

中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。介绍意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。何时使用

2022-04-06 20:24:11 47

原创 状态模式(4.4-4.10)

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。介绍意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决:将各种具体的状态类抽象出来。关键代码:通常命令模式的接

2022-04-06 20:17:19 52

原创 spring中如何动态创建Bean代码:(4.4-4.10)

Bean对象创建的三种方式:1.通过构造方法进行<bean id: class>定义; 2.通过工厂对象调用普通方法的创建对象;3.通过工厂对象调用静态方法的创建对象;手动创建Bean对象:前提是该类已注入Spring容器,简单代码如下:@Componentpublic class BeanTest{ @Autowired private ApplicationContext applicationContext ; public void test1() th...

2022-04-05 16:25:07 706

原创 mysql底层的引擎选择,为什么索引结构选择B+树:(3.28-4.3)

mysql底层引擎有innodb(默认的,有ACID的事务定义和高并发场景海量数据的高性能操作),myisam(没有事务,但是只有Insert和Select的时候效率还是比较快的),memory(对数据的存储利用只是临时的,并不考虑安全性的,在内存中和数据库临时表中的时候),archive(只有查询和增加的时候,尤其是高并发增加的时后,效率还是比较快的,但是数据并不安全);数据库底层选择的时候有很多选择:比如查询较快hash散列结构,但是是无序的,所以不适用;二叉树里面的平衡二叉树和红黑树等等但是

2022-04-05 16:24:01 1318

原创 synchronized的底层的三种上锁实现方式:(3.21-3.27)

修饰普通方法:修饰的是类的实例对象,也叫对象锁,有两种场景:1.两个线程在两个同步方法中执行同一个上锁对象,会形成互斥场景;(因为锁的对象都是同一个) 2.两个对象在两个线程中执行同一个同步方法,不会互斥;(锁的对象是两个)修饰静态方法:修饰的类对象,也叫类锁;三种使用场景:1.一个类对象在两个不同的线程执行不同的同步方法,会互斥;因为是同一个类对象锁 ...

2022-04-05 16:23:06 103

原创 Spring事务相关解析:(3.14-3.20)

Spring事务实现的方式主要有四种:TransactionTemplate编程式事务管理,事务管理器PlatFormTransaction声明式事务管理,AspectjAop 的声明式事务管理,注解式开发@Transactional的声明式事务管理;TransactionTemplate:先进行一个事务管理器的配置,再创建一个Template模板进行编程式事务管理的主要实现的是里面的TransantionCallBack ...

2022-04-05 16:21:56 544

原创 数据库死锁总结:(3.7-3.13)

简介:数据库死锁一般是两个或两个以上的线程同时争夺一个资源所造成的互相等待死锁的状态,比如用户访问线程A锁住记录C,另一用户访问线程B且需访问记录C的时候就会形成死锁;形成死锁的主要原因:1.系统资源不足;(系统资源充足分配的时候很少形成死锁)2.访问的对象的顺序不一致;3.系统资源分配的不恰当等;形成死锁的四个必要条件(缺一不可):1.互斥条件:同一时间,一个对象资源只能被一个线程所占用使用,其他线程无法占用;2.请求与保持条件:当一个进程发起访问请求新资源时,本身持有的资源不会释放

2022-04-05 16:20:16 501

原创 线程安全的类的解析:(2.8-3.6)

线程安全的类一般是体现在多线程并发过程中的,主要有五种:不可变,绝对安全的类,相对安全的类,线程兼容,线程对立;不可变:被final修饰的类;String类型的;枚举类型的,如: public Enum Color{RED,GREEN};浮点引用包装精准类型和大值的: BigInteger,BigDecimal;绝对安全的类:是在相对安全的类上面再次加入synchronized关键字,比如vector前面加上就变成了绝对安全的类;相对安全的类:vector和hashtable等这样本

2022-04-05 16:18:55 97

原创 数据库日志级别解析:(2022.2.21-2022.2.27)

数据库的日志种类有:redo_log,undo_log,binlog,rely_log,error_log,slow_query_log,general_log;redo_log:重做日志,保证了事务的持久性,一般事务开启的时候,重做日志也启动了,持久化的三种方式分别为:1.每一秒进行持久化; 2.每一次commit的时候进行持久化;3.默认的为占用剩余内存空间一半的时候自动持久化;undo_log:回滚日志,保证了事务的原子性和隔离性,在事务执行失败或者回滚的时候,就会启动该日志...

2022-04-05 16:16:34 867

原创 2022.2.14-2.27 责任链模式

顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。介绍意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责链

2022-02-14 13:59:57 64

原创 (2022.1.31-2022.2.14)模板模式解析

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有一些通用的方法。如何解决:将这些通用算法抽象出来。关键代码:在抽象类实现,其他步骤在子类

2022-02-11 11:11:01 81

原创 2022-1-17至2022-1-30 迭代器模式

迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。介绍意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码:定义接口:hasNext, next。**应用实例:**JAV

2022-01-25 15:17:51 48

原创 2022-1-3至2022-1-16 访问者模式

在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。介绍意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。

2022-01-25 15:13:27 47

原创 2020-12-21至2022-1-2:解析观察者模式

学习

2022-01-25 15:06:24 42

原创 写入数据进入磁盘文件代码示例如下:

代码

2021-12-19 21:46:29 283

原创 五种线程状态图示

2021-12-14 22:53:56 331

原创 各种应用程序到JVM虚拟机的过程

2021-12-06 06:44:04 249

原创 JVM中各个垃圾回收器图形演示

2021-11-28 21:08:17 133

原创 JVM中GC垃圾回收算法和垃圾回收器

Serial收集器(复制算法): 新生代单线程收集器,标记和清理都是单线程,优点是简单高效;ParNew收集器 (复制算法): 新生代收并行集器,实际上是Serial收集器的多线程版本,在多核CPU环境下有着比Serial更好的表现;Parallel Scavenge收集器 (复制算法): 新生代并行收集器,追求高吞吐量,高效利用 CPU。吞吐量 = 用户线程时间/(用户线程时间+GC线程时间),高吞吐量可以高效率的利用CPU时间,尽快完成程序的运算任务,适合后台应用等对交互相应要求不高的场...

2021-11-21 17:54:34 91

原创 SpringCloud极致精华学习及分布简略路线

2021-11-17 15:42:12 62

原创 JVM虚拟机中创建对象的流程:

虚拟机遇到一条new指令时,先检查常量池是否已经加载相应的类,如果没有,必须先执行相应的类加载。类加载通过后,接下来分配内存。若Java堆中内存是绝对规整的,使用“指针碰撞“方式分配内存;如果不是规整的,就从空闲列表中分配,叫做”空闲列表“方式。划分内存时还需要考虑一个问题-并发,也有两种方式: CAS同步处理,或者本地线程分配缓冲(Thread Local Allocation Buffer, TLAB)。然后内存空间初始化操作,接着是做一些必要的对象设置(元信息、哈希码…),最后执行<init&g

2021-11-14 16:48:02 367

原创 2021-11-09

补:---> 上个礼拜 blogJVM内部包括2个系统以及2个组件:-->2个系统:类加载->class loader ;执行引擎execution engine :->JITCompiler即时编译器 、Garbage Collector垃圾回收器;2个组件:本地库接口:Native Interface ->本地方法库 Native Method LibrariesJVM内核(运行时数据区)Runtime Data Area:三个私有: 程序计

2021-11-09 14:11:07 377

原创 本周开始每周一精华Blog可能为图可能为精华代码...

这是本人画出的现代企业级常用架构,里面一些专业名词可百度查询,后期继续分享...

2021-10-29 18:00:49 42

原创 2021-05-07

面试题一:说说同步和异步请求?回答:同步: 当用户发起请求时,如果这时服务器正忙,那么用户处于等待的状态,同时不可以做其他的操作;异步: 当用户发起请求时,如果遇到服务器正忙,这时用户可以继续执行后续的操作.同时通过回调函数与服务器沟通.面试题二:说下get请求与post请求以及使用场景?回答:get请求与post请求:get请求会将参数通过?号的形式进行拼接,其中值之间用&相连,有数量限制,所有数据都URL中显示;post请求:POST请求将所有的参数都会进行form的封装,没有数量限

2021-05-07 19:40:35 58

原创 2021-05-07

补昨日(5.6日)的:面试题一:转发和重定向的意义?回答:方法内部的松耦合,转发是网址不变,二个网页之间,第二个网页需要第一个网页的参数之时,且网页url是不变的选择转发;重定向是多个请求与响应,网页变化,但是不含首个请求的参数,是一个完整个体。面试题二:RestFul的意义?回答:意义:简化get请求;可以使用无状态的请求,通过不同请求类型,控制不同的业务逻辑。面试题三:JSON有哪些模式?回答:三种模式:Object对象格式,{“key1”:“value1"....}对象无序模式

2021-05-07 19:25:31 46

原创 2021-05-05

面试题一:Iterator 和 ListIterator 的区别是什么?回答:Iterator 可用来遍历 Set 和 List 集合,但是 ListIterator 只能用来遍历 List;Iterator 对集合只能是前向遍历,ListIterator 既可以前向也可以后向;ListIterator 实现了 Iterator 接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引等等。面试题二:线程和进程的区别是什么?回答:进程是程序运行和资源分配的基本单位,一个程序

2021-05-05 05:45:48 50

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除