- 博客(37)
- 收藏
- 关注
转载 IDEA 2021.1 的 Win 和 Mac 快捷键
IntelliJ IDEA 快捷键大全 Win 版Ctrl 快捷键Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)Ctrl + W 递进式选择
2021-06-07 10:41:47
214
原创 git命令记录
#####拉取master分支git pull origin master######当前分支合并 分支名称git merge origin 分支名称#####打新分支1.git checkout -b 分支名称2.推送到远端 git push origin 分支名称3.绑定更新关系 git branch --set-upstream-to origin/分支名称 分支名称...
2021-05-26 10:55:02
131
原创 多线程知识点方便面试
线程、进程、管程的区别 线程的状态 线程状态如何流转 说说你知道的线程池 线程池的原理 线程池的参数 ThreadLocal Java中Runnable和Callable有什么不同 Thread 类中的start() 和 run() 方法有什么区别? 如何在Java中实现线程 如何停止一个线程 如何在两个线程间共享数 为什么wait, notify 和 notifyAll这些方法不在thread类里面 Java中interrupted 和 isInterruptedd方法的区别?
2020-10-24 16:58:40
239
原创 Redis试卷
Redis为什么那么快 谈谈i/o复用模型和reactor设计模式 Redis的线程模型 设计redis的key时要注意什么 Redis的数据结构,各种结构特点和用途 Redis的数据结构的底层实现 redis的事务 Redis内存都有什么 内存回收策略 内存溢出控制策略 简单谈谈redisObject Redis的对象类型 Redis 内存如何优化 RDB文件,如何写入,写入格式 AOF文件,如何写入,写入格式,如何优化,文件缓存策略 RDB和AOF的优缺点 主从复制数据如
2020-10-19 18:28:05
935
原创 mysql试卷
1.mysl存储引擎有什么 区别在哪里2.mysql的索引有哪些3.B树和B+树有什么不同4.索引优化5.索引的优点6.索引的使用条件7.sql优化8.谈谈explain9.事物特性及隔离级别10.事物实现原理11.mysql的锁有哪些12.谈谈MVCC原理13.锁算法14.如何避免幻读15.主从延时如何处理16.分库分表如何实现的17.数据主从复制原理18.读写分离实现,若有延时如何处理19.事物特性是如何实现的20.查询语句的.
2020-10-15 08:56:42
1035
原创 JVM试卷
JVM内存模型都有什么?都是干什么的 对象的访问定位的方式,有什么好处。 JAVA内存溢出都有什么?如何解决 如何判断一个对象是否要回收 Java的4种引用 垃圾回收的算法及其优缺点 说说你知道的垃圾回收器及其区别 垃圾回收器的执行过程 Java对象内存如何分配 如何查看GC日志 jvm的监控工具 jvm调优方案+情况 类加载六层 对类进行初始化的时机 类加载器 什么是双亲委派JVM内存模型都有什么?都是干什么的程序计数器:每个线程都有...
2020-10-14 13:47:08
159
原创 Spring Cloud-RIBBON负载均衡算法解析
Ribbon 负载均衡算法 IRuleRibbon 提供了多种负载均衡策略算法,例如轮询算法、随机算法、响应时间加权算法等。默认采用的是轮询算法。当然,我们也可以指定 Ribbon 所要采用的负载均衡算法。public interface IRule{ /* * choose one alive server from lb.allServers or * lb.upServers according to key * * @return cho
2020-09-09 22:56:49
611
转载 2020-09-04
数据类型全文搜索引擎很好的支持非结构化数据的搜索,可以更好地快速搜索大量存在的任何单词非结构化文本。例如Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。对于这些非结构化的数据文本,关系型数据库搜索不是很好的支持。搜索性能如果使用MySQL做索引,比如有个player表,这个表有user_name这个字段,我们要查找出user_name以james开头的球员,和含有jam
2020-09-04 14:46:16
172
原创 微服务基础入门-注册中心
在落地注册中心的过程中,我们需要解决一系列的问题,包括 如何存储服务信息、如何注册节点、如何反注册、如何查询节点信息以及如何订阅服务变更等。注册中心如何存储服务信息注册中心既然是用来存储服务信息的,那么服务信息都包含哪些内容呢?一般包含三部分内容:分组、 服务名 节点信息,又包括节点地址和节点其他信息一般是按照“服务 - 分组 - 节点信息”三层结构来存储,Service 代表服务的具体分组,Cluster 代表服务的接口名,节点信息用 KV 存储。搞清楚了注册中心存储服务信息
2020-08-28 15:18:00
352
原创 微服务入门基础
解决什么问题单体应用 部署效率低下 团队协作开发成本高 系统高可用性差 线上发布变慢。什么是服务化?服务化就是把 传统的单机应用中通过 JAR 包依赖产生的本地方法调用,改造成通过 RPC 接口产生的远程 方法调用什么是微服务?在我看来,可以总结为以下四点:服务拆分粒度更细。微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依 赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。 服务独立部署。每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机 上.
2020-08-28 11:01:59
684
原创 Zab协议
一、什么是Zab协议ZAB协议 的全称是Zookeeper Atomic Broadcast(Zookeeper原子广播)。ZAB 协议是为分布式协调服务ZooKeeper专门设计的一种支持崩溃恢复的一致性协议。基于该协议,ZooKeeper 实现了一种主从模式的系统架构来保持集群中各个副本之间的数据一致性。话说在分布式系统中一般使用主从系统架构模型,指的是一台leader服务器负责外部客户端的写请求。然后其他的都是follower服务器。leader服务器将客户端的写操作数据同步到所有的fo..
2020-08-20 20:49:35
2356
1
原创 kafka整理
1.kafka的作用削峰填谷、异步、解耦2.消息2.1 传输出去。常见的有两种方法:点对点模型:也叫消息队列模型。如果拿上面那个“民间版”的定义来说,那么系统 A 发送的消息只能被系统 B 接收,其他任何系统都不能读取 A 发送的消息。 发布 / 订阅模型:与上面不同的是,它有一个主题(Topic)的概念,你可以理解成逻辑语义相近的消息容器。该模型也有发送方和接收方,只不过提法不同。发送方也称为发布者(Publisher),接收方称为订阅者(Subscriber)。和点对点模型不同的是,这
2020-08-05 22:45:49
382
原创 ZooKeeper知识点整理
1. 什么是ZooKeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。2. ZooKeeper能做什么数据订阅与发布 负载均衡 命名服务 分布式协调/通知 master选举 分布式锁 分布式队列3. 基础知识ZooKeeper能做的事情不少,稍后对上面说的7条进行详细说明
2020-07-26 13:32:31
716
转载 redis 哨兵+cluster
一、redis的哨兵它主要提供的功能是1.集群监控2.消息通知3.故障转移4.配置中心,通知client客户端新的master地址必要点哨兵必须要3个实例才可以不会保证数据不丢失哨兵是如何工作的1.哨兵ping一个master,若没有ping通就认为这个master主观宕机了2.上面那个哨兵通过 pus/sub感知和发送信息给其他哨兵,若其他哨兵也认为该master宕机了,则是客观宕机,当master是客观宕机的时候就认为master是真宕机了3...
2020-07-08 16:04:25
1181
原创 Java多线程——CountDownLatch
1.例子public void testCountDownLatch() throws InterruptedException { CountDownLatch contDownLatch = new CountDownLatch( 10); for(int i=0;i<10;i++){ String name = "这是第"...
2020-01-14 11:37:48
179
原创 java多线程——Condition源码解析
简介 condition可以通俗的理解为条件队列。当一个线程在调用了await方法以后,直到线程等待的某个条件为真的时候才会被唤醒。这种方式为线程提供了更加简单的等待/通知模式。Condition必须要配合锁一起使用,因为对共享状态变量的访问发生在多线程环境下。一个Condition的实例必须与一个Lock绑定,因此Condition一般都是作为Lock的内部实现。condi...
2020-01-13 16:53:02
209
原创 java多线程——ReentrantLock源码解析
简介jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这个类有2个构造方法:/** * Creates an instance of...
2020-01-09 20:30:11
224
原创 Java多线程——CyclicBarrier源码解析
简介CyclicBarrier可以使一定数量的线程反复地在栅栏位置处汇集。当线程到达栅栏位置时将调用await方法,这个方法将阻塞直到所有线程都到达栅栏位置。如果所有线程都到达栅栏位置,那么栅栏将打开,此时所有的线程都将被释放,而栅栏将被重置以便下次使用。CyclicBarrier源码解析它有两个构造函数:public CyclicBarrier(int parties, Run...
2020-01-09 09:20:44
200
原创 Java中的IO
java IO1.IO相关概念1.1什么是IO所谓IO即input和output的缩写,是对数据的流入和流出的一种抽象,编程中很常见的一个概念。1.2什么是流体会一下这几个词:水流(静止的水想必没人会叫水流),物流,人流(此人流非彼人流 = =!),可以发现流的特点:动态的,可转移的,从一处到另一处的1.3 java iojava为了我们调用方便,而屏蔽输入/输出源...
2020-01-08 11:23:46
211
原创 Redis数据结构—字典
字典,又称为符号表、关联数组 、或映射,是一种用于保存键值对的抽象数据结构。在字典中每个键都是独一无二的。字典在redis中的应用相当广泛比如redis的数据库就是使用字典来作为底层实现的。字典的实现redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希节点,而每个哈希表节点就保存了字典中的一个键值对。哈希表typedef struct dictht { ...
2019-12-17 23:25:08
155
原创 Redis数据结构—链表
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度,但是redis使用的C语言并没有内置这种数据结构,所以redis构建了自己的链表实现。链表在redis中的应用非常广泛,比如列表键的底层实现之一就是链表,当一个列表键包含了数量比较多的元算,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现1.链表和链表节...
2019-12-17 20:16:07
318
原创 Redis数据结构—简单动态字符串(SDS)
简单动态字符串(简称SDS)是redis自己构建的一种抽象类型,并将SDS用作redis的默认字符串标识。1.SDS的定义struct sdshdr{int len;int free;char buf[];}len :用于记录buf数组中已使用的字节数量,等于sds保存字符串长度free: 用于记录数组中未使用字节的数量buf :是一个char类型的数组,用于保...
2019-12-17 20:15:25
92
原创 java虚拟机系列 -------JVM性能监控和调优
一、JVM性能监控1. JPS:进程状况工具作用:可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息参数说明-q:只输出进程 ID-m:输出传入 main 方法的参数-l:输出完全的包名,应用主类名,jar的完全路径名-v:输出jvm参数-V:输出通过flag文件传递到JVM中的参数2. jstat:统计信息监视工具作用:用于监控虚拟机各种运行状态信...
2019-08-16 11:58:45
197
原创 java虚拟机系列 -------GC工作流程
为什么要分代回收在一开始的时候,JVM的GC就是采用标记-清除-压缩方式进行的,这么做并不是很高效,因为当对象分配的越来越多时,对象列表也越来也大,扫描和移动越来越耗时,造成了内存回收越来越慢。然而,经过根据对java应用的分析,发现大部分对象的存活时间都非常短,只有少部分数据存活周期是比较长的,请看下面对java对象内存存活时间的统计:从图表中可以看出,大部分对象存活时间是非常短的,随着时...
2019-08-06 21:34:53
281
原创 java虚拟机系列 -------GC
GC==垃圾收集,他的主要工作分为两部1.检测垃圾 2.清除垃圾一.检测垃圾检测垃圾主要通过引用计数法和可达性分析算法来进行1.1 引用计数法就是给对象添加一个引用计数器,每当有一个地方引用的时候计数器就+1,当引用失效的时候计数器就-1.这种方法实现简单,效率很高,但是它很难解决对象之间循环引用的问题如:ObjA.C =ObjB ObjB.C =ObjA这两个对象相互引...
2019-08-05 21:02:03
130
转载 java反射
反射机制是Java的亮点之一,基于反射可动态调用某对象实例中对应的方法、访问查看对象的属性等**而无需在编写代码时就确定需要创建的对象,这使得Java可以实现很灵活的实现对象的调用,代码示例如:Class actionClass=Class.forName(外部实现类);Method method=actionClass.getMethod(“execute”,null);Object a...
2019-08-03 17:58:03
68
原创 java虚拟机系列 ------- JVM结构
1.JVM结构JVM的内部体系结构分为三部分 (1)类装载器(ClassLoader)子系统 作用: 用来装载.class文件 (2)执行引擎 作用:执行字节码,或者执行本地方法 (3)运行时数据区 方法区,堆,java栈,PC寄存器,本地方法栈1.1 jvm类加载器介绍:1.1.1 JVM将整个类加载过程划分为了三个步骤:(1)装载 装载过程负责找到二...
2019-08-03 17:54:24
160
原创 Java基础——Lambda表达式
早在2014年oracle发布了jdk 8,在里面增加了lambda模块。于是java程序员们又~~删除线格式~~ 多了一种新的编程方式:函数式编程,也就是lambda表达式。我自己用lambda表达式也差不多快4年了,但在工作中却鲜有看到同事使用这种编程方式,即使有些使用了,但感觉好像对其特性也不是很了解。我看了一上网上的资料也不少,自己整理了一下顺便写下一些自己的看法,希望我的分享能带给别人...
2019-07-13 17:09:15
146
转载 Linux 安装MongoDB并设为开机启动
设为开机启动创建配置文件vi /etc/init.d/mongodexport MONGO_HOME=/opt/mongodb/mongodb-linux-x86_64-3.4.9#chkconfig:2345 20 90#description:mongod#processname:mongodcase $1 in start) ...
2019-06-20 13:50:45
292
原创 springMvc-----获取处理器
先看看入口的代码/** * Process the actual dispatching to the handler. * <p>The handler will be obtained by applying the servlet's HandlerMappings in order. * The HandlerAdapter will be obtained by...
2019-05-06 20:45:54
198
原创 SpringMvc-访问处理流程
访问入口:HttpServlet类的service方法(该方法的request和response参数不是Http开头的)会想下 servlet的生命周期方法 service()方法是处理方法在DispatcherServlet中没有找到 它的父类中实现的,代码如下/** * Override the parent class implementation in order to int...
2019-05-06 16:53:46
191
原创 SpringMvc-DispatcherServlet 源码分析
那接下来咱们简单看看源码。。SpringMvc的入口是servlet 所以先简单聊聊servlet。Servlet的生命周期方法init()方法在Servlet的生命周期中,仅执行一次init()方法,它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()...
2019-05-06 15:42:27
169
原创 springMVC--流程
流程1、 用户发送请求至前端控制器DispatcherServlet2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet通过HandlerAdapter处理器适配器调用处...
2019-05-04 20:37:10
88
转载 代理模式
在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们...
2019-04-21 17:50:40
149
原创 Mysql 梳理
1.Mysql安装百度吧 有很多2.SQL语句2.1sql分类数据定义语言:DDL,定义数据库对象:数据库、表、列等 关键字 create、 alert、drop等数据操作语言:DML 用于对数据库中表的记录进行更新 关键字 insert 、update 、delete数据控制语言:DCL 用来定义数据库中的访问权限和安全级别,创建用户 关键字:grant等数据查询语言:DQ...
2019-04-16 18:16:20
277
转载 浅谈CSRF攻击方式
一.CSRF是什么?CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,...
2018-12-10 15:52:31
343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人