自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法】刷题上常用的数据结构的方法

栈二叉树的迭代遍历要用到栈,java 创建栈 Deque<Integer> stack = new LinkedList<Integer>(); 常用方法:stack.isEmpty(); //判断是否为空stack.push(num);//入栈int num = stack.pop(); //出栈int top = stack.peek();//查看栈顶元素...

2021-02-27 12:20:57 174

原创 【算法】dfs总结

二叉树的迭代遍历用压栈的方法来进行迭代 ,最关键的是用null标志来区分每个递归调用栈,不同遍历顺序只用改变压栈顺序即可(先序遍历:右节点->左结点->根节点 //中序遍历: 右节点->根节点->左结点 //后序遍历: 根节点->右节点->左结点)我们在每次处理过的结点压栈后,在给他后面压一个空结点,这样栈顶元素如果是null就说明他下面的那个结点已经被处理过了,就直接访问就好了。这样前序遍历、中序遍历、后序遍历就统一了!class Solution {

2021-02-27 12:18:08 164 1

原创 【算法】排序问题整理

排序快排TopK问题使用堆解决使用快排快排选一个基数,使基数左边的都小于它,右边的都大于它,然后以基数为分界点对左右两边区间进行同样的操作class Solution { public int[] sortArray(int[] nums) { int n = nums.length; quickSort(nums,0,n-1); return nums; } public void quickSort(in

2021-02-27 09:11:55 144

原创 【并发】面试整理

有序:TreeMap线程不安全跳表 线程安全ThreadLocal

2021-02-25 16:03:12 83

原创 我的面试

我的面试阿里淘系技术部 一面2.25阿里淘系技术部 一面2.25项目问题项目中遇到哪些问题是如何解决的用一台Redis存热点问题,有大量请求过来Redis扛不住了该如何解决消息队列消费端消息丢失怎么解决、发送端消息丢失怎么解决RocketMQ保证消息顺序性本地缓存用什么实现的guava的底层原理JAVA基础遇到过的JAVA异常计算机网络TCP连接断开MysqlMysql底层实现原理如果有500万条数据,用java从mysql读查询语句该怎么写

2021-02-25 15:48:02 224

原创 【消息队列】面试题及答案整理

消息队列面试题为什么要使用消息队列/消息队列的应用场景使用了消息队列会有什么缺点如何保证消息队列是高可用的RocketMQ是如何保证消息队列是高可用的如何保证消息不被重复消费/如何保证消息消费的幂等性如何保证消费的可靠性传输RocketMQ如何保证消费的可靠性传输RabbitMQ如何保证消费的可靠性传输Kafaka如何保证消费的可靠性传输如何保证消息的顺序性RocketMQ处理消息积压问题为什么要使用消息队列/消息队列的应用场景消息队列的主要作用是:解耦、异步、削峰。解耦如果A系统要发送数据给B、

2021-02-24 15:06:25 7056

原创 【消息队列】RocketMQ架构和特性

消息队列RocketMQRocketMQ架构RocketMQ 分为四个角色:NameServer Cluster 注册中心每一个NameServer都会拥有全量的Broker Cluster的信息,因为NameServer是无状态的Broker ClusterBroker为定时向NameServer发送心跳,进行注册Consumer Cluster无状态的Producer Cluster无状态的无状态的 也就是相互之间没有感知主从数据同步方式:同步:master执行完后还要把

2021-02-23 23:31:49 364

原创 【Spring】Spring整合Mybatis核心原理分析

Spring整合Mybatis核心原理分析1.3.2版本Mybatis的注册逻辑:实现ImportBeanDefinitionRegistrar接口,重写其registerBeanDefinitions方法 :注册mapper接口,并将接口声明为FactoryBean,设置拦截方法,生成代理类。参考1.3.2版本通过@MapperScan导入了MapperScannerRegistrar类MapperScannerRegistrar类实现了ImportBeanDefinitionRegistra

2021-02-22 23:05:19 148

原创 【Spring】面试问题整理

Spring面试问题整理IOC循环依赖IOC谈谈对spring ioc的理解spring ioc主要就是控制反转和依赖注入控制反转:把依赖注入:循环依赖如何解决循环依赖: 用三级缓存为什么要用三级缓存解决循环依赖因为用三级缓存可以保证两个代理对象能够相互拿到循环依赖对普通的对象的相互依赖 用两级缓存就可以解决...

2021-02-22 12:22:40 177 1

原创 【Redis】面试问题及答案整理

Redis面试问题整理redis的常见数据类型及应用场景redis是单线程为什么还这么快redis 和 memcached 的区别redis 内存淘汰机制

2021-02-21 19:47:06 451

原创 【LeetCode】链表专题总结

LeetCode链表专题总结双指针找链表的中间结点(快慢指针)获取倒数第k个元素(快慢指针)环形链表判断链表是否有环返回链表开始入环的第一个节点判断环的长度反转链表反转整个链表反转链表前N个节点反转单链表的一部分回文链表重排链表相交链表链表排序问题链表经典题目两数相加合并链表合并两个有序链表合并k个排序链表基础操作插入节点删除节点删除单向链表中间的某个节点删除p节点后面的元素双指针找链表的中间结点(快慢指针)通过快慢指针fast 和slow 都从head开始,fast走两步,slow走一步,当fast

2021-02-20 23:43:52 389 1

原创 【ElasticSearch】

ElasticSearches的名词解释搜索引擎基础es是倒排索引TF-IDF搜索引擎是一个检索服务,主要分全文检索(如百度)和垂直检索(如京东)。ElasticSearch是分布式的索引库,对内就是一个nosql的数据库,我们称为索引。对外提供检索服务,方式是http或者transport协议(7.0以后不支持)对外提供搜索。es的名词解释搜索引擎基础es是倒排索引es用的是倒排索引, 根据value去找key一个value可以对应很多个key正向索引:(根据key找value)类似

2021-02-14 23:58:39 105

原创 【Zookeeper】集群模式启动源码解析

Zookeeper集群模式启动源码解析runFromConfigquorumPeer.start() 集群模式服务器启动步骤listener.run()startLeaderElection()createElectionAlgorithm()super.start() 启动集群Leader选举功能sendNotifications()状态ServerState:LOOKING:(启动的时候默认状态)集群里没有选举出Leader的时候,所有节点都是这个状态FOLLOWING:Follower的状态

2021-02-11 01:05:45 200

原创 【Zookeeper】典型使用场景实战

公平锁 互斥锁InterProcessMutexacquireattemptLock 加锁createsTheLock() 创建节点创建父节点是容器节点,这样这个节点的所有子节点都被删除后,它就会被删除子节点是临时顺序结点internalLockLoop() 判断刚刚创建的节点是不是序号最小的获取所有子节点并排序getsTheLock 看当前节点是不是最小的不是最小的就去监听前一个结点Zookeeper和redis分布式锁比较redis是主从模式,

2021-02-10 17:15:40 424 2

原创 【Zookeeper】单机模式启动与接收数据模型源码解析

Zookeeper单机模式启动与接收数据模型源码解析DataTree : 节点的存储形式DataNode服务端架构ZooKeeperServerMain.main(args)runFromConfig 单机环境下启动Zookeeper绑定端口start() :SelectorThread和AcceptThread的启动RequestProcessorDataTree : 节点的存储形式DataNode服务端架构当服务端接收到命令做的事:解析配置文件:先持久化命令,即事务日志、快照再更新

2021-02-09 02:27:08 147

原创 【Zookeeper】集群

Zookeeper集群角色集群环境搭建集群动态配置角色LeaderFollowerObserverObserver存在的价值这个Zookeeper的机制有关:Zookeeper使用叫zd的一致性协议,所有的写请求都会有Leader来处理(Follower、Observer接受到请求也会把请求转给LeaderLeader对写请求的处理:首先把写请求存到事务日志,然后把这个写请求转发到其他的Follower结点,Follower结点也会把这个写请求存到事务日志中,当集群中有一半的机器存

2021-02-08 17:29:34 128

原创 【Zookeeper】Zookeeper客户端使用 Curator的使用

Zookeeper客户端创建Zookeeper客户端使用Zookeeper完成增删查改获取数据的方式同步异步curator客户端连接创建节点自定义线程池创建Zookeeper客户端我们创建Zookeeper客户端时的sendThread和eventThread都是守护线程(没有业务线程在运行的时候,守护线程就会退出)。因此我们不能在main 里直接new Zookeeper,因为可能当我们创建好Zookeeper客户端后连接还没建立,main线程就结束了,而我们的两个线程都是守护线程,main线程一退

2021-02-08 13:47:26 270

原创 【Zookeeper】ZooKeeper 内存数据和持久化

ZooKeeper 内存数据和持久化ZooKeeper 内存数据和持久化Zookeeper在内存中的存储形式事务日志数据快照为什么有了事务日志还要快照数据ZooKeeper 内存数据和持久化Zookeeper在内存中的存储形式Zookeeper数据的组织形式为一个类似文件系统的数据结构,而这些数据都是存储在内存中的, 所以我们可以认为,Zookeeper是一个基于内存的小型数据库内存中的数据Zookeeper是以DataNode的形式存在ConcurrentHashMap中的public c

2021-02-08 01:58:14 533

原创 【Zookeeper】1、Zookeeper特性与节点数据类型详解

Zookeeper特性与节点数据类型详解Zookeeper介绍Zookeeper经典应用场景zookeeper特性文件系统数据结构节点类型关于节点命令监听通知机制Zookeeper的ACL( Access Control List )权限控制相关命令口令模式秘钥授权明文授权Super 超级管理员模式IP授权Zookeeper介绍zookeeper,它是一个分布式协调框架,是Apache Hadoop 的一个子项 目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服

2021-02-08 01:31:03 510

原创 【Zookeeper】Zookeeper的安装与启动

Zookeeper的安装与启动Zookeeper安装Zookeeper启动连接服务器配置文件Zookeeper安装配置JAVA环境,检验环境java ‐version下载解压 zookeeperwget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper‐3.5.8/apache‐zookeepe r‐3.5.8‐bin.tar.gztar ‐zxvf apache‐zookeeper‐3.5.8‐bin.tar.gzcd apache‐

2021-02-08 01:28:33 155

原创 【SpringBoot】创建一个SpringBoot项目

创建一个SpringBoot项目创建一个SpringBoot项目将SpringBoot项目打成jar包将SpringBoot项目打成war包设置pom.xml的自动提示创建一个SpringBoot项目创建一个空的项目新建一个module添加依赖父项目pom.xml <!--会把依赖都放到dependencyManagement--> <parent> <groupId>org.springframework.bo

2021-02-06 20:23:51 201

原创 【SpringMVC】零xml配置原理

SpringMVC零xml配置原理使用内置Tomcat实现零xml配置的步骤使用内置Tomcat使用maven在pom.xml中加入Tomcat <build> <finalName>spring-mvc</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven<

2021-02-04 22:20:59 207

原创 【并发】13、定时任务ScheduledThreadPoolExecutor

ScheduledThreadPoolExecutorschedule延后多少秒执行异步阻塞处理:schedule的callable可以不用让提交任务的线程即主线程一直等着返回结果scheduleAtFixedRate周期性发布任务,每period执行一次任务, 如果任务执行时间大于period,那就会有任务一直堆积scheduleWithFixedDelay周期性发布任务,每次都是任务执行完delay时间后,再次执行任务下面这部分就是任务提交的过程:scheduleWithFix

2021-02-04 01:09:19 278 1

原创 【Redis】分布式锁

Redis分布式锁为什么要用分布式锁基于Redis的分布式锁RedissiontryLock()unLock()watch dog 自动延期为什么要用分布式锁如果原本我们的系统分布在一台机器上的时候,JVM提供的锁就能解决并发问题。但是如果我们是使用多台机器,要同时去Redis里面去拿同一个Key 这个时候,就会发生并发问题,因为这个时候JVM的锁事无法解决这个问题。基于Redis的分布式锁加锁:最简单的方法是使用setnx 命令,Key 是锁的唯一标识setnx key value :是去

2021-02-03 19:08:45 277

原创 【Spring MVC】

web服务器就是把资源映射成url,主要以下三步:接收请求–统一的解析Tomcat会把请求解析成ServletRequest处理请求-- 提供给程序员进行开发的部分响应请求–统一的解析Tomcat会解析成ServletResponseServlet 规范Servlet规范其实就是Servlet接口Servlet生命周期创建init(ServletConfig config)init必须提供ServletConfigService 处理请求destroyGenericSer

2021-02-03 17:23:56 72

原创 【并发】12、Executor线程池原理与源码解读

Executor线程池原理与源码解读execute()addWorker()runWorker()getTask()Worker属性构造器阿里巴巴规范不建议直接用Executor.newCachedThreadPool(),而是应该手动创建线程池:new ThreadPoolExecutor()public ThreadPoolExecutor(int corePoolSize, //核心线程数int maximumPoolSize,//最大线程数long keepAliveTime,//最大

2021-02-03 13:34:54 144

空空如也

空空如也

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

TA关注的人

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