3 非让填昵称

尚未进行身份认证

加油吧,别管经历了什么,也别管会发生什么。

等级
TA的排名 5w+

面试整理-mysql

文章目录sql的类型mysql锁事务隔离界别索引mysql逻辑架构物理存储结构慢查询sql设计优化sqm语句优化分库分表读写分离sql的类型mysql锁事务隔离界别索引mysql逻辑架构物理存储结构慢查询sql设计优化sqm语句优化分库分表读写分离...

2019-09-10 23:18:40

面试整理-Dubbo

文章目录消费端直连服务端配置注册中心管控平台关闭服务检查多版本与服务分组多协议支持负载均衡容错策略服务降级超时与重试声明式缓存服务延迟暴露源码配置解析服务暴露服务引用SPI原理消费端直连服务端服务消费端配置<dubbo:applicationname="consumer"/><dubbo:registryaddress="N/A"/><dubbo:ref...

2019-09-10 22:59:23

Java并发-再探JMM

Java内存模型个人理解,Java内存模型应该是Java并发编程中最难理解的一个概念之一。由于最近准备换工作,所以,按照惯例有复习了一下Java并发相关的知识(《Java并发编程的艺术》以及极客时间王宝令老师的《Java并发编程实战》),在复习的过程中,我发现《Java并发编程的艺术》中介绍JMM时,引入了很多晦涩难懂的知识,比如内存屏障等等,让人看的一头雾水,所以决定从更加宏观的角度去总结JM...

2019-08-21 23:11:28

数据结构与算法-AVL树

AVL树实际上是为了解决二分搜索树在极端情况下退化成链表的问题。AVL树通过自动调节左右子树的高度可以保证查找时间复杂度在O(logN)。在AVL树中,新增节点的默认高度是1,新增节点的父节点默认高度是2,以此类推。左子节点的高度与右子节点的高度差成为平衡因子。在AVL树中,要求所有节点的平衡因子都小于等于1。由于节点的平衡因子是通过左右子树的高度计算的,所以我们就需要在节点中记录当前节点的高...

2019-08-21 18:24:35

数据结构与算法-二叉搜索树

描述二叉搜索树的主要目标是优化链表的搜索效率。在链表中查找一个元素的时间复杂度为O(N),在二叉搜索树中查找一个元素的时间复杂度则为O(logN)。在二叉搜索树中左子节点的值小于根节点的值右子节点的值大于根节点的值我个人理解时,把二分搜索树理解为二分查找。对于二叉搜索树的操作主要包括插入、查找、删除、遍历等。下面直接看代码。代码实现packageloop;importj...

2019-08-21 14:03:02

数据结构与算法-堆

堆的特点堆是一棵完全二叉树父节点大于子节点堆的实现packagegeektime.sort;importjava.util.ArrayList;importjava.util.List;//大顶堆publicclassMaxHeap<EextendsComparable<E>>{privateList<E>...

2019-08-20 23:16:41

数据结构与算法-哈希表

文章目录数组和链表的特点哈希表哈希函数解决哈希冲突链地址法开放地址法数组和链表的特点数组支持随机存取;分配数组需要连续的内存空间;链表不支持随机存取;链表不需要连续的内存空间;哈希表由于数组和链表具有各自的优缺点和适用场景,所以为了进一步提高数据的读写性能,哈希表就诞生了,即哈希表就是”数组+链表“,数组构成hashbucket,链表解决hash冲突。然而这里所说的链表已经不是狭义...

2019-08-18 19:21:01

Spring源码分析

文章目录为什么要看Spring源码如何看源码Spring中的IoC容器BeanFactoryBeanDefinitionSpring容器的初始化流程IoC容器的使用容器初始化入口解析&注册BeanDefinitionBeanDefinitionReader继承结构总结一下Bean的实例化&依赖注入bean实力化小结循环依赖问题SpringAOP原理查找BeanDefinition...

2019-02-06 17:52:01

Scala-快学sala

