自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)

java servlet 目录

java servlet拾遗(1)-Servlet总揽java servlet拾遗(2)-请求转发、包含、重定向java servlet拾遗(3)-servlet 线程安全问题java servlet拾遗(4)-会话 java servlet拾遗(5)-过滤器 java servlet拾遗(6)-监听器 ...

2016-07-18 20:53:43 142

java concurrency 目录

多线程(1)-java多线程入门 多线程(2)-使用synchronized进行线程同步多线程(3)-基于Object的线程等待与唤醒

2016-07-18 20:51:54 32

多线程(3)-基于Object的线程等待与唤醒

概述在使用synchronized进行线程同步中介绍了依赖对象锁定线程,本篇文章介绍如何依赖对象协调线程。同synchronized悲观锁一样,线程本身不能等待与唤醒,也是需要对象才能完成等待与唤醒的操作。本篇主题是Object等待与唤醒。1.在Object上有定义了以下几个方法:public final native void notify();唤醒等待在此对象...

2016-07-18 20:45:00 59

java I/O 模型简述

概述从同步与异步&阻塞与非阻塞的概念,到具体的I/O模型,再到具体的Java语言实现,都是层层递进,本篇就从Java语言来看I/O模型的大概情况。整个Java I/O模型,大致可以分为三类BIO:JDK1.4之前的阻塞IONIO:JDK1.4及以后的版本非阻塞IOAIO:JDK1.7之后,又叫NIO.2一、BIO阻塞IO1、基本概念BIO,即为Bloc...

2016-07-14 16:42:47 51

同步与异步&阻塞与非阻塞

一、同步与异步的区别 1、概念介绍同步:所谓同步是一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,依赖的服务才能算完成,这是一种可靠的服务序列。要么成功都成功,失败都失败,服务的状态可以保持一致。异步:所谓异步是一个服务的完成需要依赖其他服务时,只通知其他依赖服务开始执行,而不需要等待被依赖的服务完成,此时该服务就算完成了。至于被依赖的服务最终是否真正完成,无...

2016-07-06 16:45:40 112

ClassLoader原理分析

