自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring概念补充

Spring加载流程图解析xml-创建beandefinition-放入definitionmap中-判断是否有扩展方法有的话去执行beanfactorypostprocessor方法没有的话解析beandifinition放入map中Spring扩展点spring依赖循环定义:循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。解释下就是A中有B B中有A 创建的时候会永久的循环下去在xml中使用depends-on解决循环依赖的问题只能只

2021-03-21 23:00:48 71

原创 JVM 类加载机制

类加载过程JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这 五个过程。1.加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对 象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既 可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也可以在运行时计算生成(动态代理), 也可以由其它文件生成(比如将 JSP 文件转换成对应的 Class 类

2020-12-22 16:38:06 67

原创 java基础算法一

递归思想递归是算法设计中的一种基本而重要的算法。递归方法通过函数调用自身将问题转化为本质相同但规模较小的子问题,是分治策略的具体体现。递归算法的定义:如果一个对象的描述中包含它本身,我们就称这个对象是递归的,这种用递归来描述的算法称为递归算法经典例子 斐波那契数列数列0、1、1、2、3、5、8、13、21、34......代码实现 public static int test(Integer n) { if(n==1||n==2) { ...

2020-12-03 15:23:30 148

原创 SpringBoot设计理念

一、springboot介绍springboot是对spring和其他第三方库进行整合,可创建可以运行的 独立的,生产级别的spring程序。设计目标为所有spring开发提供更快且更通用的入门体验开箱即用,可以通过需求调整默认值提供大型项目通用的一系列非功能性的功能绝对没有代码生成,也没有xml文件第一个springboot程序运行springboot1.运行main方法2.maven 运行 mvn springboot:run 需要添加spring-b

2020-12-02 22:52:53 362

原创 JVM整理

第一篇文章粗略的写了JVM这次深入学习后 做出来整理JVM概念概念JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接 的交互。JVM 内存区域1.程序计数器一块较小的内存空间,是当前线程执行指令码的信号指令器 每个线程都有自己独立的计数器 属于线程私有内存2.虚拟机栈是描述java方法执行的内存模型 每个方法会创建一个栈帧 用于存储局部变量表

2020-12-02 12:06:56 60

转载 Tomocat架构

俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomcat来说至关重要! 一、Tomcat顶层架构先上一张Tomcat的顶层结构图(图A),如下:Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个S..

2020-12-01 16:08:25 178

原创 二叉树概念汇总

最近重新学习树的概念 我看了很多文章 把概念总结下一、树可参考https://www.cnblogs.com/gaochundong/p/binary_search_tree.html#binary-treehttps://blog.csdn.net/qq_34840129/article/details/80619761https://blog.csdn.net/qq_25940921/article/details/821830931.树概念树(Tree)是由多个节点(Nod

2020-12-01 15:26:12 94

原创 spring概念

一、spring特点1.轻量级2.控制翻转1.1 spring通过IOC来控制低耦合1.2 当应用了IOC一个对象依赖的其他对象会通过被动的方式传进来,而不是自己创建 或者自己查找3.面向AOP3.1 spring面向切面编程 并把业务逻辑和系统服务分开4.容器4.1 spring包含并管理应用配置对象的生命周期,这个意义上它是一种容器5.框架整合5.1 spring可以将简单的组件,配置组合成复杂的服务5.2 spring也提供了基础功能,并将业务逻辑的开发留.

2020-11-27 13:45:05 130

原创 分布式系统的重要理论

CAP定理分布式系统数据存储不可能提供以下三种的两种以上一致性:每次读取的信息是最新的可用性:每次收到的请求都会被响应分区容错性:尽管节点之间的网络不通导致分区,系统任然可以运行...

2020-11-08 22:00:11 51

原创 分布式一致性原理

一、理解一致性1.多份相同的数据保持一致a.多份相同数据一处修改,保持多份一致当S1修改时 S1将数据同步至S2 S2相应S1B.一个业务变更不同数据保持整体一致什么情况会不一致1异常导致操作不成功2网络分区3服务器故障如何对应1. 2PC2PC过程2pc不足1、阻塞第一阶段是步骤3协调者挂了,所有参与者都会阻塞 2、不一致步骤5参与者宕机无法收到提交消息2PC实现应用:JTA...

2020-11-08 12:15:17 57

原创 Zookeeper集群

zookeeper集群ZAB协议ZAB协议是为zookeeper专门设计的数据一致性协议ZAB协议过程1.接受请求2将请求转发给leader3.leader分配全局递增事务id,广播事务提议4 follower处理提议,做出反馈5 leader 收到半数反馈,广播commitzab重要特性:一致性...

2020-11-05 23:24:35 38

原创 zk核心概念

一 session会话一个连接一个会话 由zk配置会话ID客户端每隔一段时间 发送心跳 保持会话有效:tickettime超过会话时间没有心跳则判定死亡 2tickettime会话请求按照FIFO进行二 数据模型类似linxux文件系统由'/'为根区别:节点可包括之前关联的节点以及子数据znode名称唯一命名规范节点类型:持久 create /a顺序 create -s /a临时 create -e /a临时顺序create -e -s /a...

2020-10-26 00:23:46 146

原创 ZK入门

何为分布式协调服务单机处理能力有限,变成分布式原来单机进程中完成多个步骤,变成多个计算机完成,这个时候就要协调多个服务的顺序,原来进程中资源争夺变成了多台计算机的资源争夺,也要分布式协调我们把分布式协调管理做出一个公共服务给大家使用 抽出来给大家使用 这就是分布式协调服务什么是zookeeper简介 APACHE ZOOKEEPER 是一种用户分布式应用程序的高性能协调服务,提供一种集中式信息存储数据存在内存中,树形结构存储,高吞吐量 低延迟 提供一种集中式信息服务作用,基于zo

2020-10-25 23:07:41 69

原创 互联网架构演变之路

一、不知名的小网站 一台服务器满足要求典型的技术:linux+mysql+PHP+apache面临的问题:性能越来越差;越来越多数据导致存储空间不足二、应用服务分离应用服务器:需要更强大CPU数据服务器:需要更快的硬盘和更高的内存文件服务器:需要更大的硬盘不同的服务器承担不同的角色->性能提升面临的挑战:数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验受影响三、使用缓存改善性能常用缓存:redis memcach发展问题:请求连接

2020-10-22 23:39:52 68

原创 io编程之netty(一)netty线程模型

一、netty简介netty是一个高性能,高可扩展性的异步事件驱动的网络程序应用框架,他极大简化了tcp、udp的网络编程netty四个重要内容1、Reactor线程模型:一种高性能的多线程设计思路2、channel:相比nio的性能扩展3、ChannelPipeline责任链模式:事件处理机制4、内存管理:增强版的bytebufnetty结构图代码实例package netty.nettytest;import io.netty.bootstrap.Ser.

2020-06-24 10:06:20 326

原创 IO编程基础

一各种IOBIO(阻塞):资源不可用时,IO请求一直阻塞,直到有结果为止NIO(非阻塞) :资源不可用时,IO请求离开返回,返回资源不可用AIO(异步):应用阻塞在发送或者接受数据的状态,直到数据传输成功或者失败SIO(同步):应用发送成功失败立马返回,实际执行是异步的阻塞和非阻塞是获取资源的方式,同步和异步是程序设计的方式我们首先看下 BIOpublic class IOServer { public static void main(String[] args) t

2020-06-22 22:24:57 130

原创 网络编程之网络基础

一、OSI网络七层协议低三层物理层:使用原始的数据比特流能在物理介质上传输(电信号)数据链路层:通过确认、校验和反馈重发等手段,形成稳定的数据链路(01000010001)网络层:进行路由选择流量控制(ip协议)中层传输层:提供可靠的端口到端口的数据服务(tcp/udp)协议高三层会话层:负责建议、管理和终止会话和数据交互表示层:负责数据格式转换,数据加密解密,压缩与解压缩网络层:为用户的应用进程提供网络服二、传输控制协议 tcpTCP提供面向连接、可靠、有序

2020-06-17 14:12:44 111

原创 ReentrantLock源码随笔

此前简单介绍过lock接口接下来 我们看下ReentrantLock1 ReentrantLock源码解 public ReentrantLock() { sync = new NonfairSync(); } /** * Creates an instance of {@code ReentrantLock} with the * given fairness policy. * * @param f...

2020-06-08 11:18:38 110

原创 高并发容器set&Queue篇

二、SetSet是数学的集合,无序的,不重复下表Set各个实现的对比HashSet 基于hashMap 线程非安全 CopyOnwriteArraySet 基于CopyOnwriteArrayList 线程安全 concurrentskipListSet 基于currentskipListMap 线程安全、查询快,且有序 ...

2020-06-04 23:19:14 306

原创 高并发容器-list篇

一.ArrayList基本概念源码public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTDATA;

2020-06-03 14:51:18 618

原创 高并发容器Map篇

Locks包层次结构

2020-06-03 11:47:21 365

原创 java锁概念一

一、CAS和AQS1、CAS内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值否则失败 可以继续自旋Unsafe是CAS的核心类,Java没有方法能访问底层系统,因此需要本地方法来做,Unsafe就是一个后门,被提供来直接操作内存中的数据。CAS 三个问题循环+cas自旋让所有线程处于高频状态(使cpu100%)只能单个值ABA问题:t1和t2同时对i操做 t1线程成功后 i又改回原来值后t2执行成功..

2020-05-28 08:58:59 243

原创 java高并发基础

一、JVM组成两部分线程共享区1、方法区JVM用来存储类加载信息、常量、静态变量、编译后代码等数据2、堆内存存放对象实例 垃圾回收管理内存。分为老年代新生代(EDEN 、from Survior、to Survior)线程独占区1、虚拟机栈执行java方法每个方法对应一个栈桢栈桢包括局部变量表、操作数栈、动态链接、方法返回地址、附加信息等默认内存1M 超出则抛出stackoverflowError2、本地方法栈执行native方法3、程序计数器

2020-05-26 22:30:28 104

空空如也

空空如也

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

TA关注的人

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