- 博客(29)
- 收藏
- 关注
转载 什么地方违反了双亲委派模型
在开讲双亲委派模型之前,我们先要了解一下类加载机制类加载机制是指将类的class文件读入到内存,并为之创建一个java.lang.Class对象。中间对数据做了 校验,转换解析和初始化等操作。一般情况下我们说了有三种加载器:最基础:Bootstrap ClassLoader(加载JD...
2019-08-16 09:18:00
550
转载 Java集合小抄
Java集合小抄1. List1.1 ArrayList以数组实现。节约空间,但是数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组。因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。按数组下标访问元素-- get(...
2018-10-23 21:06:00
125
转载 HashMap工作原理及实现
HashMap工作原理及实现1. 概述什么时候会使用HashMap?他有什么特点?知道HashMap的工作原理吗?知道get和put的原理吗?知道hash的实现吗?为什么要这样实现?如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?当我们...
2018-10-20 19:30:00
135
转载 ArrayList源码解析
Arraylist源码解析1. 概述ArrayList以数组实现。节约空间,但数组容量有限。超出限制时会增加50%的容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。按数组下标访问元素---get(i)/...
2018-10-19 15:55:00
103
转载 LinkedHashMap源码解析
LinkedHashMap源码解析1. 概述package java.util;import java.io.*;public class LinkedHashMap<K,V> extends HashMap<K,V> implements Ma...
2018-10-18 16:18:00
150
转载 LinkedList源码解析
LinkedList源码解析1. 概述以双向链表实现。链表无容量限制,但双向链表本身使用了更多空间,也需要额外的链表指针操作。按下标访问元素——get(i)/set(i,e),要悲剧的遍历链表将指针移动到位,如果i>数组大小的一半,辉总末尾移起。插入、删除元素时修改前后节点的嗯...
2018-10-16 20:30:00
104
转载 7. ReadWriteLock接口及其实现ReentrantReadWriteLock
Java并发包的locks包里的锁基本上已经介绍的差不多了,ReentrantLock重入锁是个关键,在清楚的了解了同步器AQS的运行机制后,实际上再分析这些锁就会显得容易的多,这章节主讲另外一个重要的锁---ReentrantReadWriteLock读写锁。ReentrantLock是一...
2018-10-15 15:37:00
145
转载 6. 类似Object监视器方法的Condition接口
在《1.有关线程、并发的基本概念》中,我们利用synchronized关键字、Queue队列、以及Object监视器方法实现了生产者消费者,介绍了有关线程的一些基本概念。Object类提供的wait方法和notifyAll方法,与之对应的是Condition接口提供的是await和signal...
2018-09-18 16:15:00
172
转载 5. Lock接口及其实现ReentantLock
jdk1.7.0_79在java.util.concurrent.locks这个包定义了和synchronized不一样的锁,重入锁--ReentrantLock,读写锁--ReadWriteLock等。在已经有了内置锁synchronized的情况下,什么又出现了Lock显示锁呢?本文...
2018-09-17 14:46:00
230
转载 4. 从AbstractQueuedSynchronizer(AQS)说起3—AQS结语
通过之前的分析,对AQS同步器已经有了一个大致的了解,从独占模式和共享模式来分析了AQS的两个基本方面,一个是同步状态的获取,另外一个是同步状态的释放,这是AQS最基本的特性,前面两节都是以阻塞的形式获取同步状态,但实际上AQS还能超时等待获取同步状态,或者非阻塞的方式获取同步状态。以下是A...
2018-09-14 09:46:00
167
转载 3. 从AbstractQueuedSynchronizer(AQS)说起2—共享模式的锁获取与释放
在上节中解析了AbstractQueuedSynchronizer(AQS)中独占模式对同步状态获取和释放的过程。本节将会对共享模式的同步状态获取和释放过程做一个解析。上一节提到了独占模式和共享模式的区别,最主要的区别就是在同一时刻能否有多个线程获取到同步状态。1. 共享模式同步状态的获取...
2018-09-13 17:20:00
93
转载 2. 从AbstractQueuedSynchronizer(AQS)说起1—独占模式的锁获取与释放
首先,我们从java.util.concurrent.locks包中的AbstractQueuedSynchrinozer说起,在下文中称为AQS。AQS是一个用于构建锁和同步器的框架。例如在并发包中的ReentrantLock、Semphore、CountDownLatch、Reentra...
2018-09-12 11:38:00
138
转载 1. 有关线程、并发的基本概念
什么是线程?提到“线程”总免不了要和“进程”做比较,而我认为在Java并发编程中混淆的不是“线程”和“进程”的区别,而是“任务(Task)”。进程是表示资源分配的基本单位。而线程则是进程中执行运算的的最小单位,即执行处理机调度的基本单位。关于“线程”和“进程”的区别耳熟能详,说来说去就一句话...
2018-09-07 16:00:00
256
转载 0、Java并发包系列开篇
在我们想要谈论Java并发包(java.util.concurrent)的时候,这是一个头疼的问题,却又是每个Java工程师不得不掌握的一项技能。一直以来都想写一个Java并发包系列,无奈迟迟没有动手动脑。最近重新思考规划了自己的学习路线,决定从Java并发包开始把每个技术、原理、源码做成一个...
2018-09-06 16:51:00
92
转载 第六章:分布式配置中心(Spring Cloud Config)
转载:http://blog.youkuaiyun.com/forezp/article/details/70037291一、简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring ...
2017-11-29 14:50:00
107
转载 第七章:高可用的分布式配置中心(Spring Cloud Config)
转载:http://blog.youkuaiyun.com/forezp/article/details/70037513上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从...
2017-11-29 14:50:00
97
转载 第四章:断路器(Hystrix)
转载:http://blog.youkuaiyun.com/forezp/article/details/69934399在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了...
2017-11-29 14:49:00
105
转载 第五章:路由网关(zuul)
转载:http://blog.youkuaiyun.com/forezp/article/details/69939114在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简...
2017-11-29 14:49:00
100
转载 第三章:服务消费者(Feign)
转载:http://blog.youkuaiyun.com/forezp/article/details/69808079一、Feign简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign...
2017-11-29 14:48:00
97
转载 第二章:服务消费者(rest ribbon)
转载:http://blog.youkuaiyun.com/forezp/article/details/69788938一、ribbon简介Ribbon is a client side load balancer which gives you a lot of control over t...
2017-11-29 14:47:00
83
转载 第一章:服务注册与发现
转载:http://blog.youkuaiyun.com/forezp/article/details/69696915一、spring cloud简介spring cloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、...
2017-11-29 14:45:00
75
转载 性能调优思路
调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗CPU、文件IO、网络IO、内...
2017-10-19 17:36:00
90
转载 如何做性能调优
性能优化的常见概念吞吐量(TPS,QPS):简单来说就是每秒钟完成的事物数或查询数。通常吞吐量大表明系统单位时间能处理的请求数越多,所以通常希望TPS越高越好响应时间:即从请求发出去到收到系统返回的时间。响应时间一般不取平均值,而是要去掉不稳定的值之后再取平均值,比如常用的90%响应时间,...
2017-10-19 17:35:00
1826
转载 Memcache在Linux服务器端安装
#安装准备下载memcache-1.2.5版本,另外mencache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本libevent-1.3。(如果已经安装了libevent,则不需要安装)。下载Memcache:http:/...
2017-04-07 16:30:00
82
转载 Hadoop学习记录
#第一章、安装Linux服务器本教程安装的是CentOS系统。安装完VMware虚拟机后,运行虚拟机,点击“创建新的虚拟机”,选择典型安装模式,点机下一步。选择下载的镜像文件,点下一步。用户名不能使用root,root是Linux保留的最高权限用户,填写完成点下一步。选择虚拟机...
2017-04-07 16:12:00
63
转载 IDEA常用快捷键
Alt+回车: 导入包,自动修正Ctrl+N: 查找类Ctrl+Shift+N: 查找文件Ctrl+Alt+L: 格式化代码Ctrl+Alt+O: 优化导入的类和包Alt+Insert: 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shi...
2017-04-06 17:20:00
72
转载 ExecutorCompletionService
#描述当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果。#实现方式##方式一通过一个list来保存一组future,然后在循环中轮训这组future,直到每个future都已完成。如果我们不希望出现因为排在前面的任务阻塞导致后面先完成的任务的结...
2017-04-06 17:16:00
87
转载 Velocity学习记录
#变量名$name 为空时打印变量本身$!name为空时打印空字符串(不打印任何内容)${name}类似 $name,为空时原样打印。但可以将变量和连续的字符串分隔,例如:${name}space$!{name}类似 $!name,为空时打印空字符串,但可以将变量和连续...
2017-04-06 17:03:00
74
转载 SpringMvc学习记录
#1. RequestParam在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(“name”),另外一种是用注解@RequestParam直接获取。##1.1 各种异常情况处理###A.可以对传入参数指定参数名@RequestP...
2017-04-06 16:50:00
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人