第五章/***类:*类的构造方法和类定义混合在一起*var字段在编译时默认生成getter/setter方法*val字段在编译时默认生成getter方法*可以自定义getter/setter(名称符合规范即可)*private[this]定义对象私有域*利用@BeanPropertiy生成JavaBean*辅助构造器名称为this,方法体以主...

2018-07-24 22:35:01

Java-JVM内存区域划分

个人理解记录程序计数器:线程私有的内存区域,每个线程在执行时都有自己的程序计数器,主要作用是记录当前线程执行的字节码的行号,在cpu进行线程切换/恢复时,使程序能够恢复到正确的位置执行,它是内存区域中唯一一块不会抛出异常的。虚拟机栈:线程私有的内存区域,是方法调用的抽象,每个方法调用对应一个栈帧,栈帧中存储局部变量表/方法返回地址等信息,一次方法调用对应一个栈帧的入栈,一次方法调用的完成对...

2018-07-22 09:22:18

Java-JVM类加载过程

个人理解记录jvm的类加载采用双亲委派模型,当需要加载一个类时,首先交由父类加载器去加载,只有当父类加载器无法加载时,子类加载器才去加载,这种机制可以有效避免重复加载,保证jvm的安全性。类加载器主要分为三种,bootstrap类加载器,负责加载java核心类库,extclassloader,负责加载扩展类库,apppclassloader负责加载classpath下的类,也就是应用本身的...

2018-07-22 09:21:20

Java-Lock/Condition原理

个人理解记录在传统的synchronized中,可以通过wait/notify/notifyAll进行等待通知操作,但synchronized只提供了一个同步队列和一个等待/通知队列,Lock则提供了一个同步队列和多个等待/通知队列模型。Condition对象是从Lock中获取,其返回的实际上是AQS的内部类ConditionObject,因为Condition机制依赖于AQS基于状态的同...

2018-07-22 09:20:02

Java-读写锁原理

个人理解记录J.U.C提供了一个ReentrantReadWriteLock读写锁,这个读写锁也是基于AQS实现的,在获取读锁时,如果写锁以及被获取,那么获取读锁的线程将被挂起,在获取写锁时,如果存在读锁或者写锁切当前线程不是获取写锁的线程,那么获取读锁的线程也会被挂起。因为读写锁时基于AQS实现,也就是基于状态实现的,所以jkd将一个状态变量按照高12位和低12位分开,高12位用来存储读...

2018-07-22 09:18:52

Java-Lock超时锁和可中断锁原理

个人理解记录超时锁的基本原理与独占锁基本相同,不同之处在于“超时”,在调用doAcquireNanos时,首先记录下调用方法的时间,然后尝试获取锁,如过获取成功则直接返回,如果获取失败,判断超时时间是否为0,如果是,则时间超时,返回false,如果不是,则获取当前时间-进入方法的时间,然后在用超时时间-这个结果,得到超时剩余时间,如果剩余超时时间大于1000毫秒,则利用LockSupport挂...

2018-07-22 09:17:50

Java-Lock独占锁与共享锁原理

个人理解记录ReentrantLock基于aqs实现,他的基本原理是aqs的status为0时表示锁被占用,为1时表示锁被释放。ReentrantLock在使用时需要显式的获取和释放锁,一般用tryfinally来实现,相对于synchronized,reentrantlock提供了功能更强大的api,例如超时锁、可中断锁、公平锁、非公平锁、非阻塞锁获取等等,ReentrantLock是独占...

2018-07-22 09:15:22

Java-AQS

个人理解记录aqs是juc包的基础类,它向上层组件提供基础的同步服务。aqs基于一个状态变量,一个同步队列和一组状态操作和一组同步方法组成。基本的原理是通过同步操作实现同步元语,如果获取状态失败,则将当前线程构造成一个node节点后利用cas加入到同步队列的尾部并挂起,每个节点包括当前线程的引用、aqs内部维护了同步队列的头节点和尾节点,头节点是成功获取锁或状态的节点,头节点释放锁后唤醒其...

2018-07-22 09:08:19

Java-volatile

个人理解记录volatile可以理解为一个轻量级的synchronized,它主要用来修饰变量,用来保证在多线程环境下变量只对不用线程的可见性,基于jmm的抽象内存模型,volatile变量可以保证原子操作结果能够及时的从线程本地内存刷新到主内存,并对其他线程立即可见。从原理角度看,被volatile修饰的编程在编译时会加入一个lock指令,这个指令在jvm及硬件层面可以保证两点:一是立即...

2018-07-22 09:07:10

Java-内存模型

个人理解记录jmm可以从两个方面理解:第一个方面是jmm规范了一个抽象的内存结构,jmm对运行时内存进行简化抽象得到了主内存和本地内存两块内存区域,在线程运行时,从主内存中加载数据到本地内存,在本地内存中完成计算后,在刷新到主内存。第二个方面是jmm可以理解为一组保证数据内存可见性和程序正确性的规则,由于这种内存模型存在很明显的数据一致性问题,再加上编译器的指令重排序和cpu乱序执行优...

2018-07-22 09:05:34

大数据(Azkaban)-安装

azkaban-executor-server-2.5.0.tar.gzazkaban-sql-script-2.5.0.tar.gzazkaban-web-server-2.5.0.tar.gz/home/hadoop/applications/azkabanmkdirwebservermkdirexecutormkdirsq...

2018-06-30 10:37:13

大数据(Hive)-原理

简介Hive由Facebook开源,是一个构建才hadoop之上到数据仓库工具,可以把hdfs上到结构化数据映射成表,并通过mapreduce进行统计分析。Hive支持SQL-92标准,通过HQL屏蔽了复杂到MapReduce,但由于hadoop本身的限制,hive不支持随机修改表中的数据,也不支持追加操作。Hive的优点学习成本低能够快速实现复杂的数据分析屏蔽mapre...

2018-06-10 12:08:33

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。