活动介绍

读书笔记,一文读懂如何调优JAVA程序

preview
5星 · 超过95%的资源 需积分: 0 1 下载量 136 浏览量 更新于2023-04-11 收藏 1.8MB DOC 举报
"JAVA 程序优化笔记" 根据标题"读书笔记,一文读懂如何调优JAVA程序"和描述"多年经验总结加读书笔记",我们可以总结出以下知识点: 一、异常处理 * 在 JAVA 中,异常可以分为编译错误、逻辑错误和运行时错误三种/non-normal situations。 * 如果没有找到相关的 catch 语句,会抛出 ThreadGroup.uncaughtException() 方法。 * 在使用异常时,可以用时间频度来确定是否需要异常处理。 * 重要原则是,对经常需要调用的语句不要进行异常处理,因为在逻辑上也显然不能作为异常来处理。 * 可以有两种方法来代替异常处理功能:使用特殊的返回值和前导检查法。 * 在方法实现中,首先检查参数的合法性也可以避免出现异常。 二、需查异常和不需查异常 * 需查异常是指在方法定义时用 throws 关键字声明的异常,可以在 catch 中进行恢复。 * 不需查异常是指不需要用 throws 声明的异常,出现了这种异常一般需要修改代码。 * 需查异常和不需查异常可以同时使用,但不要直接抛出 Exception,这样会从子类一个一个搜索很费时间。 三、内存管理 * JAVA 中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。 * JAVA 的垃圾回收机制与其内存管理密不可分,每一个 JAVA 都有自己的内存栈,用来存放局部变量和返回值。 * 内存分配方式有三种:从静态存储区分配、在栈上创建和在堆中创建。 * 堆的空间由垃圾收集器管理,它是一个独立的线程。 四、垃圾回收机制 * 分代复制 GC 收集器超过 95% 的对象的生存期都非常短,分代复制算法根据对象的生存期将对象分为两代。 * 所有的新创建的对象都在一个类假栈的内存区进行分配,叫做 eden,当这块内存全部分配给对象时,其中大多数已经死亡了,只要把少数未死亡的长期对象复制到另一块内存中,然后直接更新 eden 的指针就可以。 五、其他知识点 * 在方法实现中,首先检查参数的合法性也可以避免出现异常。 * 在实例化类时,在构造函数中检查方参数的合法性如果在程序中出现异常了可以采用保护性的措施来保证后来调用者的合法性。 * 系统级的错误是程序中控制不了的,不必抛出 ERROR 等。 * 在 finally 中抛出异常有可能会淹没掉原有的异常,所以存在外部调用时尽量不要在 finally 中抛出异常。
身份认证 购VIP最低享 7 折!
30元优惠券