自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

情怀中的释然~

请相信,那年的小哥,依旧很猛!

  • 博客(80)
  • 资源 (13)
  • 论坛 (2)
  • 收藏
  • 关注

原创 2020年 Java面试题整理 最新Java面试题2020

文章目录1、类加载和实例化2、Java是值传递还是引用传递3、类加载的主要过程4、什么是GC5、简述垃圾回收过程6、内存泄漏7、导致内存泄漏的场景8、Java中堆和栈的区别9、ArrayList、LinkedList、Vector的区别10、StringBuffer和StringBuilder的区别11、HashMap、HashTable、TreeMap区别12、synchronized 与 Lo...

2020-02-18 09:42:35 31054 5

原创 AOP术语和流程

AOP术语和流程连接点(join point):对应的是具体被拦截的对象,因为spring只能支持方法,所以被拦截的对象往往就是特定的方法。切点(point cut):有时候,我们的切面不单单应用于单个方法,也可能是多个类的不同方法,这是,可以通过正则表达式和指示器的规则去定义,从而适配连接点。切点就是提供这样一个功能的概念。通知(advice):就是i按照约定的流程下的方法,分为前置通知(...

2020-02-23 10:27:24 272

原创 SpringBoot中Bean的生命周期

SpringBoot中Bean的生命周期Bean的定义Bean的初始化Bean的生存期Bean的销毁spring通过我们的配置,如@ComponentScan定义的扫描路径去找到带有@Component的类,这个过程就是一个资源定位的过程。一单找到了资源,那么它就开始解析,并且将定义的信息保存起来。注意此时还没有初始化Bean,也就是没有Bean的实例,它有的仅仅是Bean的定义。...

2020-02-23 10:26:43 543

原创 如果同一接口有多个实现类 该如何对该类型的子类进行依赖注入

如果同一接口有多个实现类 该如何对该类型的子类进行依赖注入@AutoWired@Qualifier(“dog”) // 注入Animal实现类DogAnimal animal;

2020-02-23 10:25:47 441

原创 依赖注入Dependency Injection,DI

依赖注入Dependency Injection,DI@AutoWired,他注入的机制最基本的一条是:根据类型(by type),根据类型从IOC容器中获取bean。使用AutoWired进行依赖注入的时候,如果注入的接口有多于一个的实现类,可一根据变量名称,从IOC容器中获取对象。Animal接口 两个实现类:dog、cat@AutoWiredAnimal animal; // 报错...

2020-02-23 10:25:16 225

原创 Spring IOC

Spring IOCIOC容器是一个管理bean的容器,在spring的定义中,他要求所有的ioc容器都需要实现接口BeanFactory,他是一个顶级容器接口。在IOC容器中,默认情况下,Bean都是以单例形式存在的,也就是说getBean方法返回的都是同一个对象。AnnotationCofingApplicationContext:BeanFactory、ApplicationConte...

2020-02-23 10:24:44 164

原创 SpringBoot的优点

SpringBoot的优点创建独立的Spring应用程序嵌入的tomcat、jetty或者undertow,无需部署war文件允许通过maven来根据需要获取starter尽可能的自动配置Spring提供生产就绪型功能,如指标、健康检查和外部配置绝对没有代码生成,对xml没有要求配置...

2020-02-23 10:24:14 175

原创 Spring核心理念

Spring核心理念ioc:控制反转,通过控制反转来管理各类Java资源,从而降低了各种资源的耦合;并且提供了极低的侵入性aop:面向切面,通过动态代理技术,允许我们按照约定进行配置编程,进而增强了bean的功能。...

2020-02-23 10:23:43 391

原创 HashMap的时间复杂度

HashMap的时间复杂度get()方法最好情况O(1),最差情况O(N),平均O(1)put()方法最好情况O(1),最差情况比较复杂,其中底层实现还涉及到map扩容最好情况 没出现hash碰撞最坏情况 所有key的hash值都一样...

2020-02-23 10:23:10 947

原创 MQ使用时候的注意事项

MQ使用时候的注意事项消费者去注册相关Exchange和将Queue绑定到Exchange生产者只需要注册Exchange并将消息发布到对应的Exchange一个消费队列可以拥有多个消费者 这些消费者是负载均衡的去处理消息的(多劳多得)模式...

2020-02-23 10:22:44 334

原创 RabbitMQ消息队列五种队列

RabbitMQ消息队列五种队列• 简单队列• Work模式1个生产者对应n个消费者 一个消息只能被一个消费者消费• 发布/订阅模式1个生产者对应n个消费者每个消费者有自己的队列生产者没有将消息直接发送到队列,而是发送到了交换机每个队列都要绑定到交换机生产者发送的消息,经过交换机,到达队列,实现,一个消息被多个消费者获取的目的注:一个消费者队列可以有多个消费者实例,只有其中一...

2020-02-23 10:22:05 153

原创 TCP三次握手 四次挥手

TCP三次握手 四次挥手1、三次握手• 客户端向服务器发送SYN同步报文段,请求建立连接• 服务器确认收到客户端的连接请求,并向客户端返送SYN同步报文,表示要想客户端建立连接• 客户端收到服务器的确认请求后,处于建立连接状态,向服务器发送确认保温客户端是在收到确认请求后,先建立连接服务器是在收到客户端的确认后,建立连接发起连接请求的一定是客户端客户端请求建立连接→服务端确认收到...

2020-02-23 10:20:29 76

原创 设计模式

设计模式a:根据使用场景 设置模式分类:创建型模式 结构型模式 行为型模式b:23种设计模式单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。工厂方法(Factory Method)模式:定义一个用于创建产...

2020-02-23 10:19:19 116

原创 ZooKeeper中Leader选举流程

ZooKeeper中Leader选举流程集群运行期间,Leader故障后的选举流程(三台服务器)a:变更状态。leader挂后,余下的非Observer服务器都会将自己的服务状态变更为LOOKING,然后开始进入leader选举过程。b:每个Server会发出一个投票。在运行期间,每个服务器上的zxid可能不相同,此时假定zk1的的zxid为124,zk3的zxid为123;在第一轮投票中...

2020-02-23 10:18:34 210

原创 ZooKeeper中Leader选举流程

ZooKeeper中Leader选举流程1、ZooKeepter节点状态LOOKING:寻找Leader状态,处于该状态需要进行选举流程LEADING:领导者状态,处于该状态的节点说明是角色已经是LeaderFOLLOWING:跟随者状态,表示Leader已经选举出来,当前节点角色是followerOBSERVER:观察者状态,表明当前节点角色是observer(不参与投票)2、事务I...

2020-02-23 10:17:41 245

原创 Connection Per Thread模式

Connection Per Thread模式Connection Per Thread模式,一个线程处理一个连接模式,早期版本的Tomcat服务器,利用这种原理实现;对于每一个新的网络连接都会分配给一个线程,每隔线程都独立处理自己负责的输入和输出。缺点:对应于大量的连接,需要耗费大量的线程资源,对线程资源要求太高。而且线程的反复创建、销毁、线程的切换也需要代价。因此,在高并发的应用场景下,...

2020-02-23 10:16:42 443

原创 Reactor反应器模式

Reactor反应器模式反应器模式由Reactor反应器线程、handlers处理器两大角色组成:a:Reactor反应器线程的职责:负责响应IO事件,并且分发到Handlers处理器b:Handlers处理器的职责:非阻塞的执行业务处理逻辑...

2020-02-23 10:16:09 103

原创 守护线程和主线程声明周期关系

守护线程和主线程声明周期关系一个进程可以有多个守护线程 可以通过Thread.setDaemon(true)来设置守护线程a:虚拟机中可能同时有多个线程运行,只有当所有的非守护线程(通常都是用户线程)都结束的时候,虚拟机的进程才会结束,不管当前运行的线程是不是 main 线程。b:main 线程运行结束,如果此时运行的其他线程全部是 Daemon 线程,JVM 会使这些线程停止,同时退出。但...

2020-02-23 10:15:38 163 1

原创 subString和split效率问题

subString和split效率问题// split效率低于subStringfor (Expression param : expressions) { // 获取字段的名称 String key = param.toString(); // 字段名字中包含as 使用as名称做key 否则适用.后面字段做key int asIndex = key.index...

2020-02-23 10:15:04 325

原创 为什么使用消息队列MQ

为什么使用消息队列MQ解耦:服务A是基础服务,任何新接入的服务都要对接A服务,每个人对接A都需要改代码。异步:用户一次请求A、B、C三个服务,每个服务耗时40ms,需要等待120ms,访问A后写入消息队列,避免用户等待。削峰填谷:中午12点,用户量最多的时候,服务器压力过大,可以先将请求保存在消息队列中,慢慢处理...

2020-02-23 10:14:27 86

原创 通过消息队列实现分布式事务

通过消息队列实现分布式事务表设计:生产者:账户余额表、事务记录表消费者:账户余额表、消息记录表生产者事务流程:a:支付宝账户扣除100元b:给事务记录表中新增一条事务记录 (a、b两步操作在同一个数据库中,可以保证事务一致性,同时成功,同时失败)定时程序流程:a:定时扫描生产者事务记录表中状态为未完成的记录,将未完成记录发送到消息队列中b:将生产者事务记录表中的状态改为已完成...

2020-02-23 10:13:21 429

原创 是否真的需要分布式事务

是否真的需要分布式事务尽量减少过度设计,太多团队过度设计,搞的所有人疲劳不堪,而微服务过多就会引出分布式事务,这个时候需要将用到事务的微服务聚合成一个单机服务,使用数据库的本地事务。分布式事务的原则是:尽量使用数据库的本地事务,因为分布式事务无论是那种方案都会增加你系统的复杂度,这样的成本实在是太高了,千万不要因为追求某些设计,而引入不必要的成本和复杂度。...

2020-02-23 10:12:29 155 2

原创 BASE

BASEBASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent (最终一致性)三个短语的缩写。是对CAP中AP的一个扩展a:基本可用:分布式系统在出现故障时,允许损失部分可用功能,保证核心功能可用。b:软状态:允许系统中存在中间状态,这个状态不影响系统可用性,这里指的是CAP中的不一致c:最终一致:最终...

2020-02-23 10:11:56 87

原创 CAP三者是否可以共有

CAP三者是否可以共有CAP三者不能共有,在分布式系统中,网络无法保证100%可靠,分区其实是一个必然现象,如果我们选择了CA而放弃了P,那么当繁盛分区故障现象时,为了保证一致性,在这个时候必须拒绝请求,但是A又不允许,那么分布式系统理论上不可能选择CA架构,只能选择CP或者AP架构。对于CP来说,放弃可用性,追求一致性和分区容错性,我们的ZooKeeper其实就是追求的强一致性对于AP来说...

2020-02-23 10:11:24 110

原创 分布式事务CAP定理

分布式事务CAP定理C(一致性):对某个指定的客户端来说,读操作能返回最新的写操作。对于数据分布在不同节点上的数据来说,如果在某个节点的数据更新了,那么其他节点如果都能读取到这个最新的数据,那么就成为强一致性,如果有某个节点没有读取到,那就是分布式不一致。A(可用性):非故障的节点在合理的时间内返回合理的响应(不是错误和超时的相应)。可用性的两个关键一个是合理的时间,一个是合理的相应。合理的时...

2020-02-23 10:10:53 169

原创 MySql一般数据达到千万级的数据就得分库分表

MySql一般数据达到千万级的数据就得分库分表

2020-02-23 10:10:22 1298

原创 什么是分布式事务

什么是分布式事务简单来说,就是一次大的操作由不同的小操作组成,这些小操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。...

2020-02-23 10:09:48 84

原创 @CachePut和@Cacheable的区别

@CachePut和@Cacheable的区别@CachePut负责增加缓存@Cacheable负责查询缓存,如果没查到,则将执行方法,并将方法的结果增加到缓存

2020-02-23 10:09:15 450

原创 Spring缓存相关的注解

Spring缓存相关的注解@CachePut:设置缓存,先执行方法,并将执行结果缓存起来@CacheEvict :删除缓存,在执行方法前,删除缓存@Cacheable:查询缓存,先查询注解中的key是否在缓存中,如果在直接返回缓存值,如果缓存中不存在,执行方法...

2020-02-23 10:08:40 60

原创 RedisTemplate封装的操作Redis方式

RedisTemplate封装的操作Redis方式ValueOperations字符串类型操作API集合ListOperations列表类型操作的API集合SetOperations集合类型的操作API集合ZSetOperations有序集合类型操作API集合HashOperations哈希类型操作API集合...

2020-02-23 10:08:10 249

原创 为什么要使用缓存

为什么要使用缓存主要原因是数据库的查询是比较耗时的,而使用缓存能大大节省数据查询的时间

2020-02-23 10:07:41 167

原创 分布式锁主流实现方案和选型

分布式锁主流实现方案和选型a:基于Redis的分布式锁。使用并发量很大、性能要求很高而可靠性问题可以通过其他方案弥补的场景b:基于ZooKeeper的分布式锁。适用于高可靠(高可用),而并发量不是太高的场景...

2020-02-23 10:07:00 186

原创 ZK实现分布式锁步骤

ZK实现分布式锁步骤a:所有需要竞争资源的进程,都在ZK一个持久化节点创建一个临时的有序的子节点b:每个子节点阻塞并监听自己上一个子节点,如果上一个删除的时候,说明自己可以获取锁进行操作(上一个删除后还要判断下自己是不是最小的节点,如果不是,再去监听自己前一个节点)c:如果当前获取锁的节点由于网络原因或者系统故障不可用了,因为是临时节点,连接不可用的时候会自动删除节点,可以有效防止死锁的情况...

2020-02-23 10:06:27 112

原创 分布式锁原理

分布式锁原理单体服务中,使用jvm内的Synchronized和Lock即可,分布式环境下,多台机器,对应多个jvm,多个进程,因此需要使用统一的分布式锁进行同步操作ZK实现分布式锁的核心是:临时有序节点 临时可以防止死锁,有序可以保证同步(InterProcessMutex)...

2020-02-23 10:05:57 101

原创 Curator几个NodeCache节点缓存监听

Curator几个NodeCache节点缓存监听NodeCache:节点缓存可用于ZNode节点的监听PathCache:子节点缓存可用于ZNode的子节点的监听TreeCache:树缓存时PathCache的增强,不光能监听子节点,还能监听ZNode节点自身...

2020-02-23 10:05:26 629

原创 Curator封装ZK分布式事件监听

Curator封装ZK分布式事件监听a:标准的观察者模式:Watcherb:缓存监听模式:Cache二者的区别Cache监听机制可以反复注册监听,基于Watcher监听器只能监听一次...

2020-02-23 10:04:51 63

原创 ZK实现ID生成器满足哪些特性

ZK实现ID生成器满足哪些特性a:全局唯一:不能出现重复IDb:高可用:ID生成系统是基础系统,被许多关键系统调用,一旦宕机,就会造成严重影响

2020-02-23 10:03:54 96

原创 ZK分布式命名使用场景

ZK分布式命名使用场景分布式API目录:服务注册与发现 provider向zk的节点注册ip和端口暴露服务 消费者获取地址并访问分布式ID生成器:单体服务可以利用数据库自增生成主键 分布式环境下 需要使用分布式ID生成器分布式节点的命名:分布式系统中 节点(机器)动态扩容时候 为动态节点自动命名...

2020-02-23 10:03:24 95

原创 ZooKeeper的四种节点类型

ZooKeeper的四种节点类型PERSISTENT:持久化节点PERSISTENT_SEQUENTIAL:持久化有序节点PHEMERAL:临时节点EPHEMERAL_SEQUENTIAL:临时有序节点注:临时节点下不能创建子节点,临时节点的声明周期不是永久,跟随客户端连接,客户端会话失效后,临时节点会自动删除...

2020-02-23 10:00:40 717

原创 开源ZooKeeper客户端Curator

开源ZooKeeper客户端Curator

2020-02-23 10:00:08 48

java&android;解析xml 将xml转换为json

java&android;解析xml 将xml转换为json java&android;解析xml 将xml转换为json 原文地址:https://blog.csdn.net/u010838785/article/details/82258411

2018-08-31

idea_android_studio设置文件备份

idea_android_studio设置文件备份 idea常用功能的备份 使用时候 直接打开idea/AndroidStudio 选择导入设置 功能有 字体 黑色系主题 代码高亮 常用的代码样式设置

2018-06-07

droidAtScreen-1.1

droidAtScreen-1.1将手机屏幕显示到电脑上面的一个工具 小巧 实用 win10下jar运行不起来 不知道原因 小伙伴们可以试一下 分享给大家

2018-06-07

Kotlin 官方参考文档 中文版_kotlin-reference-chinese.pdf 下载

Kotlin 官方参考文档 中文版_kotlin-reference-chinese.pdf

2017-05-19

微软雅黑Monaco字体

最好看的编程字体

2017-03-03

Android展示指定文件夹下面的所有的图片

Android展示指定文件夹下面的所有的图片

2017-01-17

Android弹框工具类

Android弹框工具类

2017-01-05

Android饼状图实现jar包

Android实现折线图 饼状图 等统计图

2017-01-03

swiperefreshlayout支持上拉加载

swiperefreshlayout比较简洁的上拉加载下拉刷新 看到肯定喜欢

2016-12-09

android-support-v13.jar

android-support-v13.jar包含android-support-v4.jar 如果项目中导入了V13包 就包含了V4包 不需要再去导入V4包

2016-11-22

2016-10-20最新版的 android-support-v4 包

2016-10-20最新版的 android-support-v4 包

2016-10-20

SDK中的混淆文件

SDK中的混淆文件所在的文件夹备份

2016-09-30

发现新版本自动更新demo

闪屏界面检查是否有新的版本,如果有新版本 开启服务进行更新 通知栏显示更新的进度

2016-09-26

414丶小哥的留言板

发表于 2020-01-02 最后回复 2020-01-02

Jsoup解析Html问题

发表于 2016-06-09 最后回复 2016-06-09

空空如也

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

TA关注的人 TA的粉丝

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