10 2015 档案

摘要:AOP的配置方式有2种方式:xml配置和AspectJ注解方式。今天我们就来实践一下xml配置方式。 我采用的jdk代理,所以首先将接口和实现类代码附上packagecom.tgb.aop;publicinterfaceUserManager{publicStringfindUserById(i... 阅读全文
posted @ 2015-10-31 21:53 ljdgm 阅读(225) 评论(0) 推荐(0)
摘要:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)除了返回类型模式(上面代码片断中的ret-type-pattern),名... 阅读全文
posted @ 2015-10-31 20:17 ljdgm 阅读(441) 评论(0) 推荐(1)
摘要:堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下... 阅读全文
posted @ 2015-10-31 14:16 ljdgm 阅读(614) 评论(1) 推荐(0)
摘要:新换环境,又有新东西可以学习了,哈皮! 抽空学习之余看了一下redis,个人对Springmvc的爱是忠贞不渝,所以整理了一下Springmvc整合redis的环境搭建。分享学习。 第一步: 创建maven项目: 实例pom.xml内容如下 4.0.0 war orm-bae c... 阅读全文
posted @ 2015-10-31 00:12 ljdgm 阅读(543) 评论(0) 推荐(0)
摘要:Redis介绍 Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所... 阅读全文
posted @ 2015-10-31 00:05 ljdgm 阅读(331) 评论(0) 推荐(0)
摘要:1、 ArrayList底层是采用数组实现的(并且改数组的类型是Object类型的)2 如果是jdk6的话,采用Array.of()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法(将数组拷贝)3 、List list = new ArrayList();... 阅读全文
posted @ 2015-10-27 19:44 ljdgm 阅读(7785) 评论(1) 推荐(0)
摘要:Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode ... 阅读全文
posted @ 2015-10-27 19:39 ljdgm 阅读(323) 评论(0) 推荐(0)
摘要:当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloader bootstrap classloa... 阅读全文
posted @ 2015-10-27 19:32 ljdgm 阅读(667) 评论(0) 推荐(0)
摘要:java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职:Bootstrap ClassLoader 负... 阅读全文
posted @ 2015-10-27 18:49 ljdgm 阅读(270) 评论(0) 推荐(0)
摘要:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的... 阅读全文
posted @ 2015-10-27 18:44 ljdgm 阅读(239) 评论(0) 推荐(0)
摘要:1.java是如何管理内存的Java的内存管理就是对象的分配和释放问题。(两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同... 阅读全文
posted @ 2015-10-27 18:39 ljdgm 阅读(364) 评论(0) 推荐(0)
摘要:大部分Java应用都是Web应用,展现层是Web应用不可忽略的重要环节。Spring为展现层提供了一个优秀的Web框架-Spring MVC。和众多其他Web框架一样,它基于MVC设计理念,此外,它采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。Spring MVC通过一套MVC注... 阅读全文
posted @ 2015-10-26 00:54 ljdgm 阅读(996) 评论(0) 推荐(0)
摘要:1.打开MyEclipse6.0.1,然后“window”→“Preferences”2.选择“java”,展开,“Editor”,选择“ContentAssist”。3.选择“ContentAssist”,然后看到右边,右边的“Auto-Activation”下面的“Auto Activatio... 阅读全文
posted @ 2015-10-26 00:44 ljdgm 阅读(280) 评论(0) 推荐(0)
摘要:开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提3点建议!不要使用System.out.println作为调试工具把所有涉及到的组件日志级别激活并使用使用日志分析器来读取... 阅读全文
posted @ 2015-10-26 00:41 ljdgm 阅读(202) 评论(0) 推荐(0)
摘要:数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式。范式的目标应用数据库范式可以带来许多好处,但是最重要的好处归结为三点:1... 阅读全文
posted @ 2015-10-26 00:38 ljdgm 阅读(186) 评论(0) 推荐(0)
摘要:AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。 AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理... 阅读全文
posted @ 2015-10-26 00:34 ljdgm 阅读(379) 评论(0) 推荐(0)
摘要:哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。 对哈希表的使用者一一人来说,这是一瞬间的事。哈希表运算得非常快,在计算机程... 阅读全文
posted @ 2015-10-26 00:32 ljdgm 阅读(216) 评论(0) 推荐(0)
摘要:在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。 目录:hashCode()和equals()的用法重写默认实现使用Apache Commons Lang包重写has... 阅读全文
posted @ 2015-10-26 00:31 ljdgm 阅读(322) 评论(0) 推荐(0)
摘要:HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至... 阅读全文
posted @ 2015-10-26 00:29 ljdgm 阅读(146) 评论(0) 推荐(0)
摘要:2015-10-24 java达人Java 中 的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。要了解枚举类型,建议大家先打开jdk 中的Enum类简单读一下,这个类里面定义了很多protected 方法,比如构造函数,如果要使用这些方法我们... 阅读全文
posted @ 2015-10-26 00:25 ljdgm 阅读(4144) 评论(0) 推荐(0)
摘要:HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制... 阅读全文
posted @ 2015-10-26 00:23 ljdgm 阅读(170) 评论(0) 推荐(0)
摘要:这篇文章开始介绍Map系列另一个比较重要的类TreeMap。 大家也许能感觉到,网络上介绍HashMap的文章比较多,但是介绍TreeMap反而不那么多,这里面是有原因:一方面HashMap的使用场景比较多;二是相对于HashMap来说,TreeMap所用到的数据结构更为复杂。 废话不多说,进入正题... 阅读全文
posted @ 2015-10-26 00:22 ljdgm 阅读(278) 评论(0) 推荐(0)
摘要:首先我们为什么需要做日志管理,在现实的上线中我们经常会遇到系统出现异常或者问题。这个时候就马上打开CRT或者SSH连上服务器拿日子来分析。受网络的各种限制。于是我们就想为什么不能直接在管理后台查看报错的信息呢。于是日志管理就出现了。 其次个人觉得做日志管理最好的是Aop,有的人也喜欢用拦截器。... 阅读全文
posted @ 2015-10-25 22:36 ljdgm 阅读(523) 评论(1) 推荐(1)
摘要:@Controller @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写,你也可以自己指定,如下 方法一: @Controller public class TestController {} 方法二: @Controller("tm... 阅读全文
posted @ 2015-10-25 20:31 ljdgm 阅读(402) 评论(0) 推荐(0)
摘要:UML建模之时序图(Sequence Diagram)一、时序图简介(Brief introduction)二、时序图元素(Sequence Diagram Elements)角色(Actor)对象(Object)生命线(Lifeline)控制焦点(Focus of Control)消息(Messa... 阅读全文
posted @ 2015-10-19 04:14 ljdgm 阅读(41415) 评论(0) 推荐(1)
摘要:本节和大家一起学习一下UML类图元素,类图能出色地表示继承与合成关系。为了将UML类图作为一种高效的沟通工具使用,开发者必须理解如何将类图上出现的元素转换到Java中。请看本节详细介绍。全面认识UML类图元素开发Java应用程序时,开发者要想有效地利用统一建模语言(UML),必须全面理解UML元素以... 阅读全文
posted @ 2015-10-19 04:07 ljdgm 阅读(856) 评论(0) 推荐(0)
摘要:本节和大家一起学习一下UML图,这里主要介绍UML结构图和UML行为图两部分,下面让我们一起看一下UML图的详细介绍吧。UML图这里再次提到对软件体系结构进行可视化、详述、构造和文档化,有5种最重要的互补视图:用况视图(usecaseview)、设计视图(designview)、进程视图(proce... 阅读全文
posted @ 2015-10-19 04:04 ljdgm 阅读(1245) 评论(1) 推荐(0)
摘要:1. 引言 从大一开始学习编程,到如今也已经有两年了。从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具。学习过程中也无意识的了解了一些所谓的设计模式,如今打算系统的学习。学习以书《设计模式的艺术——软件开发人员内功修炼之道/刘伟著》为主。 所谓设计模式,... 阅读全文
posted @ 2015-10-19 03:42 ljdgm 阅读(600) 评论(0) 推荐(0)
摘要:先贴一些反射的基本知识:--------------------------------------------------------------------一、什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提 出... 阅读全文
posted @ 2015-10-19 03:35 ljdgm 阅读(496) 评论(0) 推荐(0)
摘要:Lucene介绍lucene的介绍,这里引用百度百科的介绍Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语... 阅读全文
posted @ 2015-10-19 01:53 ljdgm 阅读(435) 评论(0) 推荐(1)
摘要:索引的操作我们建立所有就是要达到快速检索的目的,对数据能够方面便的查找,和数据库类似,索引也有自己的相关增删改查的操作。在索引的增删改查中,增删改属于写操作,主要是有IndexWrite提供的方法处理;而查显而易见,读操作,使用IndexSeacher 提供的方法来实现。在Lucene的官方文档找到... 阅读全文
posted @ 2015-10-19 01:48 ljdgm 阅读(312) 评论(0) 推荐(0)
摘要:Lucene分词器及高亮分词器在lucene中我们按照分词方式把文档进行索引,不同的分词器索引的效果不太一样,之前的例子使用的都是标准分词器,对于英文的效果很好,但是中文分词效果就不怎么样,他会按照汉字的字直接分词,没有词语的概念。使用分词的地方只需要把Analyzer实例化成我们第三方的分词器即可... 阅读全文
posted @ 2015-10-19 01:37 ljdgm 阅读(835) 评论(0) 推荐(0)
摘要:需求很多时候我们在用数据库的需要使用模糊查询,我们一般会使用like语句来做,然而这样的做的效率不是很多(很抱歉我们亲自去测,很多都这么说的),那么使用Lucene来检索的话,效率会高很多。lucene结合数据库步骤写一段传统的JDBC程序,将每条的用户信息从数据库读取出来针对每条用户记录,建立一个... 阅读全文
posted @ 2015-10-19 01:24 ljdgm 阅读(557) 评论(0) 推荐(0)
摘要:JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与... 阅读全文
posted @ 2015-10-19 00:33 ljdgm 阅读(412) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2015-10-18 23:04 ljdgm 阅读(23) 评论(0) 推荐(1)
摘要:如果手机只能进行实时通话,没有留言和短信功能会怎么样?一个电话打过来,正好没有来得及接上,那么这个电话要传递的信息肯定就收不到了。为什么不 能先将信息存下来,当用户需要查看信息的时候再去获得信息呢?伴随着这个疑惑,短息和留言应运而生,无论手机是否开机、是否未及时接到,我们都能得到其中 的信息。JMS... 阅读全文
posted @ 2015-10-18 22:52 ljdgm 阅读(879) 评论(0) 推荐(0)
摘要:JMS Provider 实现了JMS规范的消息系统,该系统还提供必须的用于管理和控制全方位的功能,如这里的ActiveMQ。Administered Objects Administered Objects是预先配置的JMS对象,由系统管理员为使用JMS的客户端创建,如ConnectionFact... 阅读全文
posted @ 2015-10-18 22:50 ljdgm 阅读(2233) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2015-10-18 14:53 ljdgm 阅读(1) 评论(0) 推荐(0)
摘要:8种排序之间的关系: 1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现2,希尔排序(最小增量排序)(1)基本思想:... 阅读全文
posted @ 2015-10-18 14:51 ljdgm 阅读(233) 评论(0) 推荐(0)
摘要:(点击上方公众号,可快速关注)原文:eclipsesource译文:ImportNew - 南半球链接:http://www.importnew.com/16517.html在 Java 中,每一个对象都有一个容易理解但是仍然有时候被遗忘或者被误用的 hashCode 方法。这里有3件事情要时刻牢记... 阅读全文
posted @ 2015-10-18 14:45 ljdgm 阅读(313) 评论(0) 推荐(0)
摘要:一、概述Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示:下面就每一个区域进行阐述。二、运行时数据区域程序计数器程序计数器,可以看做是当前线程所执行的字... 阅读全文
posted @ 2015-10-18 14:40 ljdgm 阅读(296) 评论(0) 推荐(0)
摘要:这篇文章开始介绍Map系列另一个比较重要的类TreeMap。 大家也许能感觉到,网络上介绍HashMap的文章比较多,但是介绍TreeMap反而不那么多,这里面是有原因:一方面HashMap的使用场景比较多;二是相对于HashMap来说,TreeMap所用到的数据结构更为复杂。 废话不多说,进入正题... 阅读全文
posted @ 2015-10-18 14:38 ljdgm 阅读(207) 评论(0) 推荐(0)
摘要:在实际的项目开发中会有很多的对象,如何高效、方便地管理对象,成为影响程序性能与可维护性的重要环节。Java 提供了集合框架来解决此类问题,线性表、链表、哈希表等是常用的数据结构,在进行 Java 开发时,JDK 已经为我们提供了一系列相应的类来实现基本的数据结构,所有类都在 java.util 这个... 阅读全文
posted @ 2015-10-18 14:36 ljdgm 阅读(357) 评论(0) 推荐(0)
摘要:wait, notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视。本文对这些关键字的使用进行了描述。在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。。举个例子,如果你的Java程序中有两个线... 阅读全文
posted @ 2015-10-18 14:33 ljdgm 阅读(329) 评论(0) 推荐(0)
摘要:适用场合: 7.3 工厂模式的适用场合 创建新对象最简单的办法是使用new关键字和具体类。只有在某些场合下,创建和维护对象工厂所带来的额外复杂性才是物有所值。本节概括了这些场合。 7.3.1 动态实现 如果需要像前面自行车的例子一样,创建一些用不同方式实现同一接口的对象,那么可以使用一个工厂方法或简... 阅读全文
posted @ 2015-10-18 14:28 ljdgm 阅读(1894) 评论(0) 推荐(0)
摘要:在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代 已结束,分布式开发的时代实际上早已悄悄地成为了时代... 阅读全文
posted @ 2015-10-18 14:13 ljdgm 阅读(212) 评论(0) 推荐(1)
摘要:分布式设计与开发中有些疑难问题必须借助一些算法才能解决,比如分布式环境一致性问题,感觉以下分布式算法是必须了解的(随着学习深入有待添加):Paxos算法一致性Hash算法Paxos算法1)问题描述分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各... 阅读全文
posted @ 2015-10-18 14:12 ljdgm 阅读(427) 评论(0) 推荐(0)
摘要:分布式环境中大多数服务是允许部分失败,也允许数据不一致,但有些最基础的服务是需要高可靠性,高一致性的,这些服务是其他分布式服务运转的基础,比如naming service、分布式lock等,这些分布式的基础服务有以下要求:高可用性高一致性高性能对于这种有些挑战CAP原则 的服务该如何设计,是一个挑战... 阅读全文
posted @ 2015-10-18 14:09 ljdgm 阅读(383) 评论(0) 推荐(0)
摘要:首先这里澄清两个概念:JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的Java程序,而JVM执行引擎实例则对应了属于用户运行程序的线程;也就是JVM实例是进程级别,而执行引擎是线程级别的。JVM是什么?—JVM的生命周期JVM实例的诞生:当启动一个Java程序时,一个JVM实例就产生了... 阅读全文
posted @ 2015-10-18 03:20 ljdgm 阅读(279) 评论(0) 推荐(0)
摘要:JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境.1.创建JVM装载环境和配置2.装载JVM.dll3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例4.调用JNIEnv实例装载并处理class类。在我们运行和调试Jav... 阅读全文
posted @ 2015-10-18 03:16 ljdgm 阅读(540) 评论(0) 推荐(0)
摘要:下载并安装Memcache服务器端服务器端主要是安装memcache服务器端.下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libeve... 阅读全文
posted @ 2015-10-18 03:04 ljdgm 阅读(453) 评论(0) 推荐(0)
摘要:下载并安装Memcache服务器端服务器端主要是安装memcache服务器端.下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libeve... 阅读全文
posted @ 2015-10-18 02:58 ljdgm 阅读(194) 评论(0) 推荐(0)
摘要:数据库访问可能是很多网站的瓶颈。动不动就连接池耗尽、内存溢出等。前面已经讲到如果我们的网站是一个分布式的大型站点,那么使用 memcached实现数据库的前端缓存是个很不错的选择;但如果网站本身足够小只有一个服务器,甚至是vps的那种,不推荐使用memcached,使 用Hibernate或者Myb... 阅读全文
posted @ 2015-10-18 02:52 ljdgm 阅读(241) 评论(0) 推荐(0)
摘要:1.加载commons-pool-1.5.6.jar、java_memcached-release_2.6.6.jar、slf4j-api-1.6.1.jar、slf4j-simple-1.6.1.jar2.创建memcached工具类:[java] view plaincopypublicclas... 阅读全文
posted @ 2015-10-18 02:50 ljdgm 阅读(433) 评论(0) 推荐(0)
摘要:一、memcache简介Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。Memcache官方网站:http://memcached.org/二、memcache的安装1、 下载源文件... 阅读全文
posted @ 2015-10-18 02:46 ljdgm 阅读(338) 评论(0) 推荐(0)
摘要:一、单一职责原则:全称:“Single-Responsibility Principle”说明:就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修... 阅读全文
posted @ 2015-10-18 02:39 ljdgm 阅读(283) 评论(0) 推荐(0)
摘要:设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设... 阅读全文
posted @ 2015-10-18 02:36 ljdgm 阅读(207) 评论(0) 推荐(0)
摘要:一、类和对象使用技巧1、尽量少用new生成新对象 用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢。在某些时候可复用现有对象。比如在进行大量St rillg操作时,可用StringBuffer娄代替String类,以避免生成大量的对象。用 new关键词创建类的实例时,构造... 阅读全文
posted @ 2015-10-18 02:31 ljdgm 阅读(343) 评论(0) 推荐(0)
摘要:1.性能分析本质寻找系统的性能瓶颈(木桶理论/短板效应),并处理系统的性能瓶颈2.性能分析主要指标负载、响应和服务器CPU\MEM等的使用率3.性能分析主要工具LoadRunner VisualVM和MySql客户端工具(或类似工具)4.性能分析及处理思路4.1. 代码避免代码里面的循环数据库查询(... 阅读全文
posted @ 2015-10-18 02:09 ljdgm 阅读(1104) 评论(0) 推荐(1)
摘要:其实只要找下Google大神就有答案了:StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不... 阅读全文
posted @ 2015-10-18 02:01 ljdgm 阅读(584) 评论(1) 推荐(0)
摘要:对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开... 阅读全文
posted @ 2015-10-18 01:59 ljdgm 阅读(432) 评论(0) 推荐(1)
摘要:什么是GC监控?垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明:1. 何时一个新生代中的对象被移动到老年代时,所花费的时间。2. Stop-the-world 何时发生的,持续了多长时间。GC监控是为了鉴别JVM是否在高效地执行GC,以及是否有必要进行额外的性能调优。基于... 阅读全文
posted @ 2015-10-18 01:56 ljdgm 阅读(349) 评论(0) 推荐(1)
摘要:为什么需要优化GC或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或行为:已经通过-Xms和–Xmx 设置了内存大小包含了-server参数系统中没有超时日志等错误日志换... 阅读全文
posted @ 2015-10-18 01:55 ljdgm 阅读(228) 评论(0) 推荐(0)
摘要:下面我们看一下Apache的MaxClients参数在Full GC发生时是如何影响系统的。大部分开发人员都知道在由于GC发生而导致的”停止世界现象(STW) “(详细请参见Understanding Java Garbage Collection)。尤其是,NHN的Java开发人员经常会遇到由于G... 阅读全文
posted @ 2015-10-18 01:53 ljdgm 阅读(314) 评论(0) 推荐(0)
摘要:并不是每个程序都需要调优。如果一个程序性能表现和预期一样,你不必付出额外的精力去提高它的性能。然而,在程序调试完成之后,很难马上就满足它的性能需求,于是就有了调优这项工作。无论哪种编程语言,对应用程序进行调优都需要丰富的技术知识并且注意力高度集中。另外,你也不应该用相同的方式对两个程序调优,因为每个... 阅读全文
posted @ 2015-10-18 01:49 ljdgm 阅读(371) 评论(0) 推荐(0)
摘要:一、AOP技术起源AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析。他们研究出了一种新的编程思想,借助这一思想或许可以通过减少代码重复模块从而帮助开发人员提高工作效率。随着研究的逐渐深... 阅读全文
posted @ 2015-10-17 22:24 ljdgm 阅读(606) 评论(0) 推荐(0)
摘要:一、AOP的体系结构如下图所示:(引自AOP联盟)层次3语言和开发环境:基础是指待增加对象或者目标对象;切面通常包括对于基础的增加应用;配置是指AOP体系中提供的配置环境或者编织配置,通过该配置AOP将基础和切面结合起来,从而完成切面对目标对象的编织实现。层次2面向方面系统:配置模型,逻辑配置和AO... 阅读全文
posted @ 2015-10-17 22:23 ljdgm 阅读(4066) 评论(0) 推荐(1)
摘要:动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。一.相关类及其方法:java.lang.reflect.Proxy,Proxy 提供用于创建动态代理... 阅读全文
posted @ 2015-10-17 22:21 ljdgm 阅读(497) 评论(0) 推荐(0)
摘要:JVM里面hashtable和hashmap实现原理文章分类:Java编程转载在hashtable和hashmap是java里面常见的容器类,是Java.uitl包下面的类,那么Hashtable和Hashmap是怎么实现hash键值对配对的呢,我们看看jdk里面的源码,分析下Hashtable的构... 阅读全文
posted @ 2015-10-17 22:07 ljdgm 阅读(319) 评论(0) 推荐(0)
摘要:spring beans下面有如下源文件包:org.springframework.beans, 包含了操作java bean的接口和类。org.springframework.beans.annotation, 支持包,提供对java 5注解处理bean样式的支持。org.springframew... 阅读全文
posted @ 2015-10-17 21:52 ljdgm 阅读(659) 评论(0) 推荐(0)
摘要:1.何谓Spring IOC 何谓Spring IOC?书上谓之“依赖注入”,那何谓“依赖注入”? 作为一个Java程序猿,应该遇到过这样的问题,当你在代码中需要使用某个类提供的功能时,你首先需要new一个对象,给它传递必要的参数,然后才能使用它提供的功能,最后释放对象占用的内存,当然了... 阅读全文
posted @ 2015-10-17 21:39 ljdgm 阅读(413) 评论(0) 推荐(0)
摘要:refresh这个方法包含了整个BeanFactory初始化的过程,定位资源由obtainFreshBeanFactory()来完成,[java]view plaincopyprotectedConfigurableListableBeanFactoryobtainFreshBeanFactory(... 阅读全文
posted @ 2015-10-17 21:37 ljdgm 阅读(316) 评论(0) 推荐(0)
摘要:1.IOC容器的依赖注入 Spring中,依赖注入是在用户第一次向IOC容器索要Bean时触发的(通过getBean方法)。在BeanFactory中我们看到getBean(String…)函数,它的具体实现在AbstractBeanFactory中:[java]view plaincopypubl... 阅读全文
posted @ 2015-10-17 21:01 ljdgm 阅读(315) 评论(0) 推荐(0)