- 博客(58)
- 收藏
- 关注
原创 输入Rviz打不开,显示could not contact Ros master at[..],retrying
先输入roscore,再用ctrl+alt+t打开新终端,在新终端输入rviz/rosrun rviz rviz即可。直接输入rviz会报错无法打开。
2024-07-08 00:32:15
249
原创 异常组成、作用、处理方式(3种)、异常方法、自定义异常
和多态有关catch多重异常时,子异常类必须在它们任何父类之前。因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,如果子类在父类后面,子类将永远不会到达。你想写也不行,系统会报编译错误。长度在3-10间,年龄在18-40岁间这些显然不是RuntimeException里面定义好的异常,如果触发了这些异常,为了更加清晰表明到底是哪种,需要自定义异常。前两个方法,一个空参一个带参。
2024-07-07 22:22:29
1000
原创 方法引用详解
在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作那么考虑一种情况:如果我们在Lambda中所指定的操作方案,,那是否还有必要再写重复逻辑呢?答案肯定是没有必要。
2024-07-06 22:39:24
548
原创 Stream的获取、中间方法、终结方法
Collections.addAll(list,"张三-男-21","cala-女-24","李四-男-27","王五-男-29","gaga-女-20");
2024-07-05 17:51:46
370
原创 TreeMap源码
代码中的逻辑都有两面性,如果我们只知道了其中的A面,而且代码中还发现了有变量可以控制两面性的发生。既然有红黑树,HashMap的键是否需要实现Compareable接口或者传递比较器对象呢?如果是最坏情况,添加了8个元素,这8个元素形成了链表,此时TreeMap的效率要更高。int类型的变量控制,一般至少有三面,因为int可以取多个值。因为在HashMap的底层,默认是利用哈希值的大小关系来创建红黑树的。一般而言,还是HashMap的效率要更高。但是这种情况出现的几率非常的少。此时是不需要重写的。
2024-07-02 23:10:36
426
原创 源码分析的标识认识和HashMap源码分析
这里面h>>>16(无符号右移)为了让key的hash值的高16位也参与哈希运算。2.如果不是第一次添加数据,会看数组中的元素是否达到了扩容的条件。底层会把数组扩容为原先两倍,并把数据全部转移到新的哈希表中。底层会创建一个默认长度为16,加载因子为0.75的数组。默认初始值为Null,数组只有在添加元素时候被创建。红黑树结构又回到了链表形式的Node。1.如果当前是第一次添加数据,3.如果没有达到扩容条件,4.如果达到了扩容条件,
2024-07-02 22:00:34
848
原创 关于接口回调,何时使用接口名创建对象?何时使用子类创建对象?
都可以用A b=new E()/new F()/ new G() /new H()的 方式来实现。
2024-06-19 15:14:04
276
原创 List实现类——ArrayList、LinkedList及迭代器(并发修改异常错误)源码分析
异常产生原因:并发修改异常指的是在并发环境下,当方法检测到对象的并发修改,但不允许这种修改时,抛出该异常。
2024-06-17 16:19:22
269
原创 单列集合顶层接口Collection及五类遍历方式(迭代器)
中重写equals方法contains在arrayList中源代码:在底层调用了equals方法。
2024-06-16 19:13:06
821
原创 Java爬虫——正则表达式应用
Pattern Matcher均属于regex下步骤:pattern获取正则,matcher获取文本对象,find截取字符串(返回true、false),group获得字符例题:爬取指定文字分析:二次调用时:循环解答:例题2:网络爬虫选择性数据爬取(部分忽略)——(?i)可以忽略大小写各种符号:!表示去除后面元素:表示获取整体全部贪婪爬取:Java默认爬取方式,但在数量词+或者*后面加?,此时为非贪婪
2024-06-12 14:09:44
997
原创 常用API
Cloneable是标记接口(其方法体为空),它用来表示一个类拥有某些希望具有的特征。实现Cloneable接口的类被标记为可克隆的,而且其对象可以使用Object类中定义的clone()方法克隆。如果除不尽,不能用divide含一个参数的方法,要用最后一个方法,HALF_UP表示四舍五入。有的小数部分的二进制过长,超过了int和float的定义长度就会发生这样舍弃的情况。如果不是整数,都是通过new创建的BigDecima,所以地址值不同。),这时候的地址值相同,不会重新new。
2024-06-10 18:43:22
484
1
原创 疑惑点:动作监听时this的含义:可以理解为接口的多态
在创建test3这个类时,已经承接了ActionListerner这个接口,this的使用可以理解为接口的多态,任意一个实现类对象均可以承接这个接口。this可以是ActionListerner的实现类对象,
2024-05-28 11:22:35
246
原创 接口、接口拓展及应用、适配器
如果多个接口间有重名的方法,只重写一次如果实现多个接口,要重写里面所有的抽象方法如果实现类是最下面的子接口,要重写接口里面所有的抽象方法要实现inter3接口,重写接口所有方法如果有多类,先让适配器类继承原来实现类的父类。
2024-05-22 15:17:42
342
原创 包、final
eg:eg:Math中圆周率的定义eg:string里面被final修饰所以地址值不能变,并且被private修饰,外部无法访问需要get/set方法,但是string里面没有提供对value的get/set方法
2024-05-21 14:18:34
211
原创 多态知识点
有了封装才有对象,有了对象才有继承,才有多态。出现在继承或者实现关系。有父类引用(Fu f)指向(=)子类的对象(new Zi),如上图例子,有方法重写。例如Animal是一个动物类型,而Cat是一个猫类型。Cat继承了Animal,Cat对象也是Animal类型,自然可以赋值给父类类型的变量。
2024-05-20 15:23:50
694
原创 疑惑点:多态中访问成员方法为什么调用子类?
子类应该都是对父类进行拓展或者完善,在子类里面调用父类方法必须要用super(),如果子类不对父类方法进行重新的话,就丧失了多态这一特性,可以将父类看作为一个接口,比如人这个父类,东方人用筷子,西方人用叉子。访问对象的时候,比如animals p =new Dog(),sout(p.name),给的解释就是先从父类animal里面找,ok我可以理解。但是又说如果父类里面有的话,子类重写过这个方法,所以运行子类的,子类的重写只覆盖子类的啊,和我父类有啥关系,咋就去调用子类去了啊?方法,方法表中存储的是。
2024-05-20 00:37:18
406
原创 继承(成员变量/方法/构造方法继承和调用特点,内存图,用法,方法的重写,this、super的特点)
父类自动产生一个虚方法表,在继承时传给子类,子类在父类虚方法表的基础上添加上自己类的虚方法,继续传给下一个子类,以此类推,所以继承调用方法的前提一定是它属于虚方法!!!不是虚方法的直接无法继承!!!只有父类中的虚方法才能被子类继承!!!默认值。
2024-05-19 22:16:56
726
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人