- 博客(32)
- 收藏
- 关注
原创 JUC之AQS
AQS简介使用方式主要内置方法队列同步器的实现同步队列Node节点独占式同步状态的获取与释放acquire(int arg)addWaiter()enq(node)acquireQueuedshouldParkAfterFailedAcquireparkAndCheckInterruptcancelAcquire(node)tryAcquireNanosdoAcquireNanos(int arg...
2020-05-07 07:10:29
595
原创 Spring IOC 不同scope下的Bean加载流程
概述Spring当中有着不同的bean scope* singleton :默认值,单例的.* prototype :多例的.* request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.* session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.* global sessio...
2020-05-02 23:30:03
259
原创 Spring IOC parentBeanFactory与DependsOn处理
parentBeanFactory与DependsOn处理概述原型检查isPrototypeCurrentlyInCreation(beanName)parentBeanFactory加载originalBeanName(name)合并BeanDefinitiongetMergedLocalBeanDefinition(beanName)checkMergedBeanDefinitionDepen...
2020-05-02 11:24:36
476
原创 Spring IOC 从单例池中获取Bean
Spring IOC 从单例池中获取Bean概述getSingletonisSingletonCurrentlyInCreationgetObjectForBeanInstancegetObjectFromFactoryBeandoGetObjectFromFactoryBeanisSingletonCurrentlyInCreation总结概述在doGetBean方法当中,处理完bename...
2020-05-01 20:18:53
2128
原创 spring IOC bean的加载流程
概述在前面的学习当中,我们了解了spring的资源加载策略,知道了spring如何将资源封装为Resource并且利用ResourceLoader加载Resource资源,然后解析Resource资源,将其装换为保存在spring内部的元数据BeanDefinition。前面做的所有工作都是在为IOC容器开始Bean的加载所做的准备。IOC容器的作用如上图所示,它通过加载元数据,然后将其解析...
2020-05-01 20:03:22
322
原创 超详细LinkedHashMap解析
文章目录LinkedHashMap概述LinkedHashMap原理主要元素构造函数维护链表的操作afterNodeRemovalafterNodeAccessafterNodeInsertionget操作put操作HashMap#putVal(...)Remove操作HashMap#removeNode(...)LinkedHashMap用作实现LRU总结LinkedHashMap概述pub...
2020-04-30 00:05:17
55537
12
原创 超细致ConcurrentHashMap解析
文章目录ConcurrentHashMap概述JDK1.8下的ConcurrentHashMap概述主要变量get操作get(Object key)put操作put(K key, V value)putVal(...)扩容tryPresize数据迁移transfer其他方法treeifyBinresizeStamphelpTransfer总结ConcurrentHashMap概述这个Map是由...
2020-04-29 18:20:08
438
原创 Spring IOC-资源加载策略
文章目录统一资源接口AbstractResourceFileSystemResource统一资源定位:ResourceLoaderResourceLoader 类图DefaultResourceLoaderProtocolResolverFileSystemResourceLoaderResourcePatternResolverPathMatchingResourcePatternResolve...
2020-04-27 14:13:01
431
原创 leetcode457环形数组循环
给定一个含有正整数和负整数的环形数组 nums。 如果某个索引中的数 k 为正数,则向前移动 k 个索引。相反,如果是负数 (-k),则向后移动 k 个索引。因为数组是环形的,所以可以假设最后一个元素的下一个元素是第一个元素,而第一个元素的前一个元素是最后一个元素。确定 nums 中是否存在循环(或周期)。循环必须在相同的索引处开始和结束并且循环长度 > 1。此外,一个循环中的所有运动都必...
2020-04-27 11:39:44
177
原创 leetcode456 132模式
给定一个整数序列:a1, a2, …, an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。设计一个算法,当给定有 n 个数字的序列时,验证这个序列中是否含有132模式的子序列。注意:n 的值小于15000。示例1:输入: [1, 2, 3, 4]输出: False解释: 序列中不存在132模式的子...
2020-04-27 11:38:15
224
原创 java8-函数式接口
文章目录函数式接口概念格式@FunctionalInterface注解自定义函数接口函数式编程lambda的延迟执行Lambda作为参数和返回值默认函数式接口Supplier接口Consumer接口Predicate接口Function接口函数式接口概念有且只有一个抽象方法的接口,函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以...
2020-04-27 01:29:10
271
原创 利用selenium写一牛客网面经的爬虫
使用的库使用到了selenium库和BeautifulSoup这两个库.要想使用这个程序就要首先在安装这两个库.对于selenium来说,还要安装webDriver,这个分别按照自己的浏览器来安装.我使用的是Chrome.为什么要用selenium呢?因为牛客网的面经展示页面时根据滚动条的移动利用ajax动态加载的,没有翻页,最方便的方式就是利用selenium访问网站,等到资源加载完成之后...
2020-04-24 14:11:03
1046
6
原创 leetCode229求众数II
给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。示例 1:输入: [3,2,3]输出: [3]示例 2:输入: [1,1,1,3,3,2,2,2]输出: [1,2]思路一:摩尔投票法,采取和求超过1/2的众数的同样的方法。首先考虑众数的个数,由于去的1/3,说明众数最多只会出现两个。...
2020-04-24 11:44:15
209
原创 HashTable详解
文章目录HashTable概述HashTable结构HashTable原理解析重要字段构造方法get操作get(Object key)put操作put(K key, V value)addEntry(...)Remove操作remove(Object key)扩容rehash()其他重要方法hashcode()containsValue(Object value)HashTable和HashMap...
2020-04-23 23:16:49
1111
原创 超详细HashMap解析
文章目录HashMap概述hash表知识复习HashMap整体架构HashMap原理解析重要字段构造方法get操作put操作put(K key, V value)putVal(...)删除操作remove(Object key)removeNode(...)扩容resize()其他重要的方法hashtableSizeFor(int cap)该方法用于找出不小于cap的最小2的幂。treeifyBi...
2020-04-23 18:40:44
595
原创 集合容器--容器总体架构
容器总体结构java的容器具有如下的架构层次:java的容器主要由两个主要的接口Collection和Map组成Collection(接口)├──List(接口)│ ├──LinkedList(实现类)│ ├──ArrayList(实现类)│ └──Vector(实现类)│ └──Stack(实现类)└──Set(接口) ├──TreeSet(实现类)...
2020-04-22 16:46:33
130
原创 KMP算法详解
什么是KMP算法KMP算法是用来进行模式匹配的一种算法。比如:什么是KMP算法KMP算法是用来进行模式匹配的一种算法。比如:我们需要在蓝色字符串中找到黄色字符串。对于模式字符串匹配最简单的方法就是幼稚模式串匹配算法发现不匹配指针回溯:这个算法效率很低。KMP算法可以做到仅仅模式串后移,指针回溯。KMP算法原理如果出现了不匹配,但是我们发现箭头前面的部分是匹...
2020-04-22 14:24:40
184
原创 Category
文章目录java基础基础知识集合容器JVMjava并发杂项数据库数据库基础sqlmysql框架Springjava基础基础知识java基础–面向对象java基础–基础数据类型java基础–java中的关键字java基础–String类集合容器JVMjava并发杂项数据库数据库基础sqlmysql框架SpringSpring源码–解决循环依赖...
2020-04-21 23:23:08
257
原创 java基础--String类
java lang包里面被问到最多的类了。在java当中字符串属于对象。String类常用创建的方法(1) String s1 = “mpptest”(2) String s2 = new String();(3) String s3 = new String(“mpptest”)String常用方法的实现String的域变量: /** The value is us...
2020-04-20 21:40:56
110
原创 java基础--java中的关键字
final关键字final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量。一旦将引用声明为final,将无法再改变这个引用。final关键字还能保证内存同步 。final的使用final变量有成员变量或者是本地变量(方法内的局部变量),在类成员中final经常和static一起使用,作为类常量使用。其中类常量必须在声明时初始化,final成员常量可以在构造函数初...
2020-04-20 21:39:45
187
原创 java基础--java基础数据类型
java的基本数据类型java的基本数据类型有8种。byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是 -128(-2^7);最大值是 127(2^7-1);默认值是 0;byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;例子:byte a = 100,byte b = -50。sh...
2020-04-20 21:38:36
94
原创 java基础--面向对象
什么是面向对象面向对象简称 OO(Object Oriented),面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)对语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。面向对象...
2020-04-20 21:35:22
95
原创 Spring源码--解决循环依赖
Spring解决循环引用循环引用是指以下情况:@Component("TestService1")public class TestService1 { @Autowired TestService2 testService2; public TestService1(){ System.out.println("construct TestService1"); }...
2020-04-20 21:32:28
194
原创 JUC之ThreadFactory学习
今天在看netty源码的时候,在netty创建NioEventLoopGroup的时候最后会用到这个类,所以就顺便学习一下这个类。首先看到这个类不得不想起设计模式中的工厂设计模式:工厂模式是最常用的模式之一,它可以把对象创建工作集中化,好处大家都知道:改变对象的创建方式将会变得很容易,而且可以控制创建对象的数量。-ThreadFactory源码:package java.util.co...
2019-11-07 21:26:25
128
原创 JDK源码学习-----java.lang.Object
概述/** * Class {@code Object} is the root of the class hierarchy. * Every class has {@code Object} as a superclass. All objects, * including arrays, implement the methods of this class. * * @auth...
2019-11-02 16:14:31
359
原创 使用dubbo仿猫眼微服务架构实战 第三天
用户模块开发业务总结存在的问题1. 必须先启动服务提供者,就是必须先启动user,然后才能启动gateway。不然会报错。这是由于dubbo的特性之一,启动检查:(1)服务启动过程中验证服务提供者的可用性(2)如果验证过程中出了问题 ,那么dubbo会阻止spring的启动(3)dubbo并不建议关闭这个功能,它可以尽可能早的发现服务问题解决办法: 关闭对于user模块的启动检...
2019-10-26 14:40:27
372
1
原创 使用dubbo仿猫眼微服务架构实战 第二天
用户模块开发dao层代码生成guns为我们提供了自动的dao接口代码生成器。到user模块的test文件夹中找到generator包中的EntityGeneragtor。然后对其中的信息进行修改。主要是一些目录和数据库的配置信息。目录信息就配置为工程的java目录。gc.setOutputDir("D:\\IDEA_project_new\\guns\\guns-user\\src\\ma...
2019-10-24 15:27:10
395
原创 使用duboo仿猫眼微服务架构实战 第一天
业务架构构建API网关介绍API网关类似于Facade模式。API网关的具体作用1.身份验证与安全类似于防火墙作用,理论上可以认为API网关之后的所有操作和文件都是安全的。2.审查和检测对用户的行为做一个记录。本值上就是处理一些边缘数据。3.动态路由在cloud中用到了。主要是用于服务和接口的映射4.压力测试针对于高并发的场景,实现阶梯型的压力测试,即慢慢加大并发5.负载...
2019-10-24 10:16:01
725
原创 ThreadLocal学习笔记
ThreadLocal是用来干什么的ThreadLocal是每个线程自己维护的一个存储对象的数据结构,线程间互不影响实现线程封闭。一般我们通过ThreadLocal对象的get/set方法存取对象。每个线程都保持对其线程局部变量副本的隐式引用,只要线程是活动的并且ThreadLocal实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)....
2019-10-23 16:53:10
83
原创 LeetCode刷题记录10.6
第101题对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3递归的方法: publi...
2019-10-06 13:44:15
94
原创 LeetCode刷题记录9.29
第46题 全排列(重点)给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]java解法:public class Permutations46 { public List<List<Integ...
2019-09-29 17:29:49
80
原创 LeetCode刷题记录9.28
第54题 螺旋矩阵题目描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,...
2019-09-28 17:12:37
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人