前文:Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的。类装载器所做的工作实质是把类文件从硬盘读取到jvm运行内存中,或者从网络中读取到jvm运行内存中JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的。 例如:public class TestClassLoader { ...

2016-06-27 12:12:46 71

使用AtomicBoolean优雅初始化资源

在很多场景中,都需要用到加载资源等初始化操作,而且只需要初始化一次,那么问题就有了,如何判断为初次操作如果是并发处理,如何保证只初始化一次,不会重复初始化 一、AtomicBoolean神器java.util.concurrent.atomic.AtomicBoolean ,该布尔操作类保证了一系列的操作都是原子操作,不会受到多线程环境下的并发不安全问题,原理则是依赖神...

2016-06-27 11:55:11 413

spring aop-代理篇,java Proxy代理&cglib代理

一、java原生代理1、代理概念介绍为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。2、代理分类java代理分为两类,静态代理和动态代理。静态代理通过代码的编写,生成代理类的源码,再编译...

2016-06-26 17:22:07 41

maven-依赖管理最佳实践

一般一个父pom项目下面常常有好几个子pom项目模块,而且几个子模块依赖的很多jar包,比如groupId/artifactid/version都是相同的,这样有三个弊端:造成jar包重复依赖造成版本号重复依赖升级某个版本号时,要修改好几个子模块 一、在父模块中定义全部dependencies在父模块中配置dependencies,那样所有子模块都自动继承。例如...

2016-06-24 12:06:26 66

计算机字符编码从0/1到UTF-8

在计算机内部,所有的信息终于都是表示为0和1去展示,但是如何表达出那么多的字符呢?一、二进制位(bit) 在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态。二、字节(byte) 通过八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。 也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个...

2016-06-24 10:58:58 60

JVM学习(2)-JVM垃圾回收算法

java虚拟回收垃圾对象时,一份分为两步:1、虚拟机在回收堆空间在之间,会先判断哪些对象已经死亡;2、然后再对这些死亡对象通过特定的回收算法进行回收 一、判断对象是否死亡1、引用计算器算法给对象添加一个引用计算器,如果其他地方引用它,计算器就加1,当引用失效时,计算器就减1。当计算器为0时,这个对象不能被再次使用,需要被回收了。优点:实现简单缺点:不能解决对象之...

2016-02-01 16:40:32 28

JVM学习(1)-JVM运行时数据区

导言:java是基于一门虚拟机的语言,所以了解并且熟知虚拟机运行原理非常重要。 先整体看一张java虚拟机技术图: 一、堆1、方法区,Method Area,主要存放已被虚拟机加载的类信息、常量、静态变量、及时编译器编译后的代码等数据。又称为永久代。 比如spring 使用IOC或者AOP创建bean时,或者使用cglib,反射的形式动态生成class信息,...

2016-02-01 16:36:09 33

多线程(2)-使用synchronized进行线程同步

前文:java中多线程的锁,分为两种,悲观锁和乐观锁。使用synchronized作为锁的形式,就是悲观锁,又称为同步锁。 一、synchronized原理在java中,每一个对象有且仅有一个同步锁。同步锁是依赖于对象而存在。当我们调用某对象的synchronized方法时,就获取了该对象的同步锁。不同线程对同步锁的访问是互斥的。通俗一点:N个线程...

2016-01-20 16:41:00 39

多线程(1)-java多线程入门

一、线程实现方式 线程实现有两种方式:继承Thread类,实现Runnable接口1、继承Thread类public class MyThread extends Thread{ @Override public void run() { System.out.println("Mythread执行"); }}...

2016-01-20 15:15:44 196

查找算法(1)--二分查找

简介:  二分查找算法是针对有序数组进行查找某个元素的算法,时间复杂度为Ο(logn) 。 一、主要步骤有序数组arr(假设从小到大),待查找元素x(1)、直接从中间一个元素开始找,mid = (0+arr.length)/2(2)、如果arr[mid]大于x,说明目标索引在mid索引的左半边,把左边当作一个完整的数组继续查找(3)、如果arr[mid]小于x,说明目标索...

2015-12-28 17:51:28 46

排序算法(4)--归并排序

简介:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 一、主要步骤将待排序数组[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度...

2015-12-28 16:35:50 47

排序算法(3)--插入排序&希尔排序

一、插入排序 (1)、主要思路:假设数组分为两部分,有序部分【0~i-1】,无序部分【i~N】。初始有序部分只有一个元素。从有序部分【0~i-1】中找到一个值小于(或大于)数组【i】的位置,即为将要排序的数据把数组【i】插入到适当的位置,其他的数据往后转移 (2)、代码实现:public void sort(int[] arr) { for(int i=...

2015-12-26 21:09:41 42

数据结构&算法目录

-----------------------------排序算法-----------------------------排序算法(1)--冒泡排序&快速排序排序算法(2)--选择排序&堆排序排序算法(3)--插入排序&希尔排序排序算法(4)--归并排序   -----------------------------查找算法----------...

2015-12-25 17:11:29 205

排序算法(2)--选择排序&堆排序

继续上篇的交换排序--冒泡排序&快速排序,本篇介绍选择排序和堆排序 一、选择排序非常的简单直观,每次找出最小或者最大的值存储起来,继续找剩下的值存储起来,直达最后一个元素。从arr[0]~arr[N]中找出最小的值,放在arr[0],此时arr[0]已经排好序从arr[1]~arr[N]中找出最小的值,放在arr[1],....从arr[i]~arr[N]中...

2015-12-25 17:07:50 33

排序算法(1)--冒泡排序&快速排序

已经好久没写算法了,脑袋都生锈了。。 首先排序分为四种:       交换排序: 包括冒泡排序,快速排序。      选择排序: 包括直接选择排序,堆排序。      插入排序: 包括直接插入排序,希尔排序。      合并排序: 合并排序。 本篇对交换排序进行研究。 1、冒泡排序比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换...

2015-12-23 18:58:45 34

Nginx技术目录

nginx(1)、nginx入门nginx(2)、nginx常用配置 TODO: https配置nginx反向代理虚拟主机nginx做负载均衡nginx安全 

2015-12-23 15:24:01 318

nginx(2)、nginx常用配置

#user  nobody;error_log  logs/error.log  info; pid        logs/nginx.pid;1、user nobody:定义Nginx运行的用户和用户组2、error_log logs/error.log info:全局错误日志定义类型,[ debug | info | notice | war...

2015-12-23 15:14:59 52

nginx(1)、nginx入门

一、什么是nginxNginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。nginx官网:http://ngi...

2015-12-22 16:02:16 24

一致性哈希算法

前记:由于在学习redis 集群时使用到了twemproxy方案,twemproxy是以一致性哈希算法为原理进行代理多个孤立的redis 节点集成集群。所以很有必要学习下一致性哈希算法。 一、什么是一致性哈希 一致性哈希算法在1997年由麻省理工学院提出,设计目标是为了解决因特网中的热点(Hot spot)问题。初衷和CARP(Common Access Redundanc...

2015-12-17 16:17:18 40

redis(10)、redis集群twemproxy

redis技术目录twemproxy is a fast, light-weight proxy for memcached and redis。是一个代理redis程序,redis cluster是无中心的基于哈希槽的方案,而twemporxy是自身启动一个代理程序,代理程序为中心,基于一致性哈希算法的方案。 官网是https://github.com/twitt...

2015-12-14 22:46:35 44

redis(9)、redis集群之redis Cluster使用

redis技术目录 前提:redis集群分片,目前redis有两类方案哈希槽(hash slot),代表方案:redis cluster一致性哈希,代表方案:twemproxy、codis 本篇是针对redis cluster配置实现,原理会在另一个文章在解析。By haoran-10.iteye.com  先理解几个...

2015-12-11 17:40:27 179

redis(8)、安全设置

redis技术目录 如果redis部署在内网,外部机器访问不到,那么下面的内容不需要看。如果redis部署在公网,还是稍微看下吧,近期出现的redis安全事件还是挺严重的,大部分机器甚至被黑了。 设置安全主要有几种方法: 1、设置密码requirepass yourpassword 配置在redis里,密码是明文,这时其他客户端连接redis需要绑定...

2015-12-09 16:01:48 31

redis(7)、redis持久化

redis技术目录 redis持久化,顾名思义,就是把内存中的数据保存到硬盘上,以防redis发生意外造成数据丢失。目前有两种方案,RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上,后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。按照redis作者的想法,这两个方案最终会在以后的版本中合成一个。一、...

2015-12-09 13:06:26 30

redis(6)、redis复制

redis技术目录 一、redis复制介绍 (1)什么是redis复制redis复制即redis replication,主要用于主从(master-slave)数据复制异步备份,或者读写(read-write)分离。使用和配置起来非常简单,从redis服务器会复制并且保存主redis服务器的数据,从而达到备份需求或者同步数据之后,其他客户端读分离的需求。 而常用的re...

2015-12-07 18:29:07 29

redis(5)、redis最大缓存设置策略

redis技术目录 一、最大缓存设置示例:maxmemory 100mb 单位:mb,gb。默认为0,没有指定最大缓存,如果有新的数据添加,超过最大内存,则会使redis崩溃,所以一点要设置。设置maxmemory之后,配合的要设置缓存数据回收策略。 二、回收策略算法设置 当maxmemory限制到达的时候,Redis将采取的准确行为是由maxme...

2015-12-06 12:27:32 197

redis(4)、基于redis 构建异步消息系统

redis技术目录 一般消息队列有两种场景生产者消费者模式 :多个生产者生产消息放在消息队列里,多个消费者同时监听消息队列,谁先抢到消息,谁先处理。每个消息只能被消费一次。发布者订阅者模式:发布者发布消息到消息队列里,多个监听者同时监听该消息队列,都会同时收到同一份消息。即每个消息被每个监听者消费一次。 一、构建生产者消费者模式(1)构建生产者消费者...

2015-12-04 18:00:18 66

redis(3)、基于jedis、spring-data-redis 连接操作redis

redis技术目录 jedis是一款java连接redis的客户端,spring基于jedis进行了封装,提供了简洁的操作redis的方法。使用maven进行管理jar包之间的依赖:<dependency> <groupId>org.springframework.data</groupId> ...

2015-12-04 14:36:24 63

redis(2)、redis数据类型

redis技术目录一、字符串(Strings)二、列表(Lists)三、哈希(Hashes)四、集合(Sets)五、有序集合(Sorted sets)六、位图(bitmaps)七、HyperLogLogs八、地理位置(geospatial) 还在开发中零、redis keyredis key是二进制安全的,所有的二进制序列都可以做为key值,空字符...

2015-12-04 12:57:00 39

redis(1)、redis入门

redis技术目录 一、介绍(1)、是什么?    Redis 是一款依据BSD开源协议发行的高性能的基于内存的Key-Value存储系统。它通常被称为数据结构服务器。官网:http://redis.io/(2)、支持的数据结构?字符串(strings), 哈希(hashes), 列表(lists), 集合(sets) , 有序集合(sorted sets),位图(b...

2015-12-02 14:59:11 19

原创 redis技术目录

redis(1)、redis入门redis(2)、redis数据类型redis(3)、基于jedis、spring-data-redis 连接操作redis redis(4)、基于redis 构建异步消息系统redis(5)、redis最大缓存设置策略redis(6)、redis复制redis(7)、redis持久化redis(8)、安全设置redis(9)、r...

2015-11-27 13:35:01 815

原创 消息中间件(6)-activeMQ支持的五种协议

【转,非原创】 activeMQ5.9.版本带的例子提供了5种协议的简单demo,这5种协议分别为:AMQP,MQTT,OpenWire,Stomp,ws通过运行这5种协议的的demo可以大致得出这5种协议实现在activeMQ中的性能对比:?1234567891011amqpReceived 1000...

2015-11-25 19:11:51 484

原创 消息中间件(5)-ActiveMQ后台监控

ActiveMQ提供了基于WEB的控制台,现在有两个版本。监控的主要对象是连接的机器,队列,主题,消息。 1、在activemq.xml末尾引进内嵌的jetty.xml,用来启动web控制系统<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o...

2015-11-25 18:54:01 568

原创 ActiveMQ文章目录

消息中间件(1)-JMS规范 消息中间件(2)-ActiveMq & Spring 技术集成 消息中间件(3)-ActiveMQ消息持久化 消息中间件(4)-ActiveMQ安全校验 消息中间件(5)-ActiveMQ监控 消息中间件(6)-activeMQ支持的五种协议 ...

2015-11-24 17:35:45 93

消息中间件(4)-ActiveMQ安全校验

ActiveMQ安全机制的介绍安全机制一般包含验证(Authentication)和授权(Authorization)两部分。在ActiveMQ中,验证指通过访问者的用户名和密码实现用户身份的验证,授权指为消息目标(队列或主题)的读、写、管理指定具有相应权限的用户组,并为用户分配权限。ActiveMQ的安全机制基于插件实现。ActiveMQ提供两种验证插件,分别是:1)Simp...

2015-11-24 17:29:24 52

原创 消息中间件(3)-ActiveMQ消息持久化

ActiveMQ消息持久化 一、不使用持久化<broker persistent="false"></broker>那么activemq 会自动使用内存保存消息,使用 org.apache.activemq.store.memory.MemoryPersistenceAdapter 来保存 二、消息数据灾难恢复http://...

2015-11-19 11:18:44 144

空空如也

空空如也

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