5.20软件构造心得

代码“看起来很美”和“运行起来很美”,二者之间有何必然的联系或冲突?哪个比另一个更重要些吗?在有限的编程时间里,你更倾向于把精力放在哪个上?
二者的相关性不强。即看起来很美的代码运行起来效果不一定好,同理,运行效率高的代码不一定有良好的代码风格。一般情况下运行起来美是更加重要的。我将更着重于代码运行起来美的方面。
诸如SpotBugs和CheckStyle这样的代码静态分析工具,会提示你的代码里有无数不符合规范或有潜在bug的地方,结合你在本次实验中的体会,你认为它们是否会真的帮助你改善代码质量?
大部分是有一定帮助的。依据这些建议修改的代码可读性更好,结构更清晰,在以后的维护当中能发挥一定的作用。
为什么Java提供了这么多种I/O的实现方式?从Java自身的发展路线上看,这其实也体现了JDK自身代码的逐渐优化过程。你是否能够梳理清楚Java I/O的逐步优化和扩展的过程,并能够搞清楚每种I/O技术最适合的应用场景?
因为Java是一个历史较长的编程语言,具有一定的历史问题,必须保证兼容性。Java的IO类逻辑关系较为复杂,虽然目前不能完全搞清楚,但是经过本次实验,我也发现了几种IO方法是较为实用且效率较高的
JVM的内存管理机制,与你在《计算机系统》课程里所学的内存管理基本原理相比,有何差异?有何新意?你认为它是否足够好?
JVM的内存管理是基于虚拟机的,而不是真实的物理内存。JVM的管理策略更加灵活,可以动态扩展,自定义各种参数以及垃圾回收的方式。相比C语言的内存管理,Java的内存管理有明显优势。
JVM自动进行垃圾回收,从而避免了程序员手工进行垃圾回收的麻烦(例如在C++中)。你怎么看待这两种垃圾回收机制?你认为JVM目前所采用的这些垃圾回收机制还有改进的空间吗?
Java的回收方式更加智能化,减轻了程序员的负担,但是不够灵活,有时仍然会导致内存泄漏问题。C++当中的内存管理模式更加灵活,能在任何需要的释放的时候释放内存,具有较高的效率。仍有一定的改进空间,不如允许在某些情况下程序员手动释放内存。
基于你在实验中的体会,你认为“通过配置JVM内存分配和GC参数来提高程序运行性能”是否有足够的回报?
具有一定的作用,但性能的提升是很有限的。决定性能好坏的主要因素仍然是代码本身。
通过Memory Dump进行程序性能的分析,JMC/JFR、VisualVM和MAT这几个工具提供了很强大的分析功能。你是否已经体验到了使用它们发现程序热点以进行程序性能优化的好处?
主要好处是能让优化代码更有针对性,能针对性能影响最大的部分进行优化,提升优化效率。
使用各种代码调优技术进行性能优化,考验的是程序员的细心,依赖的是程序员日积月累的编程中养成的“对性能的敏感程度”。你是否有足够的耐心,从每一条语句、每一个类做起,“积跬步,以至千里”,一点一点累积出整体性能的较大提升?
有时会为了实现简单一些而忽略对性能的考虑。若需要构造对性能要求较高的代码,这种耐心是必须的。
关于本实验的工作量、难度、deadline。
本实验需要使用的工具太多,要自学的东西十分繁杂,具有一定难度。
到目前为止,你对《软件构造》课程的意见与建议。
课程内容太多太杂,希望能做适当的精简。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值