该文被密码保护。 阅读全文
摘要:
【三板斧】Java定位CPU使用高问题1、TOP命令,查询消耗CPU高的进程号 PID,并记录下来,按下键盘"H"键,记录高消耗线程号,并将改线程号转换为十六进制2、使用 jstack [pid] > xx.log 命令打印进程信息,为了定位准确,可以多来几次3、打开日志文件,找到十六进制的线程信息,可定位到具体类的某一行。演示:1、查询消耗CPU高的进程号 PID,并记录下来#toptop - 18:45:29 up 14 days, 23:27, 6 users, load average: 3.18, 3.08, 2.64Tasks: 299 total, 1 阅读全文
摘要:
error和exception的区别,RuntimeException和非RuntimeException的区别1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混爹在一起;由调用函数的程序 阅读全文
摘要:
收集的maven 仓库地址(maven repository)maven 仓库地址:共有的仓库http://repo1.maven.org/maven2/http://repository.jboss.com/maven2/http://repository.sonatype.org/content/groups/public/http://mirrors.ibiblio.org/pub/mirrors/maven2/org/acegisecurity/http://download.java.net/maven/2/http://mvnrepository.com/私有的仓库http://r 阅读全文
该文被密码保护。 阅读全文
摘要:
Java十大低级错误1 前言为了规范大家的编程行为,借鉴前人的编程经验,避免低级错误的不断发生,特发布Java十大低级错误,供所有Java开发人员学习。2 Java十大低级错误1、 类、方法、变量、常量等命名不能表达具体的含义,或者表达的含义和实际用途不一致。2、 缺少类、方法注释,代码修改后没有同步修改注释。3、 日志和实际情况不一致;捕获异常后没有在日志中记录异常栈。4、 魔鬼数字。5、 空指针异常。6、 数组下标越界。7、 将字符串转换为数字时没有捕获NumberFormatException异常。8、 对文件、IO、数据库等资源进行操作后没有及时、正确进行释放。9、 循环体编码时不考虑 阅读全文
摘要:
军规条例军规一:【避免在程序中使用魔鬼数字,必须用有意义的常量来标识。】军规二:【明确方法的功能,一个方法仅完成一个功能。】军规三:【方法参数不能超过5个】军规四:【方法调用尽量不要返回null,取而代之以抛出异常,或是返回特例对象(SPECIAL CASE object,SPECIAL CASE PATTERN);对于以集合或数组类型作为返回值的方法,取而代之以空集合或0长度数组。】军规五:【在进行数据库操作或IO操作时,必须确保资源在使用完毕后得到释放,并且必须确保释放操作在finally中进行。】军规六:【异常捕获不要直接 catch (Exception ex) ,应该把异常细分处理。 阅读全文
摘要:
军规条例军规一:【恰当控制事务大小,commit不要过于频繁。】军规二:【在OLTP系统中一定要注意使用绑定变量。】军规三:【在OLTP系统中一定要注意复杂的多表关联不宜超过4个,关联十分复杂时,需要拆分成多个步骤,防止执行计划不正确。】军规四:【合理收集统计信息,固定住SQL的执行计划。】军规五:【尽量避免使用XA事务,在RAC环境中要避免XA事务跨节点操作。】军规六:【不可以对表或索引指定并行度,如果使用Oracle并行处理方式(并行查询、并行DML),只能在具体语句中指定并行度。在并行建表或者建索引之后,需要手工设置其并行度为1。】军规七:【避免频繁的检索lob类型及较长字符型的字段,尽 阅读全文
摘要:
if (resultSet != null) { resultSet.setFetchSize(1024); UserImpl user = null; while (true) { while (true) { if (!(resultSet.next())) break label209; if ((null == user) || (!(user.getOperID().equals(resultSet.getString(SystemManageConstants.UserTable.operID.name()))))) { break; } String extName = resu 阅读全文
摘要:
/** * 获取子部门到根部门的路径 * @param orgId String * @return List */ public static List getOrgPath(Long orgId) { List paths = new ArrayList(); List allOrgs = SystemToolKit.getOrgService().getAllSimpleOrg(); Long parentId = orgId; if (CollectionUtils.isNotEmpty(allOrgs)) { for (int i = allOrgs.size() - 1; i &g 阅读全文