摘要: 读书,对于我来说其实很简单,就两个理由:一个是填补知识的盲区,第二个就是解决当下的困惑。 我们都知道人只有一套身体,我不可能说活成别人的样子,活成千千万万种人的样子,所有我的直接体验是非常有限的。怎么弥补我的直接体验,最好的方式就是通过阅读或者跟别人聊天,去获取其他人的那些经验,那么直接经验和间接经 阅读全文
posted @ 2022-11-07 12:02 qtyy 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 1. 循环依赖 什么是依赖注入?假设有两个类A和B,A在实例化的时候需要B的实例,而B在实例化时又需要A的实例,在类的实例化过程就陷入死循环。这也就是传统逻辑上的,“到底是先有鸡,还是先有蛋”的问题?下面举一个例子,定义了两个类Type和Org: // Org.java @Data @Compone 阅读全文
posted @ 2022-05-26 20:48 qtyy 阅读(1251) 评论(1) 推荐(1) 编辑
摘要: 说起mybatis,大伙应该都用过,有些人甚至底层源码都看过了。在mybatis中,mapper接口是没有实现类的,取而代之的是一个xml文件。也就是说我们调用mapper接口,其实是使用了mapper.xml中定义sql完成数据操作。 大家有没想过,为什么mapper没有实现类,它是如何和xml关 阅读全文
posted @ 2022-04-19 16:48 qtyy 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用My 阅读全文
posted @ 2021-12-17 14:57 qtyy 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 锁和分布式锁 锁是什么? 锁是一种可以封锁资源的东西。这种资源通常是共享的,通常会发生使用竞争的。 为什么需要锁? 需要保护共享资源正常使用,不出乱子。比方说,公司只有一间厕所,这是个共享资源,大家需要共同使用这个厕所,所以避免不了有时候会发生竞争。如果一个人正在使用,另外一个人进去了,咋办呢?如果 阅读全文
posted @ 2021-12-15 15:14 qtyy 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 1. 真的假的?查阅文档 刚看到这个说法的时候,我是保持怀疑态度的。 大家都知道 Spring5 之前的版本 AOP 在默认情况下是使用 JDK 动态代理的,那是不是 Spring5 版本真的做了修改呢?于是我打开 Spring Framework 5.x 文档,再次确认了一下: 文档地址:http 阅读全文
posted @ 2021-02-21 13:05 qtyy 阅读(1929) 评论(2) 推荐(1) 编辑
摘要: 一. 首先java中的基础数据类型 byte,short,int,long,float,double,boolean,char 1. 通过基本数据类型声明的局部都是存储java虚拟机栈当中 2. 非基本数据类型,存储于java 堆内存当中 二 基本类型 和 引用类型的不同之处 int num = 1 阅读全文
posted @ 2020-11-13 18:11 qtyy 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 启动文件中添加如下配置: -Djava.rmi.server.hostname=39.100.71.139 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8123 -Dcom.sun.management.jmx 阅读全文
posted @ 2020-10-09 19:06 qtyy 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 写在前面 spring boot能够根据依赖的jar包自动配置spring boot的应用,例如: 如果类路径中存在DispatcherServlet类,就会自动配置springMvc相关的Bean。spring boot的自动装配来源于spring的装配,功能也是随时spring的不断升级不断完善 阅读全文
posted @ 2019-10-07 17:40 qtyy 阅读(877) 评论(0) 推荐(0) 编辑
摘要: 写在前面 我们知道Eureka分为两部分,Eureka Server和Eureka Client。Eureka Server充当注册中心的角色,Eureka Client相对于Eureka Server来说是客户端,需要将自身信息注册到注册中心。本文主要介绍的就是在Eureka Client注册到E 阅读全文
posted @ 2019-09-22 17:07 qtyy 阅读(6834) 评论(0) 推荐(1) 编辑
摘要: 写在前面 主要描述为什么有了二叉查找树/平衡树还需要红黑树 1、二叉查找树的缺点 二叉查找树,相信大家都接触过,二叉查找树的特点就是左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大,如图 基于二叉查找树的这种特点,我们在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 阅读全文
posted @ 2019-09-16 08:25 qtyy 阅读(603) 评论(0) 推荐(0) 编辑
摘要: 写在前面 epoll是开发linux高性能服务器的必备技术至,epoll本质,是服务端程序员的必须掌握的知识。 七、epoll的原理和流程 本节会以示例和图表来讲解epoll的原理和流程。 创建epoll对象 如下图所示,当某个进程调用epoll_create方法时,内核会创建一个eventpoll 阅读全文
posted @ 2019-09-15 08:13 qtyy 阅读(598) 评论(1) 推荐(0) 编辑
摘要: 写在前面 从事服务端开发,少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要,大部分游戏服务器都使用到这一多路复用技术。文章核心思想是:要让读者清晰明白EPOLL为什么性能好。 四、内核接收网络数据全过程 这一步,贯穿网卡、中断、进程调度的知识,叙述阻塞recv下,内 阅读全文
posted @ 2019-09-15 08:06 qtyy 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 写在前面 从事服务端开发,少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要,nginx、redis、skynet和大部分游戏服务器都使用到这一多路复用技术。 本文会从网卡接收数据的流程讲起,串联起CPU中断、操作系统进程调度等知识;再一步步分析阻塞接收数据、sele 阅读全文
posted @ 2019-09-15 07:58 qtyy 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: 写在前面 我们知道我们编写的java代码,会经过编译器编译成字节码文件(class文件),再把字节码文件装载到JVM中,映射到各个内存区域中,我们的程序就可以在内存中运行了。那么字节码文件是怎样装载到JVM中的呢?中间经过了哪些步骤?常说的双亲委派模式又是怎么回事?本文主要搞清楚这些问题。 类装载流 阅读全文
posted @ 2019-09-13 10:54 qtyy 阅读(271) 评论(0) 推荐(0) 编辑
摘要: volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v 阅读全文
posted @ 2019-08-20 07:09 qtyy 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 1.1 keepalived是什么? Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、My 阅读全文
posted @ 2019-08-18 22:29 qtyy 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 一、首先要明白Semaphore和线程池各自是干什么? 信号量Semaphore是一个并发工具类,用来控制可同时并发的线程数,其内部维护了一组虚拟许可,通过构造器指定许可的数量,每次线程执行操作时先通过acquire方法获得许可,执行完毕再通过release方法释放许可。如果无可用许可,那么acqu 阅读全文
posted @ 2019-08-17 14:31 qtyy 阅读(11295) 评论(2) 推荐(0) 编辑
摘要: 作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。 1 阅读全文
posted @ 2019-08-16 21:15 qtyy 阅读(12898) 评论(0) 推荐(0) 编辑
摘要: 这个博文,将只是简单的记录一下,我们的数据库操作和使用中,加索引加不上去,分析的过程,其实比较简单,就是看有没有连接进程还在操作表。有的话,将其停掉(不影响业务的场景下)。 今天的主角是: SHOW [FULL] PROCESSLIST 官方文档的描述如下: 意思就是说上述指令是用来查看那些线程正在 阅读全文
posted @ 2018-08-10 17:24 qtyy 阅读(675) 评论(0) 推荐(0) 编辑