
软件构造
Joe_hsj
这个作者很懒,什么都没留下…
展开
-
软件构造知识点总结(三)Java多线程、线程安全
软件构造知识点总结(三)-Java多线程与线程安全文章目录软件构造知识点总结(三)-Java多线程与线程安全一、进程与线程二、Java多线程的实现1.继承Thread类2.实现Runnable接口3.实现Runnable接口的优势三、线程的状态四、线程的调度五、线程安全1.Java内存模型2.线程不安全案例3.安全策略一、进程与线程进程是资源分配的最小单位,线程是程序执行(CPU调度)的最小单位(资源调度的最小单位);进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数原创 2020-06-28 10:24:59 · 517 阅读 · 0 评论 -
软件构造知识点总结(二)规格说明、异常与不变类型
软件构造知识点总结(二)规格说明、异常与不变类型文章目录软件构造知识点总结(二)规格说明、异常与不变类型1.规格说明1.1规格说明的结构1.2测试与规格说明1.3规格说明的强度2.异常3.mutable与immutable1.规格说明规格说明是团队合作中的关键点。如果没有规格说明,就没有办法分工实现各种方法。规格说明就像一份合同:实现者的义务在于满足合同的要求,客户可以依赖这些要求工作。事实上,我们会发现就像真的合同一样,规格说明对双方都有制约:当合同上有前置条件时,客户有责任满足这些条件。如上图原创 2020-06-17 16:01:20 · 539 阅读 · 0 评论 -
软件构造知识点总结(一)静态检查与测试
软件构造知识点总结(一)静态检查与测试文章目录软件构造知识点总结(一)静态检查与测试1.自动检查1.1静态检查1.2动态检查2.静态类型、动态类型3.测试3.1为什么软件测试很困难?3.2测试优先编程3.3通过等价类划分的方法选择测试用例3.4注意等价类之间的“边界”4.黑盒测试与白盒测试5.测试覆盖率6.单元测试、回归测试、集成测试6.1单元测试6.2集成测试6.3回归测试1.自动检查编程语言通常能提供以下三种自动检查的方法:静态检查: bug在程序运行前发现动态检查: bug在程序运行原创 2020-06-12 19:30:58 · 823 阅读 · 0 评论 -
浅析Java异常处理
浅析Java异常处理文章目录浅析Java异常处理1.异常2.分类:2.1依据类关系区分2.2 checked、unchecked异常3.异常处理机制3.1捕获异常3.2抛出异常4.自定义异常类1.异常异常指不期而至的各种状况,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保证程序的正常执行。一旦产生异常,异常之后的语句并不会被执行,而是直接结束程序,并将错误报告给客户了。Java异常类层次结构图:原创 2020-05-13 22:30:25 · 229 阅读 · 0 评论 -
Java String.split拆分返回空数组?
Java String.split拆分返回空数组?今天在使用String.split时返回了一个空数组,第一次遇到这种情况,因为就算没有对原字符串进行拆分也应该返回一个长度唯一的装着原串的字符数组。我的代码大致如下:String s = "27.4";String[] sArray = s.split(".");后调试发现sArray是个空数组,于是前往查找资料发现:String.split采用正则表达式,所以在使用“.”等特殊字符时时应该进行转义!!!所以正确的写法应该是:String原创 2020-05-11 20:41:23 · 1913 阅读 · 0 评论 -
Liskov Substitution Principle里氏代换原则(LSP)
Liskov Substitution Principle里氏代换原则(LSP)文章目录Liskov Substitution Principle里氏代换原则(LSP)1.什么是LSP2.为什么要遵循LSP3.具体要求4.示例5.总结1.什么是LSP严格定义:Let q(x) be a property provable about objects x of type T, then q(y...原创 2020-04-13 19:41:38 · 409 阅读 · 0 评论 -
Java中的==与equals
Java中的==与equals1.对于基本数据类型形如byte,short,char,int,long,float,double,boolean的基本数据类型比较他们的值是否相等时使用 ==2.对于符合数据类型使用==比较的是他们的地址而使用equals比较的才是值是否相同(注意String是对象类型,属于该类!!!)...原创 2020-03-20 23:05:32 · 122 阅读 · 0 评论 -
关于在List中删除元素引起ConcurrentModificationException的问题
关于在List中删除元素引起ConcurrentModificationException的一些解决方法For-each循环使用一些内部迭代器,这些迭代器会检查集合修改并引发ConcurrentModificationException异常解决方法一:使用显示迭代器Iterator<String> iter = myArrayList.iterator();while (ite...原创 2020-03-19 22:59:17 · 185 阅读 · 0 评论 -
Java中的length、length()与size()
Java中的length、length()与size()经常混淆各种获取大小的方法,在查询相关回答后得到以下答案:1.获取数组的大小,使用lengthint a = {0,1};int cnt = a.length;2.获取字符串的长度,使用length()String s = "sss";int cnt = s.length();3.获取泛型集合的大小,使用size()Li...原创 2020-03-19 22:39:10 · 100 阅读 · 0 评论 -
使用Travis-CI在线build
使用Travis-CI在线build文章目录使用Travis-CI在线build1.什么是Travis-CI2.如何使用2.1链接你的GitHub2.2编辑 .travis.yml文件2.3运行流程3.关于macOS下以 . 开头的文件无法显示的问题1.什么是Travis-CITravis-CI是软件开发领域的一个在线的,分布的持续集成服务,用来构建以及测试在GitHUb中托管的代码,简单的...原创 2020-03-08 21:50:38 · 386 阅读 · 0 评论 -
Mac下Git的安装与基本使用
Mac下Git的安装与基本使用文章目录Mac下Git的安装与基本使用一、Git的安装二、Git配置1.设置用户名以及邮箱2.创建ssh key3.在GitHub添加ssh key4.验证链接三、提交本地项目到GitHub1.将项目clone至本地2.本地修改项目并上传一、Git的安装前往网站:https://git-scm.com/进行下载安装安装后在终端输入git --version...原创 2020-02-22 18:14:59 · 335 阅读 · 1 评论