- 博客(5)
- 收藏
- 关注
原创 解析Java中Thread与Runnable的区别
根据Java的文档,如果需要执行一个简单的任务,实现Runnable接口比继承Thread类更好。这是因为Java只允许单继承,如果继承Thread类,那么就不能再继承其他类。而实现Runnable接口可以避免这个问题。此外,实现Runnable接口还可以更好地支持线程池,因为线程池只能执行实现Runnable或Callable接口的任务。另一方面,如果需要进行复杂的线程操作,例如需要重写Thread类的一些方法,那么继承Thread类可能更合适。综上所述:1.Runnable需要实现其接口。
2023-04-24 01:45:44 587 2
原创 java的向上转型
在java中,一个类可以继承另一个类,被继承的类叫做父类(超类),继承的类叫做子类。子类的创建过程中,会先对父类部分进行初始化(先创建一个父类对象),再对子类部分初始化,并且子类会继承父类所有的属性与方法(包括private,但是无法直接访问),同时子类可以对父类方法进行覆盖(详细见。在Cat的构造函数中,我们调用了其父类Animal的构造函数,并传入age参数。由于Cat继承自Animal类,所以Cat的方法eat重写了父类的eat,故输出“猫在吃鱼”。需要注意的是,在进行向上转型时,
2023-04-05 09:00:00 4493 6
原创 一文读懂java重载,重写(覆写,覆盖)的区别
重写和重载区别很大,重载是指一个方法名经过参数类型或者个数的修改可以被多次调用,而重写是指子类将父类继承过来的某个方法给覆盖掉了,调用的实际是子类自己的方法。
2023-03-30 23:26:51 1828
原创 c/c++常见的排序算法:冒泡/选择/插入/计数
计数排序是一种稳定的排序算法,需使用一个额外的数组B,B中的第n个元素是待排序数组A中 数值 等于n的元素的个数,然后根据数组B来将A元素正确排序并输出,但是其只使用于一定范围的整数排序。提示:对于待排序的元素来说,因为前n-1个元素已有序,故第n个元素只需插入到已排序好的序列中,便可使前n个元素有序。2,遍历原始数组,将与原始数组元素值对应的array下标的元素增加,已统计该原始数组元素出现的次数。2,接着取下一个元素,从已排序的元素序列中自后向前的开始扫描,3,对除了末尾元素以外元素进行步骤一的操作,
2023-03-29 18:58:21 670 2
原创 c++链表/结构体中含有string类型使用malloc分配内存失败/报错
我们知道在string是一个常用的类,在为string分配空间时需要调用string的构造方法,而malloc无法调用,故程序会报错,而new拥有调用构造函数的功能,所以可以用new来为string开辟内存。百思不得其解,在多次调试以后,发现是因为结构体中使用了string类,只要将string换成其他的类型 如int 就可继续正常输入,或者将malloc换成new也可成功运行。综上,new函数在调用operator new函数后会继续调用该类型的构造方法,紧接着返回该对象类型的指针。纯小白,有错请斧正。
2023-03-28 19:32:09 991 2
nvim插件使用一直失败
2023-09-15
蓝桥杯:想知道最优解
2023-04-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人