(七)期末复习重点及课程心得

1-2章

▪ 软件构造的多维度视图
▪ 软件构造的阶段划分、各阶段的构造活动
▪ 内部/外部的质量指标
▪ 软件配置管理SCM与版本控制系统VCS
▪ Git/GitHub
第3章
▪ 基本数据类型、对象数据类型
▪ 静态类型检查、动态类型检查
▪ Mutable/Immutabl
▪ 值的改变、引用的改变
▪ 防护式拷贝
▪ Snapshot diagra▪ Specification、前置/后置条件
▪ 行为等价性 ▪ 规约的强度
▪ ADT操做的四种类型
▪ 表示独立性 ▪ 表示泄露
▪ 不变量、表示不变量RI
▪ 表示空间、抽象空间、AF
▪ 以注释的形式撰写AF、RI
▪ 接口、抽象类、具体类
▪ 继承、override
▪ 多态、overload
▪ 泛型
▪ 等价性equals()和==
▪ equals()的自反、传递、对称性
▪ hashCode()
▪ 可变对象的观察等价性、行为等 价性
 
第4-5章
▪ 代码可理解性/可读性
▪ 编码规范
▪ Programing for/with reuse
▪ LSP
▪ 泛型的子类型化
▪ 泛型中的通配符
▪ Delegation
▪ Comparator和Comparable
▪ 接口的组合
▪ 白盒框架的原理与实现
▪ 黑盒框架的原理与实现
▪ 设计模式adapter、decorator、
façade、strategy、template、
iterator/iterable
 
第6-7章
▪ 可维护性的常见度量指标
▪ 聚合度与耦合度
▪ SOLID
▪ 设计模式:factory method、
abstract factory、builder、
bridge、proxy、composite、
observer/observable、visitor、
state、memento
▪ 语法、正则表达式
▪ 健壮性和正确性
▪ Throwable
▪ Runtime异常、其余异常
▪ Checked异常、Unchecked异常
▪ Checked异常的处理机制:
– 抛出、捕获、处理、清理现场、
释放资源等
▪ 自定义异常类
▪ 断言的做用、应用场合
▪ 调试的基本过程和方法
▪ 黑盒测试用例的设计
– 等价类划分、边界值分析
▪ 以注释的形式撰写测试策略
▪ JUnit测试用例写法
▪ 测试覆盖度
 
第八、10章
▪ 内存管理模型:堆、栈
▪ GC,root、reachable、
unreachable、live、dead
▪ GC的四种基本算法
▪ Java/JVM的内存管理模型:各
区域、各区域的GC方法
▪ JVM GC性能调优:参数配置、
GC模式选择
▪ Java性能调优工具:jstat, jmap,
jhat, Visual VM, MAT
▪ Memory dump
▪ Stack trace
▪ Java代码调优的设计模式:
singleton, prototype/cloneable,
flyweight, pool
▪ 常见的Java I/O方法
▪ 进程和线程
▪ 线程的建立和启动,runnable
▪ 时间分片、交错执行、竞争条件
▪ 线程的休眠、中断
▪ 线程安全的四种策略****
▪ Message passing
▪ 死锁
▪ 以注释的形式撰写线程安全策略

此次课程的实验一开始让我很头大,由于我根本没想学过java,可是通过屡次的实验,我逐渐本身自学一点java基础。也算是一点收获。java

一开始是基础java便安城试手,通过一周的java基础学习发现此次试验也不是很难。世上无难事,只怕有心人。
实验二也不是很难的样子,主要是在同窗的帮助,我学习到了不少。
实验三涉及到了GUI的处理,这一开始难道了我,由于我以前根本没有接触过这种事情。GUI的学习我我是经过网上的公开公开课和java核心思想这本书逐渐学到的。学习了两种方式,jpane跟jframe,这两种方式各有好好处,jpane的repaint方法是最真的好用。这次实验我也体会到了本身设计一个框架跟本身设计系统的美妙之处,让我沉浸其中,而后实验太难没完成得很好。见识到了不一样数据结构的不一样用法,扩展了视野。
实验四让我体验到了标准化编程的优势,写好注释,javadoc跟一些必要的标注是很重要的,这在之后对程序的维护和修改方面有很大的帮助。还有就是对于垃圾回收机制的认识。
实验五主要是对程序的优化,让我体会到在不一样的状况下使用不一样的数据结构有什么好处,怎样提升程序的效率,如何发现程序运行时的瓶颈。还有就是不一样的文件读写策略也有不一样的效率。
实验六则是对多线程的编程,对于线程建立和线程安全又更深一步的认识正则表达式

在这一系列的实验中,我基本掌握了Java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程当中,请教老师、同窗互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了勇于攻坚的信心。算法

提及来编程的经验应该是多了不少。可是在上机调试的时候仍是遇到了至关多的问题。不少的错误都很难体会,有的时候是输入的错误,这种错误仍是比较容易找出来的,可是有些问题,好比一些题目须要导入一些包,这一点就没有办法了。发现JAVA虽然看起来比C或C++要容易一点,可是因为它自身带有至关多的方法定义,这些个方法虽然不用咱们本身再去编写了可是须要花至关多的时间去记忆那些方法是须要导入的,还有方法名……因此对我来讲这真的是比C里简单几个文件的导入还要难上不少……仍是以为本身编的方法(函数)本身用的习惯。不过如今的编程的方向已是面向对象和面向数据的了,因此我须要时间去适应这样的编程思想,同时在课上又学到了不少的编程策略,都须要咱们在实践过程当中应用下来,初步掌握面向关键质量目标(可理解性、可维护性、可复用性、健壮性、时空性能)的软件构造基本技术,同时也了解软件代码重构和面向更复杂软件系统的高级构造技术,总之呢在这一学期的学习中仍是学到了很多的编写软件的知识编程

相关文章
相关标签/搜索