自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 软件构造LSP原则

概念复习到了LSP原则,也叫里氏替换原则,是软件构造当中,java的23中设计模式的6个设计原则之一,一句话来说就是在所有基类可以出现的地方,都必须可以使用子类进行替换。这个原则的提出者是Barbara Liskov,是面向对象最重要的几大原则之一;LSP原则与子类型多态(Behavioral subtyping)子类型多态和LSP一个意思,Java当中,在编译的时候会进行以下规则的静态类型检查:这里提到了协变和反协变:协变co-variance:返回值或者参数、异常的类型只

2021-07-07 20:53:29 832

原创 软件构造ADT抽象数据型

ADT的特性包括表示泄露、抽象函数(abstract function)和表示不变量(representation invariant),学会设计好的ADT是非常重要的。ADT的涵义传统的数据类型定义是关注数据的具体表示,而ADT是不同于传统数据类型的,程序员自己定义的数据类型,它是由一组操作来刻画的,不关注数据的具体表示,设计者和使用者都无需了解数据具体是怎么表示的,只需要使用相应的操作即可。可变数据类型(mutable)和不可变数据类型(immutable)...

2021-07-06 16:47:23 182

原创 Java中的Checked和Unchecked异常

复习软件构造时涉及到了Checked和Unchecked类型的异常,给出他们的划分和处理准则;图1:异常类的继承关系,其中Throwable类继承自ObjectError类Error类描述的是java运行时系统内部出现的错误和系统资源不足的异常情况,比如用户输入错误、设备错误或者物理限制(内存不足等),程序员对于这些内部错误通常是没有办法解决的,一旦发生需要想办法让程序优雅的结束;图2:Error类一些典型的Error:VirtualMachineError:Java虚拟机坏

2021-06-29 15:03:20 1600

原创 软件构造的多维视图

图1:MIT课件中的软件多维试图内容概述在软件构造课程的学习中了解了关于软件多维视图的知识,软件的多维视图是用来对软件构造和运行整个生命周期的各个过程进行集合划分的一个方法;如图1所示,多维视图的总体框架是构建阶段和运行阶段,其中每个阶段又分为代码层面和模块层面,二者又都有其特定时刻的形态和形态随时间变化的过程。构建阶段代码层面的内容是指代码的逻辑组织,而模块层面的内容是指代码的物理组织。1、特定时刻的、代码层面视图主要分为词汇层面、语法层面和语义层面,阐述软件是如何被方..

2021-06-28 15:04:23 241

原创 程序人生 Hello‘s P2P

本篇介绍了hello从源程序开始,经历一步步的处理----预处理、编译、汇编、链接过程而最终生成可执行文件。由高级语言表示的.c源文件是不能直接在计算机上运行的,前面那些操作是必须的。接下来本文将针对这些处理过程展开,详述这中间的一些具体细节。此外,还涉及到动态内存分配、IO管理等等,这些是与程序运行息息相关的。关键词:预处理 编译 汇编 链接 进程 存储管理 IO管理

2021-06-27 20:38:02 281

原创 软件构造实验Lab1——凸包问题的一种解法

前言:近期做了软件构造的实验一,初期调试使用软件工具的时候甚是头疼,非常考验耐心,过几天还要写一篇关于整个实验工具使用的文章,实在是不能再忘了重来一遍了。此篇文章就实验中问题2当中抛出的凸包问题给出一个自己的想法,当时也是找了很多文章都没看懂。凸包问题描述凸包是指给定一个点的集合,求出这个集合的一个最小子集,使得这个最小子集当中的所有点作为顶点围成的多边形能够包围整个集合中其他的点,这个多边形就是凸包,注意这里指的是最小子集,也就是如果有三个点在同一条直线上并且都处在凸包的同一条边上,中间的点是抛弃的:

2021-05-23 21:29:49 266

原创 计算机中关于整型数的一些操作和概念

计算机中关于整型数的一些操作和概念计算机中关于整型数的一些操作和概念在学习CSAPP这本书第二章的过程中,笔者记录了一些以前感到模糊不清的一些细节。前言本文涉及的概念包括有符号数、无符号数、补码、算术右移、逻辑右移、符号扩展、零扩展、截断、溢出等,是笔者在学习时的心得记录。一、整型数的分类在C语言的标准当中,整型数是分为有符号数和无符号数的,C语言对于所有的数据类型都设置了相应的无符号类型。注意,所谓的无符号数和有符号数只是计算机在解释一个二进制串时使用的规则,在互相转换时必不会改变位的值。

2021-04-10 11:14:30 929

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除