- 博客(230)
- 资源 (40)
- 收藏
- 关注
转载 ConcurrentHashMap从jdk1.7到jdk1.8的变化
一、简单回顾ConcurrentHashMap在jdk1.7中的设计 先简单看下ConcurrentHashMap类在jdk1.7中的设计,其基本结构如图所示:每一个segment都是一个HashEntry[] table, table中的每一个元素本质上都是一个HashEntry的单向队列。比如table[3]为首节点,table[3]->next为节点1,之后为节点2,依次类
2016-08-24 17:25:56 8328 2
原创 线程池与线程队列分析-优
· 线程池是对象池的一个有用的例子,它能够节省在创建它们时候的资源开销。并且线程池对系统中的线程数量也起到了很好的限制作用。· 线程池中的线程数量必须仔细的设置,否则冒然增加线程数量只会带来性能的下降。· 在定制ThreadPoolExecutor时,遵循KISS原则,通常情况下会提供最好的性能。 线程池类为java.util.concurrent.ThreadPollExe
2016-08-24 14:00:36 9469
转载 Java中Class类与反射机制的用法总结
Java中Class类与反射机制的用法总结Java的Class类是java反射机制的基础,通过Class类我们可以获得关于一个类的相关信息,下面我们来了解一下有关java中Class类的相关知识!首先,Class是一个java类,跟Java API中定义的诸如Thread、Integer类、我们自己定义的类是一样,也继承了Object(Class是Object的直接子类)。总之
2016-08-23 09:17:41 1610
转载 一分钟掌握spring中bean的生命周期
Spring 中bean 的生命周期短暂吗?在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线程的程序,就必须注意安全(Thread-safe)的议题,防止多个线程同时存取
2016-08-23 09:06:05 1110
转载 spring装配Bean过程以及Bean实例化过程
简要说明Spring什么时候实例化bean,首先要分2种情况 第一:如果你使用BeanFactory作为Spring Bean的工厂类,则所有的bean都是在第一次使用该Bean的时候实例化 第二:如果你使用ApplicationContext作为Spring Bean的工厂类,则又分为以下几种情况: (1):如果bean的scope是singleton的,并且lazy
2016-08-23 09:03:05 16881
转载 Spring BeanPostProcessor与动态加载数据源配置
前言: 本文旨在介绍Spring动态配置数据源的方式,即对一个DataSource的配置诸如jdbcUrl,user,password,driverClass都通过运行时指定,而非由xml静态配置定死。 Spring构造Context的参数一般只包含配置文件路径和类加载器,如果需要达到动态传入配置参数的目的,需要Spring在初始化数据源相关bean的时候能够对原有配置
2016-08-23 09:00:04 752
原创 Spring配置事务中@Transactional各个属性定义
Spring中的@Transactional比较重要的一些属性,比如 Propagation(事务传播属性),Isolation(事务隔离级别),Rollback Rules(事务回滚规则,默认情况是RunTimeException的时候回滚,即unchecked exception),Timeout(事务执行时长,默认30秒),Read-Only(是否只读,声明只读可加快事务执行速度)。除了这些
2016-08-22 15:59:39 10290
转载 双向队列集合 Deque
Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(LinkedList是从jdk1.2 开始就存在数据结构)。 Deque在Queue的基础上增加了更多的操作方法。
2016-08-22 15:12:47 2857
转载 java.util.Stack类简介
Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用[plain] view plain copyE push(E item) 把项压入堆栈顶部。 E pop
2016-08-22 14:54:41 330
转载 JAVA集合类图
1.java集合类图1.11.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。 发现一个特点,上述所有的集
2016-08-22 14:19:26 450
转载 深入理解JVM类加载过程
虚拟机类加载机制 生命周期从被加载到虚拟机内存,到卸载内存为止,包含7个阶段:加载 、验证、解析、 准备、初始化、使用、卸载。 验证、准备和解析统称为连接。 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,而解析则不一定,它可以在初始化阶段之后再开始,以支持java的运行时绑定。2. 3种情况必须对类进行“初始化”遇到ne
2016-08-22 13:27:42 337
转载 Java中Error与Exception的区别
Error类和Exception类都继承自Throwable类。Error的继承关系:Exception的继承关系:二者的不同之处:Exception:1.可以是可被控制(checked) 或不可控制的(unchecked)。2.表示一个由程序员导致的错误。3.应该在应用程序级被处理。Error:1.总是不可控
2016-08-22 09:08:09 270
转载 构建高效的团队协作工具(四)-Jira和Confluence集成Crowd实现SSO
1. Crowd认证所需类和Crowd集成需要crowd-integration-client-xxx.jar类包,如果没有,从standalone版本复制一份到jira和Confluence的WEB-INF/lib目录下。在在jira4.2.1-b588(war)中可能存在这个包。 2. Crowd配置使用crowd管理员用户登录1)
2016-08-17 14:47:58 941
转载 构建高效的团队协作工具(一) Jira安装配置
Jira是基于web的问题跟踪和项目管理软件解决方案,JIRA广泛地应用于全球上千家企业和开源组织.可以作为bug跟踪,缺陷跟踪,项目管理软件,JIRA使用简单,配置灵活,有完善的权限管理以及扩展性。1. 系统环境OS:CentOS release 5.6Jdk:1.6.0_26Web Ser
2016-08-17 14:47:30 2334
转载 构建高效的团队协作工具(二) Crowd安装配置
Crowd是一个基于web的单点登录工具,能够简化应用软件的解决方案以及身份认证管理.管理员可以根据需要,利用Crowd的直观界面来统一管理多用户,web应用和目录服务器的认证和授权. Crowd应用是一个中间件应用,将web应用,LDAP以及用户数据库集成到一个单一的安全架构中,以支持单点登录和集中的身份管理.1. 系统环境OS:
2016-08-17 14:46:32 1263
转载 构建高效的团队协作工具(三) Confluence安装配置
Confluence是一个专业的企业知识管理与协同软件,一个企业级别的wiki.通过它可以实现团队成员之间的协作和信息共享。Confluence使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息,文档协作,集体讨论.目前,Confluence被广泛地用于项目团队,开发团队,市场销售团队.1. 系统环境OS:CentOS releas
2016-08-17 14:45:17 2256
转载 Tomcat之session详解
深入Tomcat源码分析Session到底是个啥!Session到底是个啥?我们都知道,HTTP协议本身是无状态的(Stateless),这对于一些简单的页面展示来说,功能足够,不受影响。而对于日渐复杂的动态页面、应用,各种需要登录认证等场景,就力不从心了。试想对于一个已经登录的用户仍然一次次的提示登录,会是什么感受呢?因此,多数需要保持
2016-08-17 10:00:30 6036 1
转载 jstat 命令行详解
参见:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
2016-08-17 09:18:59 755
转载 Java堆内存富余却疯狂FullGc问题排查
刚上线了一个新的应用集群,第二天和第三天收到了应用FullGc超过阈值的报警短信。但是观察报警Java实例的jvm监控,堆内存仅仅用了1G多一点,还富余近700M。很困惑,剩余这么多内存没被使用,那么说明老年代内存是充足的才对啊! 同事提醒我是不是申请了什么大对象,诚然,老年代只会有两种类型的对象,1,多次Minor Gc中存活的小对象,2,大对象,即超过了PretenureSize
2016-08-17 09:18:13 2616 1
转载 Tomcat系统架构分析
Tomcat的结构很复杂,但是Tomcat也非常的模块化,找到了Tomcat最核心的模块,就抓住了Tomcat的 “ 七寸 ” 。整体结构Tomcat 总体结构图从上图中可以看出Tomcat的心脏是两个组件:Connector 和 Container,关于这两个组件将在后面详细介绍。Connector 组件是可以被替换,这样可以提供给服务器设计者更多的选择,因为这个
2016-08-16 17:03:49 578
转载 高效的HPPC java库
HPPC(高性能的原始集合)库专注高性能和高存储效率优化,提供了经典Java集合的高性能实现,支持所有原生类似,包括List、Set 和Map等。为什么要使用HPPCJava集合包在许多方面是完美的,它不能用于JDK1.5中开始引入的原始类型和自动装箱,这减少了运行时的效率(增加内存使用以及垃圾收集器的开销)这个库和Java集合类以及其它集合类有着不同的设计目标,例如每个类的内部都
2016-08-16 16:02:10 2148
转载 降低Java垃圾回收开销的5条建议
保持GC低开销的窍门有哪些?随着一再拖延而即将发布的 Java9,G1(“Garbage First”)垃圾回收器将被成为 HotSpot 虚拟机默认的垃圾回收器。从 serial 垃圾回收器到CMS 收集器, JVM 见证了许多 GC 实现,而 G1 将成为其下一代垃圾回收器。随着垃圾收集器的发展,每一代 GC 与其上一代相比,都带来了巨大的进步和改善。parallel GC 与
2016-08-16 16:00:55 345
转载 JDK命令jcmd
jcmd用于向正在运行的JVM发送诊断信息请求,是从JDK1.7开始提供可以说是jstack和jps的结合体命令格式jcmd [ options ]jcmd [ pid | main-class ] PerfCounter.printjcmd [ pid | main-class ] command [ arguments ]jcmd [ pid | main-cl
2016-08-16 16:00:07 3154
转载 java三线程循环有序打印ABC
迅雷笔试题:编写一个程序,开启 3个线程,这 3个线程的 ID分别为 A、 B、 C,每个线程将自己的 ID在屏幕上打印 10遍,要求输出结果必须按 ABC的顺序显示;如: ABCABC….依次递推。解决思路:每个线程运行时先检查他依赖的线程是否已完成工作,线程B依赖线程A的完成,线程C依赖线程B和线程A的完成,线程A依赖线程C的完成。如果当前线程依赖的线程没有执行完,则阻塞当前线
2016-08-16 15:50:32 1278
转载 ZeroMQ的研究与学习
ZeroMQ的研究与学习简介工作模式层级模型实现原理核心特点与其他MQ的简单比较ZeroMQ的一百字概括ZeroMQ看起来想一个可嵌入的网络库,但其作用就像是一个并发框架。它为你提供了各种传输工具,如进程内,进程间,TCP和组播中进行原子消息传递的套接字。你可以使用各种模式实现N对N的套接字连接,这些模式包括发布订阅,请求应答,扇出模式,管道模式。它
2016-08-12 15:05:01 2389
转载 ZeroMQ研究与应用分析
1 ZeroMQ概述ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。2 系统架构2.1总体架构ZeroMQ几乎所有的I/O操作都是异步的,主线程不
2016-08-12 13:48:19 530
转载 SpringMVC:上传与下载
注意事项: 1 springmvc.xml必须配置: Java代码 class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8"/> 2 WEB-INF/lib下必加入:co
2016-08-12 13:35:06 356
转载 spring拦截器实现分析
一、Servlet Filter与Spring interceptor的执行顺序 Filter有顺序吗?我们怎么控制filter的执行顺序。通过Tomcat的代码分析,servlet在Filter执行完成后才调用,如有多个filter怎么控制执行顺序,首先会想到在web.xml配置某个参数,例如order之类的,但查找一下一番,servlet并没有这个参数。试试filter Ma
2016-08-12 10:13:07 1396
转载 SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
今番又遇到乱码问题,有时候真觉得英语母语的那些地区确实挺省事的,至少不用为了这个经典麻烦去折腾。 网络上讨论乱码问题的文章很多,因为各作者使用的计算机环境的不同,往往不是很全面。 这里非常推荐的一篇文章: http://dohkoos.name/java-garbled-analysis.html 简而言之,乱码的“根本原因是由于编码和解码采用的不是同一种码”。例如作者所举
2016-08-12 10:06:22 466
转载 spring缓存注解@Cache
缓存注解有以下三个:@Cacheable @CacheEvict @CachePut @Cacheable(value=”accountCache”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 accountCache 的缓存中查询,如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。这里的缓存中的 ke
2016-08-10 16:30:45 437
转载 JAVA设计模式-模板模式
《JAVA与模式》之模板方法模式在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模
2016-08-10 15:54:40 292
转载 spring模板模式与callback
Spring-模板方法模式及CallbackSpring对JDBC的抽象和对Hibernate的集成,都采用了一种理念或者处理方式,那就是模板方法模式与相应的Callback接口相结合。 采用模板方法模式是为了以一种统一而集中的方式来处理资源的获取和释放,以JdbcTempalte为例,如下: Java代码 public
2016-08-10 15:50:24 714
转载 Ehcache与redis比较
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProviderEhcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。Ehcach
2016-08-10 14:52:52 13767
转载 Redis常见集群方案、Codis实践及与Twemproxy比较
前言诚如开篇文章所言,高效运维包括管理的专业化和技术的专业化。前两篇我们主要在说些管理相关的内容,本篇说一下技术专业化。希望读者朋友们能适应这个转换,谢谢。互联网早在几年前就已进入Web 2.0时代,对后台支撑能力的要求,提高了几十倍甚至几百倍。在这个演化过程中,缓存系统扮演了举足轻重的角色。运维进化到今天,已经不是重复造轮子的时代。所以
2016-08-10 14:22:26 20321
转载 Twemproxy-Redis集群代理
1、twemproxy explore 当我们有大量 Redis 或 Memcached 的时候,通常只能通过客户端的一些数据分配算法(比如一致性哈希),来实现集群存储的特性。虽然Redis 2.6版本已经发布Redis Cluster,但还不是很成熟适用正式生产环境。 Redis 的 Cluster 方案还没有正式推出之前,我们通过 Proxy 的方式来实现集群存储。
2016-08-10 14:16:58 780
转载 mysql集群-ndb
Mysql cluster介绍:MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster
2016-08-10 13:51:28 6826
转载 Redis集群解决方案codis
Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 R
2016-08-10 10:15:17 753
转载 java源注解
java注解java中元注解有四个: @Retention @Target @Document @Inherited; @Retention:注解的保留位置 @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(Rete
2016-08-10 09:42:28 416
转载 spring源码分析-web容器初始化过程解析1
在之前的“Spring MVC实现分析——初始化”中分析了spring mvc的初始化过程,接下来将分析其请求处理过程。 在找请求处理的入口时,我们需要先知道Servlet的编程规范,对应不同的请求(如POST、GET等)的实现方法在FrameworkServlet中,分别是doPost、doGet等,看这一系列方法的具体实现可以知道,请求的处理跳转到了processRequ
2016-08-10 09:37:46 341
转载 servlet开发
一、Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术。 Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤: 1、编写一个Java类,实现servlet接口。 2、把开发好的Java类部署到web服务器中。 按照一种约定俗成的称呼习惯
2016-08-10 09:04:53 337
生产者和消费者问题以及哲学家就餐问题,JAVA实现的程序.rar
2008-05-27
spring学习资料大全
2008-05-16
HibernateInAction.pdf
2008-05-16
毕业设计论文及相关 本科毕业论文(设计)指导手册
2008-05-04
本科毕业论文(设计)指导手册
2008-05-04
mybatis配置数据库自动生成代码
2015-03-24
openxml4j-bin-beta.jar openxml4j-bin-beta.jar openxml4j-bin-beta.jar
2010-07-02
Extjs api Extjs api 点击手册,使用方便
2009-11-19
Extjs和后台数据库交互的程序,增删改查
2009-11-18
想对比xfire,cxf和axis2,并看看他们各自的主要内容么,请下载
2009-04-16
jad.提供2中工具,一种介绍封装在eclipse里的反编译class用的,一种是直接exe,把class房里面就可反编译
2009-04-16
JQuery基础实例教程,基础教学,本人亲自体验,特实用!实用。高手就别下了!!
2009-02-05
7zip安装软件,可把文件在windows系统下打包成tar,7z,zip格式
2009-02-04
火车时刻查询,价格查询,非常全,exe软件,操作简单方便,极品时刻表
2009-02-04
excel二级连动,gif保证能学会
2009-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人