自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HIT每日自动上报

HIT-reporter基于Quantumult X的HIT每日上报脚本2020.4.4 不确定Cookie可用时长,后面可能会更新配置 (QuanX)[MITM]xg.hit.edu.cn[rewrite_local]//Cookie获取js^https:\/\/xg\.hit\.edu\.cn\/zhxy-xgzs\/xg_mobile\/xsHome$ url script-request-header https://raw.githubusercontent.com/7k

2021-04-04 10:54:10 661

原创 软件构造 复习总结(第六、七章)

可维护性的常见度量指标Cyclomatic complexity 圈复杂度Lines of Code LoC 代码行数Maintainability Index (MI) 可维护性指数Depth of Inheritance 继承的层次数Class Coupling 类之间的耦合度Unit test coverage 测试代码覆盖率Coupling 耦合度 and Cohesion 聚合度Coupling 耦合度:模块之间的依赖性。Conhesion 聚合度功能专一性。高聚合度:

2020-07-11 10:16:46 215 1

原创 软件构造 复习总结(第四、五章)

代码可理解性1.度量标识符的平局长度命名独特性比例代码复杂度LoC 代码行数注释密度(百分比)2.如何书写可理解性代码命名规范代码行最大长度,文件最大LoC注释布局:缩进、对齐、空行、分块等避免多层嵌套(增加复杂度)文件和包的组织3.包的相关原则REP 复用/发布等价原则复用的粒度等价于发布的粒度(发布的都是应被复用的,未发布的不应被复用)CCP Common Closure Principle 共同封闭原则一个包中的所有类针对同一种变化是封闭的一个包的变

2020-07-11 10:16:33 214

原创 软件构造 复习总结(第三章)

数据类型Primitive types 基本数据类型(8种)Object types 对象数据类型(reference types 引用数据类型)Short、int 、long、float、double、boolean、char、byte如:String、BigInteger只有值,没有ID(无法与其他值区分),不能赋值为null;immutable有值,也有ID;部分mutable,部分immutable在栈中分配内存,代价低在堆中分配内存,代价高静态类型检查

2020-07-09 22:52:36 345

原创 软件构造 复习总结(第一、二章)

