2019北航OO第三单元作业总结

1、梳理JML语言的理论基础、应用工具链情况 JML基础理论: JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言。JML是一种行为接口规格语言,基于Larch方法构建。JML可以为严格地程序设计提供一套行之有效的方法。通过JML及其支持工具,不仅可以基于规格自动构造测试用例,并整合了SMT Solver等工具以静态方法来检查代码实现对规格的满足情况。 从我个人的理解上,JML语言以简洁严谨的形式描述了代码规格要求,有利于代码的规格化设计,实
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

汇编语言16位环境搭建(Windows 7 32位)

(一)系统环境工具 1.windows 7 32位 2.masm5.0,如果没有,点击这里 (二)编译环境安装 1.将下载下来的masm5.0.zip,解压缩,这包是免安装,直接解压到C:\work目录下,同时把MASM所在的执行路径添加到系统环境变量PATH中。 2.打开CMD命令行窗口模式,cd C:\work\masm,输入以下命令(其中test.asm文件为汇编源码文件,注意源码文件名字不能超过8个字符): masm test.asm 在masm目录下会生成相应的obj文件(TEST.
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

Java算法——递归思想

描述 递归(recursion):程序调用自身的编程技巧。 递归满足2个条件: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(递归出口) 递归与栈的关系 下面演示的是求n的阶乘 int Factorial(int n){ if (n == 0) return 1; return n * Factorial(n - 1); } 常常听到 “递归的过程就是出入栈的过程”,这句话怎么理解?我们以上述代码为例,取 n=3,则过程如下: 第 1~4 步,都是入栈过程,Fact
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

String和Object类的总结

String常用方法 clone()方法:克隆一个一模一样的对象,不会影响原对象。 equals()方法:默认是比较两个对象的地址值 tostring()方法:输出类的属性。一般来说输出的格式是:类名 + @ + 地址值。 字符串一旦被赋值,内容就不能改变,但是引用可变。 String s = new String(); //默认构造函数,s什么东西都没有 byte[] bytes = {97,98,99,100}; //A,B,C,D的哈希码 String s = “hello”;//在方法
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

windows powershell的常用命令 cmd开启3389 如何用CMD开启3389与查看3389端口

cmd开启3389 如何用CMD开启3389与查看3389端口 开启 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 查端口 netstat -ano 如何修改远程桌面3389端口?有必要时,这个端口,我建议是修改一下为好,最好改大一点,这样安全性会高一点,但然面对高手级攻击,就没有用了,通常高手级过NMAP扫描一个你的IP地址,
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

关于MQ的几件小事(一)消息队列的用途、优缺点、技术选型

1.为什么使用消息队列? (1)解耦:可以在多个系统之间进行解耦,将原本通过网络之间的调用的方式改为使用MQ进行消息的异步通讯,只要该操作不是需要同步的,就可以改为使用MQ进行不同系统之间的联系,这样项目之间不会存在耦合,系统之间不会产生太大的影响,就算一个系统挂了,也只是消息挤压在MQ里面没人进行消费而已,不会对其他的系统产生影响。 (2)异步:加入一个操作设计到好几个步骤,这些步骤之间不需要同步完成,比如客户去创建了一个订单,还要去客户轨迹系统添加一条轨迹、去库存系统更新库存、去客户系统修
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

面向对象博客作业3

JML语言的理论基础和应用工具链情况   The java modeling language,是用于对java程序进行规格化设计的语言。在语法上,JML表达式包括原子表达式,量化表达式,集合表达式和操作符。方法规格方面,有前置条件requires,后置条件ensures,和副作用assignable or modifiable。   openjml是主要的应用工具链,包括语法检查,静态检查,运行时检查三个功能。   parsing and type-checking:   openjml -
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

大数据学习——scala入门练习

package com /** * Created by ZX on 2015/11/6. */ object VariableDemo { def main(args: Array[String]) { //1定义变量----------------------------------------- //使用val定义的变量值是不可变的,相当于java里用final修饰的变量 val i = 1 //使用var定义的变量是
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

NAT基本原理

公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。 私有IP地址:也叫内部地址,属于非注册地址,专门为组织机构内部使用。因特网分配编号委员会(IANA)保留了3块IP地址做为私有IP地址: 10.0.0.0 ——— 10.255.255.255 172.16.0.0——— 172.16.255.255 192.168.0.0———192.168.255.255 地址池:
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

关于MQ的几件小事(二)如何保证消息队列的高可用

1.RabbitMQ的高可用 RabbitMQ基于主从模式实现高可用。RabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式。 (1)单机模式: 单机模式就是demo级别的,生产中不会有人使用。 (2)普通集群模式 普通集群模式就是在多台机器上启动多个rabbitmq实例,每个机器启动一个。但是创建的queue只会放在一个rabbitmq实例上面,但是其他的实例都同步了这个queue的元数据。在你消费的时候,如果连接到了另一个实例,他会从拥有queue的那个实例获取消息然后再返回给你
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

js获取table checkbox选中行的值.mdjs获取table checkbox选中行的

<!DOCTYPE html> <html> <head> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> <script> function check() {         var check = $("input[type='checkbox']:checked");//在table中找inpu
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

Object-Oriented Programming Summary Ⅲ

目录 JML单元作业博客 1.1 梳理JML语言的理论基础 0. 前言 1. 形式 2. 作用域 3. 前置条件 (requires) 4. 后置条件 (ensures) 5. 模型域 (model) 6. 不变量 (invariant) 7. 约束 (constrain) 8. 运行时检查 (repOK) 9. 量词 (Quantification) 10. 副作用 (assignable) 11. 异常行为 (exceptional_behavior) 1.2 梳理JML语言的应用工具链
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

关于MQ的几件小事(四)如何保证消息不丢失

1.mq原则 数据不能多,也不能少,不能多是说消息不能重复消费,这个我们上一节已解决;不能少,就是说不能丢失数据。如果mq传递的是非常核心的消息,支撑核心的业务,那么这种场景是一定不能丢失数据的。 2.丢失数据场景 丢数据一般分为两种,一种是mq把消息丢了,一种就是消费时将消息丢了。下面从rabbitmq和kafka分别说一下,丢失数据的场景, (1)rabbitmq A:生产者弄丢了数据 生产者将数据发送到rabbitmq的时候,可能在传输过程中因为网络等问题而将数据弄丢了。 B:rabbi
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

Flutter 删除AppBar的返回icon

设置automaticallyImplyLeading: false即可,替换可以修改"leading"参数 ... appBar: AppBar( automaticallyImplyLeading: false, ... ), ...
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

关于MQ的几件小事(三)如何保证消息不重复消费

1.幂等性 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现. 简单来说,幂等性就是一个数据或者一个
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

当代码遇到数理逻辑——面向对象设计与构造第三章总结

在面向对象课程中的第三章,我尝试了基于JML语言的规格化设计,按照AppRunner中的接口文件实现了Path类和PathContainer, Graph, RailWaySystem迭代类。JML语言是一种规格化语言,完全建立于数理逻辑上,既能够为开发者实现类与方法时提供准确的功能参考,也能够在特定工具支持下充当assert的功能和辅助自动生成测试样例。 本篇博客将从以下几方面对第三章进行总结: JML的基本语法与工具链 基于JmlUnitNg的自动测试方法尝试 三次作业架构 程序Bug分析
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

java并发系列(一)-----多线程简介、创建以及生命周期

进程、线程与任务 进程:程序的运行实例。打开电脑的任务管理器,如下: 正在运行的360浏览器就是一个进程。运行一个java程序的实质是启动一个java虚拟机进程,也就是说一个运行的java程序就是一个java虚拟机进程。进程是程序向操作系统申请资源(如内存空间和文件句柄)的基本单位。 线程:是进程中可独立执行的最小单位,并且不拥有资源。进程相当于工厂老板,整个工厂的机器都是属于老板的,但是工厂里面的活都是由工人完成的。 任务:线程所要完成的计算就被称为任务,特定的线程总是执行特定的任务。 ja
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

SQL的编写顺序和执行顺序,以及一些其他问题

SQL即结构化查询语言。也就是用来从数据库中操作数据的,增删改查CRUD。 一,sql的分类,大致有四类:   1)DDL : 数据定义语言 create alter drop truncate   2)DML : 数据操纵语言 insert update delete   3)DCL : 数据控制语言 安全 授权 grant revoke   4)DQL : 数据查询语言 select from子句 where子句 二,查询语句的结构   select [列名] [*] from 表名 [w
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

三道关于类与方法的例题

三道类与方法的例题 猜数字游戏:一个类A有两个成员变量v、num,v有一个初值100。定义一个方法guess,对A类的成员变量v,用num进行猜。如果大则提示大了,小了则提示小了。等于则提示猜测成功。 在main方法中测试。 public class Demo1 { private static int v = 100; public static int num; public static void guess() { if (num >
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0

OO--第三单元规格化设计 博客作业

OO--第三单元规格化设计 博客作业 前言 第三单元,我们以JML为基础,先后完成了 PathContainer -> Graph -> RailwaySystem 这是一个递进的过程,代码实现基于课程组给出的JML语言,JML是一个只关心前提与结果的建模语言,可以描述清楚对于该方法的需求,但具体实现由个人完成,实现方法不限,只需要满足需求。一定意义上,算是工程方面客户的需求,而我们依据其完成代码。 JML理论基础及应用 注释结构 一般使用块注释,即/*@ annotation @*/,注释放
分类: 其他 发布时间: 05-22 22:11 阅读次数: 0