
编程指南
文章平均质量分 90
成为更好的程序员,更好的写代码
_whitepure
这个作者很懒,什么都没留下…
展开
-
如何从代码层面避免内存泄漏
内存泄漏是指不使用的对象持续占有内存使得内存得不到释放,从而造成内存空间的浪费。内存泄露最明显问题频繁GC,从而STW次数增加,导致用户体验变差。如果内存泄露问题严重,会导致OOM,直接导致程序不能正常运行。大多数内存泄露的原因是,长生命周期的对象引用了短生命周期的对象。例如,A对象引用B对象,A对象的生命周期(t1-t4)比B对象的生命周期(t2-t3)长的多。当B对象没有被应用程序使用之后,A对象仍然在引用着B对象。这样,垃圾回收器就没办法将B对象从内存中移除,从而导致内存泄露问题。原创 2024-07-22 17:16:47 · 894 阅读 · 1 评论 -
如何写出优雅的代码
优雅的代码就是那种看起来简单、易懂,而且好维护的代码。它的设计让人一眼就能明白每部分的作用,避免了复杂和冗余的部分。它使用清晰的变量和方法名称,能让你很快理解代码在做什么,而不是去猜测。优雅的代码还遵循一些编程的好习惯,比如把代码分成小块,每块负责一个特定的功能,这样更容易修改和扩展。原创 2024-07-22 17:12:59 · 1211 阅读 · 0 评论 -
Java程序中常见问题
资源有序分配法指的是,线程 A 和 线程 B 获取资源的顺序要一样,当线程 A 先尝试获取资源 A,然后尝试获取资源 B 的时候,线程 B 同样也是先尝试获取资源 A,然后尝试获取资源 B。在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。举例,现有公司B、公司A、公司T,想要从银行分别贷款70亿、40亿、50亿,假设银行只有100亿供放贷,如果借不到企业最大需求的钱,钱将不会归还,怎么才能合理的放贷?原创 2024-07-21 09:39:01 · 968 阅读 · 0 评论 -
Java程序的故障排查
线程快照是当前JVM内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。命令可以获得运行中的JVM的堆的快照,从而可以离线分析堆,来检查内存泄漏、检查一些严重影响性能的大对象的创建、检查系统中什么对象最多,各种对象所占内存的大小等等。通过这些命令,可以生成和分析堆转储,查看线程状态,获取JVM配置信息等。可用于显示虚拟机进程及进程的配置和环境信息,监视应用程序的CPU、GC、堆、方法区及线程的信息等,甚至代替。原创 2024-07-21 09:23:23 · 1161 阅读 · 0 评论 -
简要概述如何做好程序设计
【代码】简要概述如何做好程序设计。原创 2024-04-18 11:05:07 · 545 阅读 · 0 评论 -
如何优雅规范编写Java代码
else并不会降低代码的复杂度,相反比较少见的写法可能会增加认知负荷,从而进一步增加了复杂度。else是为了对代码进行解耦合,方便扩展代码,最终方便对代码的维护。思路:定义一个注解,将需要校验的参数对象都标注该注解,利用SpringAOP,拦截该注解,将其中标注的参数取出,最后通过BeanValidator进行校验。是因为通常在编码过程中我们不只自己进行开发,通常需要一个团队来进行,开发好之后还需要维护,所以编码规范就显的尤为重要。代码维护时间比较长,那么保证代码可读性就显得很重要。原创 2024-04-17 16:30:58 · 1262 阅读 · 0 评论 -
如何重构一个程序
摘自《重构:改善既有代码的设计》重构(名词形式): 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词形式): 使用一些列重构手法,在不改变软件可观察行为的前提下,调整其结构。重构的目的是使软件更容易被理解和修改。可以在软件内部做很多修改,但必须对软件可观察的外部行为只造成很小的变化,甚至不造成变化。与之形成对比的是性能优化,和重构一样,性能优化通常不会改变组件的行为,只会改变其内部结构。原创 2024-04-12 14:02:23 · 1176 阅读 · 0 评论 -
如何写出整洁的代码
每个人对于整洁的代码理解肯定不同,在我看来,在满足业务场景的情况下,可读性强、运行效率高、细节处理好、易扩展的代码就是整洁代码。抛开具体的业务场景不谈,只谈所谓的"整洁代码"就是耍流氓。整洁的代码总是看起来总是像为某位特别在意它的人写的,几乎没有改进的余地。代码的作用是为了解决人们的某种需求,什么语言不重要,但是总有人非要争个高低,问题解决了才重要。原创 2023-05-05 10:25:46 · 1414 阅读 · 0 评论 -
如何减少bug及解决bug思路
减少bug的出现只能多测多验证,哪怕单元测试通过都不能非常有效减少bug,因为受到写单元测试的人的思维角度限制,导致单元测试的片面性。1945年,一只小飞蛾钻进了计算机电路里,导致系统无法工作,一位名叫格蕾丝·赫柏的人把飞蛾拍死在工作日志上,写道:就是这个 bug(虫子),害我们今天的工作无法完成——于是,bug一词成了电脑系统程序的专业术语,形容那些系统中的缺陷或问题。关于bug的种类,最容易出现的bug是逻辑上的bug,如复杂庞大一点软件如果不是所有地方都熟悉就写代码是比较容易遗漏一些特殊情况的。原创 2023-05-05 09:31:28 · 2428 阅读 · 0 评论