自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (16)
  • 收藏
  • 关注

原创 Spring scope 分类

1. 什么是scope?    scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。2. scope分类目前,scope的取值有5种。      在spring 2.0之前,有singleton和protot

2016-12-30 15:19:51 550

转载 分布式事务

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向

2016-12-30 15:01:48 383

转载 NIo、Bio、aio、 的原理及区别与应用场景

在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞?散仙

2016-12-30 14:47:43 30445 10

原创 Nio 、Bio、Aio 使用场景

前言:关于BIO/NIO/AIO的文章已经汗牛充栋,俺最近比较闲试图系统学习一下,希望大侠多多指教!先来个例子理解一下概念,以银行取款为例:同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小

2016-12-30 14:36:04 630

转载 HashMap实现原理分析

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离

2016-12-30 14:24:28 213

转载 面试题 HashMap 数据结构 实现原理

数据结构HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表那

2016-12-30 14:08:08 3139

转载 Spring中AOP的两种代理方式(Java动态代理和CGLIB代理)

内容是摘抄的,不知最初的原作者,见谅 Java 动态代理。具体有如下四步骤:通过实现 InvocationHandler 接口创建自己的调用处理器;通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类;通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型;通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数

2016-12-30 13:58:53 392

原创 eclipse 调整内存大小

方法一:打开eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击Installed JREs,在右边选择前面有对勾的JRE,再单击右边的“Edit”按钮,出现一个 Edit JRE 的对话框,在其中的Default VM Arguments: 框中输入 -Xms128m -Xmx512m ,这样设置Java拟虚机内存使用最小是128

2016-12-30 10:02:49 6095

原创 spring ioc原理

IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述的那样晦涩。Java程序员都知道:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。

2016-12-23 16:30:04 217

转载 jdk中用到的23中经典的设计模式

A. 创建模式Singleton(单态):只允许一个实例[java] view plain copyRuntime.getRuntime();  java.awt.Toolkit.getDefaultToolkit();  java.awt.GraphicsEnvironment.getLocalGraphicsEnvir

2016-12-23 14:05:53 503

转载 jdk中用到的设计模式

结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.annotation.adapters.XmlA

2016-12-23 13:45:11 477

转载 Mybatis 动态sql

三、动态SQL语句        有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。使用Oracle的序列、MySQL的函数生成Id。这时我们可以使用动态sql。       下文均采用mysql语法和函数(例如字符串链接函数CONCAT)。 

2016-12-23 12:59:34 357

原创 利用tomcat-redis-session-manager实现单点登录

利用tomcat-redis-session-manager实现单点登录Redis+Tomcat实现session流程1.客户端首次请求服务端2.服务端产生session并set cookie响应给客户端3.客户端再次请求服务端,会带上cookie4.服务端根据cookie找到对应的session实现思路如果我们要编写程序实现这个方案,需要解决以下问题:1.sess

2016-12-23 11:29:48 6825 2

转载 用Redis实现Session功能,实现单点登录

0.什么是RedisRedis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API---维基百科1.与其他用户状态保存方案比较一般开发中用户状态使用session或者cookie,两种方式各种利弊。Session:在InProc模式下容易丢失,并且引起并发问题。如果使用SQLServer或者SQL

2016-12-19 09:41:28 28059 5

原创 Java高级开发工程师面试考纲

当前,市面上有《Java XX宝典》类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性。另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上。实际上,如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构、算法、网络、操作系统等知识。因此本文不会讲解具体的技术,笔者综合自己应聘各大

2016-12-19 09:02:57 443

原创 从使用到原理学习Java线程池

线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些”池化资源”技术产生的原

2016-12-19 09:02:18 256

转载 Comparable 和 Comparator 区别

Java 中为我们提供了两种比较机制:Comparable 和 Comparator,他们之间有什么区别呢?今天来了解一下。Comparable 自然排序Comparable 在 java.lang 包下,是一个接口,内部只有一个方法 compareTo():Comparable 可以让实现它的类的对象进行比较,具体的比较规则是按照 compareTo 方法中的

2016-12-19 09:01:21 255

转载 最新高清IT职业技能图谱:架构师、H5、DBA、移动、大数据、运维...

