随笔分类 -  Java

摘要:为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或行为:已经通过-Xms和–Xmx 设置了内存大小包含了-server参数系统中没有超时日志等错误日... 阅读全文
posted @ 2014-07-24 21:31 半夜乱弹琴 阅读(5077) 评论(1) 推荐(0)
摘要:九个技巧:逻辑结构条件debug异常断点单步过滤跳到帧Inspectexpressionsdisplay远程debug 最早开始用eclipse的debug的时候,只会F5 F6 F7 F8,甚至F7都不是很搞的明白是怎么用的,那时候资浅,碰不到需要复杂debug的代码,慢慢工作深入了,场景碰多了... 阅读全文
posted @ 2014-06-22 12:02 半夜乱弹琴 阅读(62210) 评论(13) 推荐(14)
摘要:目录结构:Timer和TimerTask一个Timer调度的例子如何终止Timer线程关于cancle方式终止线程反复执行一个任务schedule VS.scheduleAtFixedRate一些注意点1. Timer和TimerTask Timer是jdk中提供的一个定时器工具,使用的时候会在主... 阅读全文
posted @ 2014-06-11 21:52 半夜乱弹琴 阅读(105506) 评论(4) 推荐(9)
摘要:这个功能对应的快捷键是ctrl alt H,大家应该都很熟悉了。默认是查找这个方法的被调用堆栈。90%的人应该也是习惯这个默认的功能的,也基本无视它的另一个功能。昨天重启eclipe之后,我的eclipse这个快捷键莫名其妙变成查找这个方法里面调用的别的方法的堆栈。说的比较绕,大略就是跟默认方法正好相反的一个功能。平时基本没用到,后面大家可以试试。因为平时严重依赖这个快捷键,所以昨天很不习惯,一开始以为是热键被改了,去看了下热键,正常的,后来以为是有插件的缘故,因为正好新装了个插件,卸了也还那样,后来找了下,原来是这个功能可以选择是被调用堆栈还是调用别的方法的堆栈。看下图:圈出来的地方,就是功 阅读全文
posted @ 2014-01-07 15:49 半夜乱弹琴 阅读(8655) 评论(2) 推荐(1)
摘要:今天偶然碰到这个类,发现jdk中这些平时不大用到的类还挺好玩儿的,用起来也特别实在方便,随便写点记录下。java.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种。key-value类型的配置文件大略长这样:#测试环境配置:平台路径配置jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/dbPort = localhostdatabaseName = myddbUserName = root#打头的是注释行,Properties会忽略注释。允许只有key没有value。例如这样:#测试环境 阅读全文
posted @ 2013-12-10 23:50 半夜乱弹琴 阅读(53108) 评论(5) 推荐(6)
摘要:为方便开发人员,JDK提供了一套主要数据结构的实现,比如List、Map等。今儿说说List接口。List接口的一些列实现中,最常用最重要的就是这三个:ArrayList、Vector、LinkedList。JDK中这三个类的定义:public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializablepublic class Vector extends AbstractList implements List, RandomA... 阅读全文
posted @ 2013-08-12 00:02 半夜乱弹琴 阅读(3914) 评论(1) 推荐(1)
摘要:String a=String b + String c + String d这种代码在程序里应该随处可见,一部分人不知道这段代码的缺陷在哪,另一部分人知道这样写不好,但是太顺手了下意识就写了。在Java里,String是个不可变对象,所以右边的每次赋值操作都会new一个新对象,b+c,b+c+d,至少会new两个,很明显性能不佳。但是这个问题没有大多数情况下没我们想象的那么严重,因为编译器在编译时会对String做很多优化,但是对于一些运行时的赋值和修改操作,编译器很难优化,这种时候,就强烈不推荐这样写,虽然写的很顺手 ,但是性能不行,如果存在字符串的修改操作,就应该用StringBuild 阅读全文
posted @ 2013-08-04 23:48 半夜乱弹琴 阅读(5754) 评论(12) 推荐(2)
摘要:都说JDK的实现诡异多,今儿也算是被我踩到一个坑了。就来说说关于String.valueOf的这个坑。 1 public class TestString { 2 3 public static void main(String[] args){ 4 5 Object obj = null; 6 System.out.println(String.valueOf(obj)); 7 System.out.println(String.valueOf(null)); 8 } 9 }这段代码,第一个输出“nu... 阅读全文
posted @ 2013-07-30 09:49 半夜乱弹琴 阅读(12351) 评论(6) 推荐(2)
摘要:最近由于系统和业务重构需要,需要把线上1亿数据迁移到新库,由于业务变更,新表老表结构有变化,没法直接用dba dump的方式,需要自己写转换程序迁移。今天在调试的时候,碰到一个蛋疼的问题,就是一开始查询数据都正常,但是查询几条后日志就会报超时错误,具体日志如下:No ManagedConnections available within configured blocking timeout ( 5000 [ms] ); - nested throwable: (javax.resource.ResourceException: No ManagedConnections availabl.. 阅读全文
posted @ 2013-06-24 20:04 半夜乱弹琴 阅读(8527) 评论(0) 推荐(0)