自定义博客皮肤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 76

原创 JVM 类加载机制

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

2020-12-22 16:38:06 69

原创 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 152

原创 SpringBoot设计理念

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

2020-12-02 22:52:53 371

原创 JVM整理

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

2020-12-02 12:06:56 66

转载 Tomocat架构

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

2020-12-01 16:08:25 206

原创 二叉树概念汇总

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

2020-12-01 15:26:12 121

原创 spring概念

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

2020-11-27 13:45:05 150

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

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

2020-11-08 22:00:11 72

原创 分布式一致性原理

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

2020-11-08 12:15:17 80

原创 Zookeeper集群

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

2020-11-05 23:24:35 65

原创 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 153

原创 ZK入门

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

2020-10-25 23:07:41 73

原创 互联网架构演变之路

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

2020-10-22 23:39:52 90

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

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

2020-06-24 10:06:20 352

原创 IO编程基础

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

2020-06-22 22:24:57 140

原创 网络编程之网络基础

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

2020-06-17 14:12:44 131

原创 ReentrantLock源码随笔

此前简单介绍过lock接口 接下来 我们看下ReentrantLock 1 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 116

原创 高并发容器set&Queue篇

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

2020-06-04 23:19:14 313

原创 高并发容器-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 636

原创 高并发容器Map篇

Locks包层次结构

2020-06-03 11:47:21 390

原创 java锁概念一

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

2020-05-28 08:58:59 265

原创 java高并发基础

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

2020-05-26 22:30:28 108

空空如也

空空如也

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

TA关注的人

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