不瘦十斤不换名字

记录一下吧

Spring源码分析

文章目录为什么要看Spring源码如何看源码Spring中的IoC容器BeanFactoryBeanDefinitionSpring容器的初始化流程IoC容器的使用容器初始化入口解析&注册BeanDefinitionBeanDefinitionReader继承结构总结一下B...

2019-02-06 17:52:01

阅读数 68

评论数 1

Scala-快学sala

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

2018-07-24 22:35:01

阅读数 121

评论数 0

Java-JVM内存区域划分

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

2018-07-22 09:22:18

阅读数 89

评论数 0

Java-JVM类加载过程

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

2018-07-22 09:21:20

阅读数 104

评论数 0

Java-Lock/Condition原理

个人理解记录 在传统的synchronized中,可以通过wait/notify/notifyAll进行等待通知操作,但synchronized只提供了一个同步队列和一个等待/通知队列,Lock则提供了一个同步队列和多个等待/通知队列模型。 Condition对象是从Lock中获取,其返回的实...

2018-07-22 09:20:02

阅读数 359

评论数 0

Java-读写锁原理

个人理解记录 J.U.C提供了一个ReentrantReadWriteLock读写锁,这个读写锁也是基于AQS实现的,在获取读锁时,如果写锁以及被获取,那么获取读锁的线程将被挂起,在获取写锁时,如果存在读锁或者写锁切当前线程不是获取写锁的线程,那么获取读锁的线程也会被挂起。 因为读写锁时基于A...

2018-07-22 09:18:52

阅读数 66

评论数 0

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

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

2018-07-22 09:17:50

阅读数 1551

评论数 0

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

个人理解记录 ReentrantLock基于aqs实现,他的基本原理是aqs的status为0时表示锁被占用,为1时表示锁被释放。ReentrantLock在使用时需要显式的获取和释放锁,一般用try finally来实现,相对于synchronized,reentrantlock提供了功能更强...

2018-07-22 09:15:22

阅读数 2893

评论数 0

Java-AQS

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

2018-07-22 09:08:19

阅读数 807

评论数 0

Java-volatile

个人理解记录 volatile可以理解为一个轻量级的synchronized,它主要用来修饰变量,用来保证在多线程环境下变量只对不用线程的可见性,基于jmm的抽象内存模型,volatile变量可以保证原子操作结果能够及时的从线程本地内存刷新到主内存,并对其他线程立即可见。 从原理角度看,被vo...

2018-07-22 09:07:10

阅读数 47

评论数 0

Java-内存模型

个人理解记录 jmm可以从两个方面理解: 第一个方面是jmm规范了一个抽象的内存结构,jmm对运行时内存进行简化抽象得到了主内存和本地内存两块内存区域,在线程运行时,从主内存中加载数据到本地内存,在本地内存中完成计算后,在刷新到主内存。 第二个方面是jmm可以理解为一组保证数据内存可见性和程...

2018-07-22 09:05:34

阅读数 60

评论数 0

大数据(Azkaban)-安装

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

2018-06-30 10:37:13

阅读数 89

评论数 0

大数据(Hive)-原理

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

2018-06-10 12:08:33

阅读数 1046

评论数 2

大数据(Hive)-安装

下载hive安装包 https://hive.apache.org/downloads.html 安装 1.上传安装包到服务器 path:/home/hadoop/applications/hive 2.解压 >tar -xzvf apache-hive-1...

2018-06-10 10:46:55

阅读数 79

评论数 0

大数据(环境)-集群环境规划

机器 hadoop01:192.168.58.200 hadoop02:192.168.58.201 hadoop03:192.168.58.202 宿主机 192.168.58.4 客户机 192.158.58.5 Hadoop集群 namenode:hadoop01,hado...

2018-06-09 22:14:35

阅读数 397

评论数 0

大数据(Hadoop)-MapReduce

MapReduce计算模型是大数据处理模式的鼻祖,这种模型很容易实现数据处理对并行化,并且编程模型简单,但对于复杂的运算逻辑往往需要大量的代码。 MapReduce任务涉及到的组件 在hadoop1.x中,MapReduce的运行依赖于JobTracker和TaskTracker,但在最新...

2018-06-08 07:34:16

阅读数 140

评论数 0

大数据(Hadoop)-HDFS原理

HDFS源自于Google在2003年10月发表的GFS论文,它是一个分布式文件系统,具有高容错,易扩展,存储量大,能够运行在廉价机上等特点,已经被很多企业广泛引用于基础等存储服务。 组件 HDFS中等核心组件主要有两个,一个是NameNode,一个是DataNode。 NmeNode负责管...

2018-06-06 22:06:04

阅读数 462

评论数 0

大数据(Hadoop)-搭建开发环境

集群节点规划 hadoop01:192.168.58.200 hadoop02:192.168.58.201 hadoop03:192.168.58.202 zookeeper:hadoop01,hadoop02,hadoop03 namenode:hadoop01,hadoop02 d...

2018-06-06 11:25:17

阅读数 126

评论数 0

大数据(Zookeeper)-原理

Zookeeper架构 zookeeper采用典型的分布式主从架构,主节点称为leader,从节点称为follower/observer,Leader负责处理事务性请求,follower/observer从leader同步数据,follower/observer负责非事务性请求。 Zo...

2018-06-02 08:00:24

阅读数 774

评论数 0

大数据(Zookeeper)-简介&安装

简介 Zookeeper是一个分布式协调服务,有以下常见的使用场景 统一配置服务 主从选举 分布式共享锁 分布式队列 节点都上/下线 Zookeeper的特性 最终一致性:保证最终数据能够达到一致性,这是zookeeper的最重要功能 顺序性:从一个客户端发起的事物请求,最终会...

2018-05-29 20:42:45

阅读数 234

评论数 0

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