- 博客(18)
- 收藏
- 关注
原创 LIO-SAM配置
出现存储空间不足问题:参考https://blog.csdn.net/weixin_56017984/article/details/123433167?bash: /home/gyh/catkin_ws/devel/setup.bash: 没有那个文件或目录。chmod: 更改’/usr/lib/sudo/sudoers.so’ 的权限: 不允许的操作。sudo: /usr/lib/sudo/sudoers.so 必须只对其所有者可写。在工作空间下克隆Lio-sam工程,安装lio-sam。
2023-07-06 18:44:28 469 1
原创 ubuntu1804 ros配置
无公钥报错:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 再sudo apt update。文件末尾加上151.101.84.133 raw.githubusercontent.com。用手机热点开了梯子下载好了,比上一次顺利w。第一次启动ros要进行环境变量配置。安装ros-melodic。安装rosinstall。安装rosdep命令。
2023-07-06 16:34:45 276 1
原创 关于等价性的理解
不可变对象的引用等价性 & 对象等价性引用等价性相同内存地址对于:基本数据类型equals()对象等价性对于:对象类型在自定义ADT时,需要用@Override重写Object.equals()(在Object中实现的缺省equals()是在判断引用等价性)如果用,是在判断两个对象身份标识 ID是否相等(指向内存里的同一段空间)equals() & hashCode()equals()的性质:自反、传递、对称、一致性equals()重写范例判断引用等价性判断类的一致性判断具体值是否满
2021-07-10 00:08:02 686
原创 关于ADT的理解
设计ADT:规格Spec–>表示Rep–>实现Impl四类ADT操作Creators实现:构造函数constructor或静态方法(也称factory method)Producers需要有“旧对象”return新对象eg. String.concat()Observerseg. List的.size()Mutators改变对象属性若返回值为void,则必然改变了对象内部状态(必然是mutator)表示独立性client使用ADT时无需考虑其内部如何实现,ADT内部表示的变化不应
2021-07-09 23:57:29 979
原创 关于设计模式的理解
#创建型模式工厂方法模式我们需要向用户提供接口,但是接口中不能存在构造方法,故用工厂方法来提供构造器。我们并不希望用户知道我们的内部类实现,所以用工厂方法提供构造器。工厂方法:定义一个用于创建对象的接口,让该接口的子类型来决定实例化哪一个类,从而使一个类的实例化延迟到子类。(即定义一个接口(构造产品接口类),具体实例化的类(实现产品接口子类型的构造方法)继承该接口,重写具体构造方法,需要创建哪个,就调用哪个具体的构造类。)注:工厂接口中可以包括其他方法。具体实现类可以用static静态函数来创建对
2021-07-07 13:46:02 81
原创 LocalDate
#Date是可变类型,不安全。#用LocalDate替代,LocalDate不可变。下面展示:long gap;LocalDate starttime, endtime;starttime = LocalDate.of(year, month, day);//日期endtime = LocalDate.of(year1, month1, day1); //日期gap = endtime.toEpochDay() - starttime.toEpochDay();//日期差(每个都转换为long
2021-07-02 20:07:43 184
原创 关于可复用性的理解
#可复用性什么是软件可复用性?硬件,CPU,显卡可复用性软件复用就是用已存在的软件模块执行更新软件。面向复用编程:开发出可复用软件。基于复用编程:利用已有的可复用软件搭建应用系统。基于复用编程:分析相似性+差异性。越抽象的越容易复用。选取,适配,修改,扩展。往往无法拿来就用,需要适配,可靠性建立在外部基础上。为什么复用?降低成本,开发时间,经过充分测试,可靠,稳定,标准化,在不同应用中保持一致。但需要代价,代价也高(抽象)。开发可复用的软件:高成本,高适应,性能差,针对性差。使用已有软
2021-07-01 17:27:28 1000
原创 集合Set边遍历边删除
#直接用for遍历删除会抛出异常#改用Iterator迭代器实现遍历删除注意:删除时要用iterator的remove方法 下面展示:// A code blockIterator<Element<L>> iterator = repeat.iterator(); while(iterator.hasNext()) { Element<L> elem = iterator.next(); if(elem.getLabel().equals(la
2021-07-01 17:25:18 1294
原创 软构复习1 2
软构复习1 2#软件构造的多维度视图和质量指标一.从三个维度看软件系统的构成1.按阶段划分:build- and run- time views2.按动态性划分:moment and period views3.按构造对象的层次划分:code and component views4.build-time views(即code阶段)code-level view:代码的逻辑组织,比如函数,类,方法,接口等。component view:代码的物理组织,比如文件,包,库等。moment v
2021-06-28 21:10:39 372 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人