自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 协变和逆变的思考

先看协变和逆变的概念如果某个返回的类型可以由其派生类型替换,那么这个类型就是支持协变的如果某个参数类型可以由其基类替换,那么这个类型就是支持逆变的。下面展示 例子。 public static void main(String[]args) { //数组支持协变 Number[] n = new Integer [10]; //编译不通过,泛型不支持协变 List<Number>In =new ArrayList<Integer>();

2020-07-11 11:37:53 266 1

原创 强行为子类型化中的抛出异常

在学习(strong) behavioral subtyping 注意到了这一点。重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。即可以抛出父类异常的派生异常。这里的提到的强制性异常(CheckedException)和非强制性异常(UncheckedException)。java中除了RuntimeException外,都是强制性异常。强制性异常:所谓强制性异常就是在编写程序的过程中必需在抛

2020-07-07 15:21:47 156

原创 HIT软件构造课后调查:软件开发的敏捷宣言

敏捷开发是通过快速迭代和小规模的持续改进,以适应快速变化。迭代是开发之后由用户试用和评审,发现问题反馈给开发者,开发者修改原有的实现,继续交给用户评审。循环往复这个过程,直到用户满意为止。时间代价高,但开发质量也高。敏捷开发的内容如下:我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。业务人员和开发人员必须相互合作,项目中的每一

2020-07-04 14:22:45 149

原创 build工具 Maven 介绍

Build tool是构建工具,它是从源代码自动创建可执行应用程序的程序。构建工具通常可以在前面加“自动化”三个字,就是用来让我们不再做机械重复的事情,解放我们的双手的。Java:Ant、Maven和GradleMaven的主要功能主要分为5点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制。依赖管理系统Maven为Java世界引入了一个新的依赖管理系统。在Java世界中,可以用groupId、artifactId、version组成的Coordination(坐标)唯一标

2020-07-03 16:44:54 415

原创 几种软件设计模式简述以及示例

工厂模式(Factory Pattern)定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。创建过程在其子类执行。优点: 1、一个调用者想创建一个对象,要知道其名称。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口,对内部实现产生保护,提升安全性。缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖

2020-07-02 15:20:31 989

原创 HIT 软件构造Lab2引发对ADT的思考

HIT 软件构造Lab2引发对ADT的思考抽象数据类型的特征主要体现在以下几个方面:ADT就是数据抽象。用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。数据封装。将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节,它包含两层含义:①将数据和其行为结合在一起,形成一个不可分割的独立单位;②信息隐藏,即尽可...

2020-04-15 22:25:36 162

原创 HIT 软件构造Lab1 思考

Lab 1实验报告3.1 Magic Squares要求读取一些文件的输入,判断该文件内的数字组合是否为幻方。阶n的幻方是一个正方形中n×n个数字(通常是不同的整数)的排列,以便所有行,所有列和对角线中的n个数字求和为相同的常数。输出的结果是布尔值。注意还要针对一些特殊的不符合要求的输入进行异常处理,不能让他直接跳出错误。数字之间的间隔采用制表符\t。主要操作就是读取矩阵,求行列对角线的和,...

2020-04-15 22:12:07 295

原创 哈工大计算机系统大作业

计算机系统大作业题 目 程序人生-Hello’s P2P 专 业 软件工程学   号 1183000118班   级 1837101学 生 张智琦    指 导 教 师 史先俊计算机科学与技术学院2019年12月摘 要本文通过对于hello程序的...

2020-01-05 23:26:42 3332 1

空空如也

空空如也

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

TA关注的人

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