`
bolinyang
  • 浏览: 74183 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
一.概述     今天遇到这样一个需求,修改一个系统中的一段逻辑,但是涉及到10类都要修改,并且修改的逻辑一模一样,也就是说需要在这10个类的某个方法上都加上一段相同的代码,为了下面描述方便,我们暂时把这段代码命名为CODEA,很正常的思路我们想到了AOP,但是CODEA有个特殊的地方,当CODEA在某种场景下面执行的时候,执行完后,方法需要立即返回,其实就是所谓的MOCK思想,显然AOP是做不到,AOP能够在方法执行的时候增加一些横切逻辑,但是这些横切逻辑是没法阻止原来方法执行的,因此AOP在这里行不通。 二.解决方法     上面的问题再抽象一下,就是说在某种条件下,把某个方法给替换了 ...
一.需求 有时候web应用经常会发生FGC,我们想知道FGC把那些对象给回收了,思路很简单就是看看FGC之前内存中有那些实例,FGC之后内存中又有那些实例,通过前后的比较,我们就能很容易知道FGC回收了那些实例,当然我们可以手工去dump内存,在FGC发生之前dump一下内存,再在FGC发生之后dump一下内存,但是这dump的时间点不好把握,能否让JVM自动去dump就更好了。 二.手工dump内存的方法 jmap -dump:format=b,file=/home/admin/xxx.bin PID 其中PID是java的进程ID 三.让JVM自己dump内存 在JVM启动的时候增 ...
在生产环境要是使用Spring定时任务的话,会在多台机器上定时启动相同的任务,为了保证只在一台机器上执行定时任务,我们在执行定时任务的时候先判断一下当前机器的IP地址,如果和我们指定的IP地址一样,我们就在当前机器上执行定时任务,不一样的话,就不执行定时任务,这种思想只能控制定时任务的执行或者不执行,不能控制定时任务的启动或不启动。 try { String hostName = InetAddress.getLocalHost().getHostName(); String currentIpAddress = InetAddress.getByName(hos ...
javascript中的两个注意点 1.if(company.creditFlag){...}如果company.creditFlag为0的话,上述if条件的判断还是真。 2.在js中要是使用了全局变量,记得做全局变量的清理工作。即全局变量之清理思想。
一.概述 在使用HTML的input元素时,经常会用到placeholder属性。但是IE8不支持这个placeholder属性,有点悲催,只能使用js来模拟这个placeholder了 二.模拟placeholder的js代码 if(!$.support.placeholder) { var els = $('input[placeholder],textarea[placeholder]'); els.each(function(i, el) { el = $(el); var defValue = el.attr('placeholder'), defCo ...
一.概述     ThreadLocal是JDK的一个线程本地存储的类,我们可以把一些线程私有的数据写在ThreadLocal中,这样这些数据只有一个线程可见,实现了所谓的栈封闭。这样存储一些线程私有的数据,我们就不用去费心考虑如何保证临 ...
一.概述       我们在写JAVA程序的时候,面对的都是.java文件的编写,但是JVM不会直接拿.java文件去执行的,对于JVM而言,它只认识.class文件,那么是不是后缀名是.class的文件JVM都会接收呢?显然不是,因为要想JVM接受一个.class ...
一.概述     现在的软件开发都追求组件化的思想,特别是前端开发,目前有很多前端的组件我们可以方便的使用来满足一些需求,比如图片的轮播,TAB切换等等。其实基本原理都是使用了jquery的ui组件,下面我们来自己动手基 ...
一.问题描述 今天写了一段JS代码,调用一个后台接口,这个后台接口返回一个日期,日期的格式是2013-07-11这样的格式,我直接使用var date = new Date('2013-07-11'),此时把date打印出来,发现在IE系列浏览器下面date是NAN,非IE浏览器显示正常。此时问题很明确了浏览器兼容性的问题,就是说IE下面对于对象Date('2013-07-11')不能够正确的解析。 二.解决策略 在调用Date的构造函数之前,先把字符串2013-07-11转换成2013/07/11这样的格式,这样IE,FF,Chrome都支持。此外程序开发者都相信自己的程序是没有问题的, ...
一.概述 在写HTML页面的时候经常会用到a标签,注意href属性,a标签要是没有href属性,其hover效果就不会在IE系列的浏览器中出现,如果点击后没有页面跳转,一般需要把href设置为javascript:;。在讨论页面的时候要考虑一些文本的截断处理,同时在编写HTML代码的时候也需要考虑一下文本会不会超出既定的宽度,这样才能产出漂亮的页面。 二.a标签截断时的CSS display:block; overflow:hidden; text-overflow:ellipsis; /** 超出宽度显示为......**/ white-space:nowrap;/* 不换行 ...
http://blog.nosqlfan.com/html/4209.html
一.概述     Arrays是一个JAVA容器相关操作提供给我们的工具类,这个工具类中有这样一个方法Arrays.asList(),从这个方法的名字来看,就是把一组对象编程一个List的列表。下面我们先来看看JDK中Arrays.asList()的源代码 public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } 我们看到这是一个泛型方法,方法的参数是一个可变参数列表,要求参数必须是同类型的T,方法的返回结果是一个T类型的List,从return语句可以 ...
一.概述    使用JAVA编写并发程序的时候,我们需要仔细去思考一下并发流程的控制,如何让各个线程之间协作完成某项工作。有时候,我们启动N个线程去做一件事情,只有当这N个线程都达到某一个临界点的时候,我们才能继续下面的工作,就是说如果这N个线程中的某一个线程先到达预先定义好的临界点,它必须等待其他N-1线程也到达这个临界点,接下来的工作才能继续,只要这N个线程中有1个线程没有到达所谓的临界点,其他线程就算抢先到达了临界点,也只能等待,只有所有这N个线程都到达临界点后,接下来的事情才能继续。     在日常工作中,我们经常和别人一起合作做一些项目,项目中有一些关键点,比如说代码联调,假如有M个 ...
一.概述 一开始使用公司框架的时候发现可以在web层使用@Resource以及@Autowired来注入一些bean,首先这个注解是Spring提供的,自己把这部分代码抽出来写了小例子,发现要想使用Spring的这两注解,必须直接或者间接的引入AutowiredAnnotationBeanPostProcesso以及CommonAnnotationBeanPostProcessor这两个注解处理器引入到BeanDefinitions中,否则不会实现注入的,但是仔细阅读公司框架代码后发现没有地方直接或间接引入这两个注解处理器,发现一个细节,公司框架所依赖的Spring版本是2.5.6而我使用的S ...
一.概述 我们知道JS中有一个函数eval,在调用这个函数的时候,我们可以传递一段JS代码进去,这时候这个JS代码就会被执行。如果这段JS代码中有些已经定义的变量,那么此时的变量作用域如何确定呢?我们想到eval函数在JS中也 ...
Global site tag (gtag.js) - Google Analytics