2014年1月16日

jvm堆栈

摘要: jvm限制了线程堆栈中栈帧的深度,当出现方法的无限递归调用时会抛出异常:Exception in thread "main" java.lang.StackOverflowError 阅读全文

posted @ 2014-01-16 13:53 优雅的码农 阅读(177) 评论(0) 推荐(0) 编辑

mybatis的paramType和resultType使用对象

摘要: mybatis需要使用对象作为返回值时,可以在mapper.xml文件中定义resultMap时,如果resultMap返回的类所对应的数据库表有多个主键,则这多个主键的定义必须全部位于普通数据域定义,即之前。mybatis需要使用对象作为参数时可以praramType可以直接使用程序中定义的entity类,或在配置文件中通过alias指定的类。 阅读全文

posted @ 2014-01-16 13:45 优雅的码农 阅读(1951) 评论(0) 推荐(0) 编辑

2014年1月4日

URLConnection中的useCache选项

摘要: 当使用自定义的classLoader加载一个jar包,同时ar包中依赖的第三方包(如mybatis)需要读取jar包中的配置文件时,通常mybatis的实现通过classloader的getResourceAsStream的方法读取配置文件,具体实现时会依赖URLConnection的类。这个类由bootstrap加载,该类会对首次生产的connection对象进行缓存。如果通过自定义的classLoader再一次加载原始jar包修改后的jar包时,jvm可能会使用缓存的上次生产的connection对象,最终会报错找不到mybatis的配置文件。具体表现是URLConnection co.. 阅读全文

posted @ 2014-01-04 17:35 优雅的码农 阅读(791) 评论(0) 推荐(0) 编辑

2013年12月21日

对java内部类的理解

摘要: 常规内部类可以访问外部类的方法或变量。常规内部类所在的类不能直接访问内部类的非静态成员或方法,只有先生成一个内部类的实例,然后在访问该实例的变量或方法(private的也可以直接方法,因为private的修饰符允许来自同一个类的访问)。常规内部类总是依附于一个具体的外部类对象,常规内部类实际上维护一个指向其所依附的外部类对象的一个引用。当常规内部类的对象要访问外部类对象的变量或方法时,会向外部类对象发送消息。常规内部类需要访问的外部类变量由对应的外部类对象来保存,这些变量随时可以通过引用找到外部类对象,从而取出。而对于局部内部类来说,假设他需要访问所在方法中的局部变量,由于该局部变量在方法退出 阅读全文

posted @ 2013-12-21 21:42 优雅的码农 阅读(316) 评论(0) 推荐(0) 编辑

2013年11月24日

connection.close() without rollback or commit

摘要: 事务不commit或rollback直接close connection,据目前查找的资料(参照database分类中的文章)会产生以下后果:1.如果直接使用jdbc,则具体的实现取决于不同的数据库。比如,oracle会commit,而sql server会rollback.2.如果使用数据库连接池,还取决于数据库连接池的实现。 阅读全文

posted @ 2013-11-24 20:47 优雅的码农 阅读(1009) 评论(0) 推荐(0) 编辑

2013年11月22日

ruby 使用grep和=~的返回值

摘要: result="str".grep(/re/):如果没有匹配成功则,result.to_s为“”,所以不应使用if "str".grep()来判断是否有成功的匹配,即时没有成功的匹配"str".grep()也是非nil非false的。可以使用=~进行判断,如果没有匹配成功的话"str" =~ /re/会返回nil。 阅读全文

posted @ 2013-11-22 23:16 优雅的码农 阅读(757) 评论(0) 推荐(0) 编辑

导航