软件构造的多维视图Build-timeCode-level: 源代码:代码的逻辑组织:AST抽象语法树、函数、方法、类、接口等具体的逻辑实现(class diagram类图)Component-level:结构:代码的物理组织:源文件、包、库、静态链接、测试用例(component diagram构建/组件图),编译Moment view : 特定时刻的源码或组件形态Period view:软件形态随时间的变化Build-moment-code:词汇(源码)、语法(抽象语

2020-07-07 21:23:28 230

原创 关于Java的接口和抽象类

对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。一.抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。[public] abst

2020-07-07 17:46:41 101

原创 关于Java的协变和逆变

逆变与协变:如果A、B表示类型,f(⋅)表示类型转换,≤表示继承关系(比如,A≤B表示A是由B派生出来的子类):f(⋅)是逆变(contravariant)的,当A≤B时有f(B)≤f(A)成立;f(⋅)是协变(covariant)的,当A≤B时有f(A)≤f(B)成立;f(⋅)是不变(invariant)的,当A≤B时上述两个式子均不成立,即f(A)与f(B)相互之间没有继承关系。1.数组的协变性在Java中数组是具有协变性的,如果B是A的子类型,则B[]是A[]的子类型(f(⋅)映射为数组

2020-07-03 13:40:36 151

原创 关于Java的泛型

1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制

2020-07-02 15:32:52 66

原创 关于Java中的集合的两种排序方法

java集合的工具类Collections中提供了两种排序的方法,分别是:Collections.sort(List list)Collections.sort(List list,Comparator c)第一种称为自然排序,参与排序的对象需实现comparable接口,重写其compareTo()方法,方法体中实现对象的比较大小规则,示例如下:实体类:(基本属性,getter/setter方法,有参无参构造方法,toString方法)package test;public class Em

2020-07-01 20:31:15 128

原创 关于ADT的学习总结

抽象数据类型ADT的特性:表示泄露,抽象函数AF,表示不变量RI。ADT是由操作定义的,与其内部如何实现无关。抽象以及用户定义的类型抽象数据类型是软件工程中一个通用原则的实例。抽象:用更简单、更高层次的思想忽略或隐藏底层细节。(规约是一种客户端只需要理解千前置和后置条件来使用的抽象,不需要了解内部实现)模块性:将一个系统划分为各个组件或模块,可以设计、实现、测试、推理和重用与系统的其他部分分开。(单元测试和规约使得方法变为模块)封装:围绕模块建造防护,这样模块就负责它自己的内部行为和bug在

2020-06-10 20:00:28 406

原创 关于Java中的Mutable 和 Immutable类型

概念immutable(不可变的):一旦创建,就不能更改它的值/引用。mutable(可变的):创建之后,该对象拥有可以更改其值/引用的方法,可以利用这些方法改变。需要注意的一点是:改变一个变量的引用:将该变量指向另一个值的存储空间改变一个变量内的值:将该变量当前指向的值的存储空间中写入一个新的值。实例StringString类型是immutable的,一旦创建,不能更改它指向的值,只能改变它的引用String s = "a";s = s.concat("b"); // s+="b" a

2020-06-10 18:51:16 346

原创 关于Java的SOLID编程原则的学习总结

SOLID阐述了五种设计原则,可帮助开发人员轻松扩展和维护软件:S - 单一责任原则O - 开放原则L - Liskov替换原则I - 界面隔离原理D - 依赖倒置原则单一责任原则一个类应该有一个,而且只有一个改变的理由。一个类应该只有一个责任,这意味着类应该高度凝聚并实现强相关的逻辑。实现功能1和功能2和功能3(依此类推)的类违反了SRP。SRP示例:// BADpublic class UserSettingService { public void changeEmail(

2020-05-29 17:09:40 172

原创 关于Java的正则表达式的学习总结

正则表达式语法元字符描述\将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。*匹配

2020-05-29 16:09:01 139

原创 关于Java的UML类图的学习总结

UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。类的UML图示在UML类图中,类使用包含类名,属性,方法名及其参数并且用分割线分隔的长方形表示。例如最简单的一个类Person 类有两个属性分别是name和age,并提供对应的get和set方法。类名类的名字,对应于Java类中的类名,如果该类是抽象类的话,在类名右下角会有一个(Abstract)表示,假如Pers.

2020-05-13 13:49:35 332

原创 关于Git的一些简单操作的总结

初始化仓库1.1 初始化一个Git仓库,使用git init命令。添加文件到Git仓库,分两步:2.1 使用命令git add <file>,注意,可反复多次使用,添加多个文件;2.2 使用命令git commit -m <message>完成。要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容。版本回退4.1 HEAD指向的版本就是当前版本,因此,Git允许我们在版本..

2020-05-11 16:20:50 140

原创 SC lab 1 P3 Social Network

SC lab 1 P3 Social NetworkP3较P2要简单不少,只需把对象的概率理解清楚就行,要求实现一个模拟的社交网络,形成一个图结构,可以向图中添加点(人)和边(关系),并且可以计算各个点之间最短的距离。设计/实现FriendshipGraph类FriendshipGraph类是社交网络的抽象,描述了一个社交网络关系图。描述图有两种方法:邻接表和邻接矩阵,为了计算距离方便使用...

2020-05-11 15:47:18 148

原创 SC lab 1 P2 Turtle Graphics

Turtle Graphics Logo是麻省理工学院发明的一种编程语言,最初用于在太空中移动机器人。 海龟图形,添加到Logo语言中,允许程序员向屏幕上的“海龟”发出一系列指令, 并在其移动时画出一条线。海龟图形也被添加到许多不同的编程语言中,包括Python, 它是标准库的一部分。这次实验就是学着用turtle画一些图案,以及对图案进行一些角度计算。很简单,提供了两个函数,forw...

2020-03-20 10:09:59 200

原创 SC lab 1 P1 Magic Squares

SC lab 1 P1 Magic SquaresMagic Squares要求验证某个读入的矩阵是否是幻方,读入的文件要求数字间以\t分割且都是正整数,幻方要求为方阵且行列对角线之和相等。isLegalMagicSquare()首先需要对对文件内容进行分割从而得到所需数据:1)调用txt2String()方法将文件按行分割为字符串2)利用"\n"对字符串content进行分割,从而...

2020-03-18 11:21:31 119

空空如也

空空如也

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

TA关注的人

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