“时隔近5个月,StuQ的小伙伴们再次出品了IT职业技能图谱更新版。这回除更新之前版本外,还添加了架构师、HTML 5、DBA等新的职业技能图谱。正确打开姿势:先收藏,再转发,最后看!注:点击图片查看高清大图后台回复关键词:「技能」,获取高清合集打包下载地址架构师HTML 5移动性能优化

2016-12-19 08:58:53 1688

原创 Java 冒泡排序、选择排序、快速排序、归并排序

Java实现几种常见排序方法日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元

2016-12-19 08:53:22 497

原创 Java垃圾收集算法与垃圾收集器

当前商业虚拟机的垃圾收集都采用“分代收集”算法,即根据对象生命周期的不同,将内存划分几块,一般为新生代和老年代,不同的代根据其特点使用最合适的垃圾收集算法一,标记-清除算法该算法分为“标记”、“清除”2个过程,首先标记需要清除的对象,然后统一清除这个算法有2个明显的缺点:1,标记和清除的效率都不高2,垃圾收集后,内存碎片化严重改算法通常用于老年代

2016-12-19 08:48:54 277

转载 cas 单点登录 及将https 转为http协议

最近公司让我研究cas单点登录,经过一周多的研究终于做出了demo,为了方便自己以后查看也为了给需要的人提供帮助,我决定写成博客。首先对于单点登录的原理需要有大致的了解,原理网上的帖子很多,我大致说下: CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Htt

2016-12-16 16:37:10 1949

转载 完全跨域的单点登录

完全跨域的单点登录实现方案基本和上篇文章介绍的一样,只不过生成ticket的过程更复杂些。上篇文章中的项目是不能完全跨域的,由于多个应用系统以及认证系统域不同,也没有共同的父域,导致登录后,认证系统向浏览器写的ticket在其它应用系统中获取不到,这时访问其它应用系统时,没有携带着ticket的cookie,无法认证也无法单点登录。那解决的方案是每个应用系统都向浏览器cookie中写入ticket

2016-12-16 14:26:01 291

转载 struts2 漏洞分析 及解决办法

1.讨论关于struts 安全问题。2.黑客文化。3.如何降低安全漏洞的出现。4.忠告建议。题记:这篇文章本来很早应该和大家见面的,中间由于个人原因调整了系列文章发布时间,实属罪过。为了不误导大众文章中间讲述的经历想法实战,均属个人看法个人行为不代表任何团体及组织。观看者请保留自己的想法观点!欢迎各位热爱编程的技术人员交流。废话不多,开始正文。1.讨

2016-12-16 14:05:07 17485

原创 https协议传输过程及https 所处层级

写的太好了,就是我一直想找的内容,看了这个对https立马明白多了http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。HTTPS简介HTTPS其实是有两部分组成:HTTP + S

2016-12-15 16:50:40 4018 1

转载 Log4j的进阶使用 自定义类 日志类型 日志导出位置

自定义java类[java] view plain copypackage com.sitech.nbc.util;    import java.io.ByteArrayOutputStream;  import java.io.PrintWriter;    import org.apache.log4j.Logger;  

2016-12-15 16:41:36 624

原创 消息队列实现分布式事务

前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除

2016-12-15 15:50:05 8002 1

转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向

2016-12-15 15:37:25 323

原创 分布式事务

事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。参考下薛定谔的猫。事务是为了保障业务数据的完整性和准确性的。分布式事务,常见的两个处理办法就是两段式提交和补偿。两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉

2016-12-15 15:27:18 186

转载 分布式事务一致性解决方案

在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity)、一致

2016-12-15 15:19:10 410

转载 redis 存储数据结构及持久化方式--rdb 、aof

String[html] view plain copy 1、String  常用命令:  除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作:  获取字符串长度  往字符串append内容  设置和获取字符串的某一段内容  设置及获取字符串的某一位(bit)  批量设置一系列字符

2016-12-15 13:23:48 1407

原创 linux 添加分组及用户、权限设置、权限数字解析

1.查看所有用户cut -d : -f 1 /etc/passwd2.添加用户useradd 命令可以创建一个新的用户帐号,其最基本用法为: useradd 用户名 如输入以下命令: adduser newuser useradd newuser 系统将创建一个新用户 newuser,该用户的Home 目录为/home/newuser。 userad

