好长时间没有用过Spring了.突然拿起书.我都发现自己对AOP都不熟悉了.其实AOP的意思就是面向切面编程.OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!还是拿人家经常举的一个例子讲解一下吧:比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控.也许我们就会在要一些方法前去加上一条日志记录,我们写个例子看看我们最简单的
系统 2019-08-29 21:58:29 2394
《笔者带你剖析大规模分布式Java平台JVM性能调优基础》前言其实说到对JVM进行性能调优早已是一个老生常谈的话题,如果你所在的技术团队还暂时达不到淘宝团队那样的高度,无法满足在OpenJDK的基础之上根据自身业务进行针对性的二次开发和定制调优,那么对于你来说,唯一的选择就是尽可能的熟悉JVM的内存布局,以及熟练掌握与GC相关的那些选项配置,否则JVM的基础性能调优不是痴人说梦?目录一、性能调优的一些概念和目标;二、性能调优的基本原则;三、新生代的性能调优
系统 2019-08-12 09:30:36 2394
当我们开始接触JNI但是还不熟悉的时候,也许会这样几个问题:Java程序和native程序的数据类型通常是不一样的,它们怎么相互映射的呢?怎么在native方法中访问java方法传递过来的数据呢?在native方法中可以创建java对象吗?如何把结果返回给调用它的java方法?读完本文你将会明白如上问题的来龙去脉。首先我在重复一下如何编写JNI相关的应用程序,我们必须在java方法中声明一个native的方法,比如publicnativeStringget
系统 2019-08-12 09:30:14 2394
好东西分享有些运算符在JAVA语言中存在着,但是在实际开发中我们或许很少用到它们,在面试题中却时常出现它们的身影,对于这些运算符的含义和用法,你是否还记得呢?自增(++)和自减(--)运算符我们先来回答几个问题吧:Java代码inti=0;intj=i++;intk=--i;inti=0;intj=i++;intk=--i;这段代码运行后,i等于多少?j等于多少?k等于多少?太简单了?好,继续:Java代码inti=0;intj=i+++++i;intk=
系统 2019-08-12 09:30:14 2394
一.线程的基本概念1、入题:我们大家都知道,我们可以在一台计算机上同时聊天,看电影,下载视频等,完成上述任务的各个程序之间是完全相互独立的。但是他们在同一段时间内又同时处于运行状态。当然呢,它们在这一段时间内是分时使用计算机CPU时间的。只不过呢在CPU处理速度很快,划分的时间片段很短,所以给大家感觉上是多个程序在同时运行。2、进程:进程是程序的一次动态执行过程。这个过程包含了从程序代码从硬盘加载到内存、在内存中执行、执行结束等过程,实际上也就是进程的产生
系统 2019-08-12 09:29:59 2394
所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。一,结构抽象主题角色(Subject):声明了真实主题和代理主题的共同接口,这样一来在任何使用真实主题的地方都可以使用代理主题。代理主题(Proxy)角色:代理主题角色内部含有对真是主题的引用,从而可以在任
系统 2019-08-12 09:29:46 2394
http://www.oracle.com/technology/global/cn/pub/articles/brahms-tuning.html?_template=/ocom/print作者:CarlBrahms自动执行负载生成和性能优化过程为什么可以节省大量的时间和精力。2008年9月发布优化可能是一项非常艰巨而费时的工作,尤其对于需要最佳性能的环境来说更是如此。优化所带来的好处是使环境更稳定、故障更少、总体性能更佳。也许您幸运地拥有内部性能优化人
系统 2019-08-12 09:29:31 2394
JUnit源码分析(三)——TemplateMethod模式在JUnit执行测试时,我们经常需要初始化一些环境供测试代码使用,比如数据库连接、mock对象等等,这些初始化代码应当在每一个测试之前执行并在测试方法运行后清理。在JUnit里面就是相应的setUp和tearDown方法。如果没有这两个方法,那么我们要在每个测试方法的代码内写上一大堆重复的初始化和清理代码,这是多么愚蠢的做法。那么JUnit是怎么让setUp和tearDown在测试执行前后被调用的
系统 2019-08-12 09:29:29 2394
【http://www.cnblogs.com/youxilua/archive/2011/12/20/2295047.html】前言什么时候开始接触开源这个词呢?貌似,是某老师一直有提,但是,一直没有教我们如何参与开源项目,哎..估计大学老师都这样子了.后来,学习如何使用cvs,svn,git,mercurial等等工具以后,终于,了解开源项目的整个管理以及参与的流程,走了不少弯路,不过,弄懂了还算不错.在我学会使用版本控制器以及,那些网站提供开源服务,
系统 2019-08-12 09:27:33 2394
github并不仅仅是一个代码库你可以自由注册,推送自己一些编写的开源代码。但gihtub不仅仅是一个把你的代码保存起来的代码库。它是一个很强大的代码存储工具。你可以随时把最新的代码更新上去,然后大家随时都能看到最新的代码。如果你是求助别人,别人还能直接把修正的方法扔(push)上去,你再抓(pull)下来,就能直接解决你的问题了。但是它目前是全英文,目前没有翻译版的,这让初学者感到有点困难,不过通过查询陌生词汇,也是提高英语水平的一种办法。github学
系统 2019-08-12 09:27:17 2394