- 博客(16)
- 收藏
- 关注
原创 正确理解Threadlocal类以及内存泄漏问题
2017.8.5更新:tomcat低版本在reload或者stop一个web app时(一个tomcat可以运行多个web app),如果tomcat线程池中的线程中的threadlocalmap持有了由某个web app classloader加载的类,那么该web app classloader是无法被回收的,在tomcat7.0中,引入了ThreadLocalLeakPreventionLis
2017-03-12 21:59:55 1541 3
转载 MySQL的语句执行顺序
MySQL的语句执行顺序原文:http://www.cnblogs.com/rollenholt/p/3776923.htmlMySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如
2017-03-30 19:28:02 187
原创 理解spring中自动注入autowiring概念
这篇文章讲的很好。http://howtodoinjava.com/spring/spring-core/spring-beans-autowiring-concepts/spring的自动注入实现了bean之间的DI,分为五种:默认为nobyNamebyTypebyConstructorautodetect 首先按4 没有再按3
2017-03-28 21:22:33 1364
原创 使用BigDecimal的一个小坑
用 BigDecimal 进行累加时,会用以下方法:BigDecimal price = BigDecimal.ZERO;price.add(new BigDecimal(6));坑就在第二句,因为BigDecimal类是事实不可变类,所以BigDecimal类的add方法并不会改变当前对象,只会返回一个BigDecimal类型的新结果,所以对BigDecimal类进行累加时,需要重新赋值引用:B
2017-03-28 20:47:47 725
原创 开发中遇到的两个小问题
1.要处理买家的名字,之后再显示,中间用 * 号代替,两头各留一个字。如果买家有昵称,则处理昵称,否则处理买家 pin 。 一开始是这样判断的:if(buyer.getNickname() !=null){ result.addAttribute("buyerName", hideBuyerInfo(buyer.getNickname()));}else{ result.add
2017-03-27 19:54:40 273
原创 父类实现了序列化,如何阻止子类可以序列化?
A:怎么会有如此奇葩的需求?。。你不知道这违反了里氏替换原则吗?(子类对象可以无条件的替换父类对象) 好吧,如果你非要这样做,给你两条建议作为参考:把父类标记为final,这样就没人可以继承它了(我知道这完全不是你想要的结果…)把父类或子类中的一些字段标记为transient,这样你就可以只序列化你想要的字段了。B:你可以在子类中实现以下接口(如果类中实现了一下接口,那么在使用ObjectIn
2017-03-26 23:30:27 1744
原创 jdk中的标记性接口
java.util.RandomAccess 用来给集合类型标记可高效随机访问特性java.io.Serializable 标记该class可用于序列化,实现此接口的类可以提供一个serialVersionUID 用于反序列化时校验是否加载了此对象的类,也可以不提供,序列化时自动生成一个。暂时只想到两个,欢迎大家在评论补充。
2017-03-26 18:00:32 588
转载 java代码中init method和destroy method的三种使用方式
java代码中init method和destroy method的三种使用方式摘要: 在Java的实际开发过程中,我们可能常常需要使用到init method和destroy method,比如初始化一个对象(bean)后立即初始化(加载)一些数据,在销毁一个对象之前进行垃圾回收等等。原文:https://yq.aliyun.com/articles/66657在Ja
2017-03-26 14:24:03 812
转载 Java核心技术点之动态代理
Java核心技术点之动态代理 本篇博文会从代理的概念出发,介绍Java中动态代理技术的使用,并进一步探索它的实现原理。由于个人水平有限,叙述中难免出现不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 原文:http://www.cnblogs.com/absfree/p/5392639.html一、概述1. 什么是代理 我们大家都知道微商
2017-03-26 13:19:53 879
原创 java中判断一个String是否都由数字组成
1.循环一个一个遍历public static boolean isAllFormedByDigits(String str) { if (str == null || str.length() <= 0) { return false; } for(int i=0;i<str.length();i++) { if (!Character.isD
2017-03-14 20:18:45 354
转载 java Queue中 remove/poll, add/offer, element/peek区别
原文地址:http://blog.csdn.net/ustcjackylau/article/details/42454779这里简单对其重复的方法做点简单的区分。offer,add区别:一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unc
2017-03-14 16:29:25 534
转载 Java中四种引用(强、软、弱、虚)
原文:http://blog.csdn.net/caijunjun1006/article/details/11935967Java中存在四种引用,它们分别是:1. 强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错
2017-03-13 15:09:24 964
原创 linux下查看程序日志的一些总结
在开发中,我们经常在代码中添加日志,主要作用是程序在服务器上跑出bug时方便进行问题排查,因为在服务器上不可能像在本地运行程序那样debug,所以日志对于我们非常重要,几乎就是解决问题唯一能依赖的东东。在查看服务器日志时,经常使用以下几条命令:tail -300f xxx.log | grep "userId"tail -300f xxx.log | grep "userId" -B 20 -C
2017-03-09 15:50:23 14121
原创 关于服务器时钟不同步的问题
测试测试时,发现一个bug,订单的xx支付时间比下单时间早一秒。经过查看代码,发现生成下单时间的方式是在java中new Date( ),然后将值插入数据库,然后xx支付时间是在mybatis的xml中使用数据库now( )函数在数据库服务器生成的,由于java应用服务器和数据库服务器时钟不同步,所以造成了这种不确定性问题。解决方法:同步java应用服务器和数据库服务器的时钟,这个需要运维写脚本维
2017-03-03 17:40:15 3524
原创 新建springmvc项目时碰到的两个bug
用idea maven-archetype-webapp新建了一个springmvc项目,然后写了一个controller@Controllerpublic class HelloController { @RequestMapping(value = "/",method = {RequestMethod.GET,RequestMethod.POST}) public Strin
2017-03-02 10:14:24 360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人