2016-12-15 10:46:48 4938

原创 linux常用命令

1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:[plain] view plain copy print?cd /root/Docements # 切换到目录/root/Docements  cd ./path          

2016-12-15 10:33:41 182

原创 MySQL索引使用的数据结构:B-Tree和B+Tree

MyISAM是MySQL 5.5之前版本默认的存储引擎,从5.5之后,InnoDB开始成为MySQL默认的存储引擎。MyISAM使用B-Tree实现主键索引、唯一索引和非主键索引。InnoDB中非主键索引使用的是B-Tree数据结构,而主键索引使用的是B+Tree。本文就是对这两种数据结构做简单的介绍。1. B-TreeB-Tree不是“B减树”,而是“B树

2016-12-15 10:15:42 2680

原创 jvm 内存dump、gc查看、线程死锁,jmap、jstack、jstat

1. jstat     这个命令对于查看Jvm的堆栈信息很有用。能够查看eden,survivor,old,perm等heap的capacity,utility信息    对于查看系统是不是有能存泄漏以及参数设置是否合理有不错的意义2. jstack    这个是用来查看jvm当前的thread dump的。可以看到当前Jvm里面的线程状况。    这个对

2016-12-15 09:06:36 38639 1

转载 MySQL事务隔离级别详解

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)       在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirt

2016-12-15 09:00:55 239

转载 BlockingQueue深入分析

1.BlockingQueue定义的常用方法如下 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e,time,unit)移除remove()poll()take()poll(time,unit)检查element()peek()不可用不可用

2016-12-15 08:41:58 230

转载 ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别

工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(Synch

2016-12-15 08:41:09 228

原创 BlockingQueue

在java.util.Concurrent包中,BlockingQueue很好的解决了在多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。同时,BlockingQueue也用于java自带线程池的缓冲队列中,了解BlockingQueue也有助于理解线程池的工作模型。一 BlockingQueue接口该接口属

2016-12-15 08:40:24 553

原创 JVM的内存区域划分

JVM的内存区域划分  学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?  由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:     

2016-12-15 08:39:14 168

原创 SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue

SynchronousQueue        SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加;可以认为SynchronousQueue是一个缓存值为1的阻塞队列,但是 isEmpty()方法永远返回是true,remainingCapacity() 方法永远返回是0,remove()

2016-12-13 16:54:51 258

kafka 技术内幕 图文详解Kafka源码设计与实现

kafka 技术内幕 图文详解Kafka源码设计与实现 kafka 源码

2018-04-09

disruptor 实例

disruptor 缓冲队列 高效

2017-05-17

netty 架构剖析 和源码解读

netty 架构剖析 和源码解读

2017-05-16

zookeeper 分布式锁

利用zookeeper 实现分布式锁

2017-05-10

令牌桶Java实现

令牌桶 Java 源码 不限制桶大小

2017-05-05

turbine-web-1.0.0.war

hystrix turbine 服务监控 服务降级

2017-04-12

MySQL编译安装、主从复制的配置(CentOS-6.6+MySQL-5.6)

MySQL编译安装、主从复制的配置(CentOS-6.6+MySQL-5.6)

2017-01-06

Redis集群的安装、高可用测试、扩展测试---带源码

Redis集群的安装、高可用测试、扩展测试---带源码

2017-01-04

ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

2017-01-03

ActiveMQ的安装与使用

ActiveMQ的安装与使用

2016-12-27

Hudson持续集成服务器的安装与配置

Hudson持续集成服务器的安装与配置

2016-12-27

SonarQube代码质量管理平台的介绍与安装

SonarQube代码质量管理平台的介绍与安装

2016-12-27

svn jsvnadmin 搭建 svn服务器

svn jsvnadmin 搭建 svn服务器

2016-12-27

tomcat 启动 重启 shell 脚本

tomcat 启动 停止 重启 shell 脚本

2016-12-27

redis 单点登录

tomcat redis session manager 实现session共享单点登录

2016-12-23

tika-app-1.0

tika-app-1.0.jar 用于lucene 解析文档

2015-11-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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