- 博客(28)
- 收藏
- 关注
原创 ---java KMP算法---
对于在一段字符串中查找一段字符串,如果用数组遍历的方法那就效率低下,所以产生了效率更高的KMP算法。KMP算法查只需要遍历一次字符串就可以找出第一次出现的目标字符串。要学的话建议区b站看视频,学着由视频学者比较容易。加油 φ(≧ω≦*)♪。我这里就提供下我实现的代码,嘻嘻。
2024-07-05 15:22:36
141
原创 ---异常---
try里面的语句是可能出现的的异常,可以捕获里面出现的异常,然后跳转到catch去寻找对应异常的语句,若没有对应的就会逐层上抛,从try catch 外面的方法看有没有用try catch去处理,若没有在向上,到main里还没有就会给JVM去处理。虽然java中有丰富的异常类,但也不一定能满足实际的使用,那么这时我们就可以自定义类,用来符合我们的要求。若声明的是受查异常如text2的异常,那么必须要进行处理,否者连编译阶段都过不去,也就无法运行。这是对于数组越界这个类里有的方法,这些是描述异常的。
2024-06-16 22:31:49
324
原创 ---String类---
在c语言中要使用字符串,只能通过字符指针或者字符数组,然后再通过函数进行各种操作,这种将变量和变量方法分开的方式显然不符合面向对象的编程,所以java中添加了String这个类。以参数regex拆分放到数组中,会删除regex对应字符,若参数后面无数字参数,那么就会全部都拆开,若有数字参数,那么就会按该参数的值来确定分为多少组。indexOf(), 查找字符,若出现着放回第一次出现的位置,若没有着放回-1,参数也可以是字符串。String只是一种类,而字符串的储存其实是储存在字符数组中的。
2024-06-15 15:51:37
806
原创 ----几种接口的使用---
compareTo这个方法的返回值是int类型的,如果你想要按照升序的方法排序,那么就返回一个大于0的数,降序则是一个小于0的值,这里Compareable接口里面已经是实现了排序的方法,而这个方法是根据compareTo这个方的放回值来确定排序的升降。对于给数组中的变量成员排序,我们能想到用sort,根据成员之间的大小进行排序,那么如果数组中的成员是对象的话,单单只是用sort去排序肯定是步成功的,因为并不知道要根据什么去排序,那么如过要根据具体类里面的成员去比较,那么就要重写这个方法。
2024-06-12 22:58:19
392
原创 ---java 抽象类 和 接口---
再面向对对象的语言中,所以的对象都是通过类来描述的,但如果这个类无法准确的描述对象的话,那么就可以把这个类设置为抽象类。实例这里用到abstract修饰,表示这个类或方法是抽象方法因为会重写motifs里的show方法,所以无论里面写什么都不会被执行,那么就把他写成抽象方法然后再子类中重写她,可以说抽象类就是用来被继承的,而抽线方法就是用来被重写的要注意的是,抽象类中可以有普通方法和成员变量,甚至类里面都可以没有抽象方法但是如果里面有一个抽象方法,那么就必须要把这个类用abstra修饰。
2024-06-09 18:53:25
711
原创 --- JAVA 多态 ---
这里用到一个关键字,instanceof ,用来确认lei这个类否是后面hh的变量,若是表达式为true 否者为false,只有当lei这个类是后面hh的父类是,才能使用向下转型,将lei强转为hh,然后使用一个hh类型的变量tmp去接收,这样就可以同过tmp去调用子类的成员了。再子类的父类中有相同的方法,且该方法的放回值,参数,名字相同,且子类的访问权限大于等于父类在调用父类的该方法时,子类的方法会重写父类的方法啊,所以当调用的父类的方法,实际执行的是子类的方法。同过父类调用子类的方法。
2024-06-06 21:30:31
201
原创 ----JAVA 继承----
特别注意,若父类有自己写的有构造方法,且需要传入参数,那么子类必须用super()调用父类构造方法,且要放再第一行,有父才能有子,所以再初始化过程中是要先初始化父类的成员,再初始化子类的成员。super()和this()是不能同时同时存在的,因为你子类的构造方法必定会要调用父类的构造方法,而你有调用了子类的另一个构造方法,这样就必定会形成一个循环。若父类和子类有相同的变量,子啊调用时默认调用子类的,可以理解再寻找成员变量时是先再子类中寻找,若子类中没有,那么就在父类中寻找。且父类的执行顺序再子类之上。
2024-06-02 21:07:35
515
原创 在谈static 和 代码块
静态成员变量是类的属性,因此是再加载类时就给他开辟了空间并初始化了的,也就是说再还未实例化类的时候,静态代码块中的代码就已经执行了并再方法区开辟了一块空间。而static修饰的成员叫做静态成员,储存在方法区中,也叫类成员,他不是那个对象特有的成员,而是所有成员都共有的变量 like this。由同一个类实例化成对象,他们的成员在每一个类中是独立的,like this。1,他不属于某个类,也是每个类所共有的,你在每个类中调用的都是同一个成员。代码块一般分为普通代码块,构造代码块,静态代码块,同步代码块。
2024-06-01 18:14:20
315
原创 ——类和对象—java——
java是一门存面向对象的语言,在面向对象的语言中一切皆是对象,主要是依赖与对象的交互实现目的,比如你要买个手机,在面向过程的语言中,你会为了买到喜欢的搜集去搜集各种资料,cup,屏幕,屏幕刷新率等等,而在面向对象的语言中,你只需要把你想要的手机的特点给一个人说,让后这个人就会给你买到你想要的手机,而不会有自己去搜集资料这个过程,而这个人也就是我们所说的对象认识类类的定义需要用的class关键字,类的基本形式为一个类由 成员变量 和 成员方法俩部分组成 dog就是类的名字类的实例化。
2024-05-19 14:14:36
570
1
原创 基于顺序表实现通讯录
通讯录的运作与哪里和我们之前实现的顺序表很相似,对于通讯录的增删查改也能通过我们顺序表实现的增删查改实现,需要做的也就是些包装工作。
2024-04-28 20:48:16
247
1
原创 数据结构——顺序表的实现
传入的参数是地址因为要对s进行修改,当进行尾插时要判断空间大小,ListNode_space然后直接将要储存的值赋给arr即可,这里的arr可以当作是数组。使用起来很简单,但设置后大小便不能在改变了,不够灵活且对与大量数据的读写如果设置的内存大了就会浪费,少了又不够,这就需要使用动态顺序表了。数据结构反 映数据的内部构成,即数据由那部分构成,以什么⽅式构成,以及数 据元素之间呈现的结构。使用动态函数申请的空间来储存数据,这样就能有效的减少内存的浪费,并且能处理大量数据。有了空间 就可以实现数据的储存了。
2024-04-14 09:52:24
366
1
原创 动态内存分配
在我们现已经找到的俩种开辟内存的方式int a = 0;这俩种方式在开辟内存时大小就是确定的,大小也不能在运行后改变,当实际上有很多变量的大小是不确定的,甚至要在程序运行后继续增加或者减少内存,所以就引用了动态内存分配,让程序员可以自己按需申请和使用空间。
2024-04-04 11:00:57
243
1
原创 自定义类型 结构体
struct是关键字 Per是给结构体起的名字结构体的使用hadage是变量,该变量的类型是struct Perhadage1是按结构体定义顺序初始化的hadage2是使用操作符 . 指向你想要赋值的对象hadage.age 指向的就是结构体定义的 int age;
2024-03-31 22:38:42
372
1
原创 函数strcat和strcpy和strncat
strcat字符串拼接 标准使用形式后面的str数组是要进行拼接的目标字符串,前面的arr是接受目标字符串的数组整体的操作就是将str中的数组拼接到arr数组中,str字符串的首元素地址会在arr数组的第一个‘\0’开始拼接并覆盖整个’\0‘拼接也会将str中的’\0‘拼接。
2024-02-25 13:21:32
354
1
原创 重开人生小游戏
我还设置了一个源文件专门用来储存随机事件,这样是我以后再增加事件会更加的简单也会方便查找,但是当我运行的时候发现事件会重复,于是我苦苦思考,想出了使用一个全局的数组和变量用来储存使用过的事件对应的case,成功解决了这个问题,但是在使用时也不能忘记要初始化。就会出现一些变量不能在源文件之间互通,比如贯穿整个程序的year变量等等,于是我使用了extern 修饰使变量的生命周期的程序的一样长,只有在结束程序之后才会销毁变量,这样是我解决了初始值互通的问题,让后以后在每次游戏开始时只需要把变量初始化就行。
2024-02-21 23:12:21
365
1
原创 c语言底层基础 数字储存 原码 补码 反码
数字在计算机中是以二进制为储存的,整形占的是4个字节32个bit位,比如-2以二进制写出来就是。10000000000000000000000000000010 也就是原码,在计算机中储存数值以补码的形式储存,正数的原反补码都相同,而复数需要转换。这个最高位0叫做符号位,1位负数,0位正数。当然补码也能先取反然后再加一直接得到原码。当符号位不变,其他位取反时得到反码。可以知道它们之间的装换方式为。再将反码加一得到补码。
2024-02-05 23:09:22
342
1
原创 c语言分支循环语句
while循环其实和for循环很相似只不过for循环只有一个判断循环条件看起来很复杂,但也有他的好处,对于更加复杂的循环体其实for循环能有奇效,就比如求最大公因数时就用while循环,循环体是c语言的个重要的知识板块,也是最基础的,也是用的较多的一个板块,也是出错误的常驻地点,需要对循环体知识需要熟练掌握,对于精进c语言很重要!这是我使用次数最少的循环体,不过在我做小游戏的时候的菜单界面都是用的这个循环,挺好用的对于这个。c语言的循环语句我学了有do while ,for, while循环这三种。
2024-02-05 15:22:08
483
1
原创 c语言三子棋代码
棋盘的打印也是个有难度的点,还涉及到人机的交互,对于电脑下棋有涉及到了随机数的生成,是个对学了20来天的知识的很广的一个练习,对自己掌握的知识的很好的一个测试。难点为对二维数组的理解让二维数组储存输入的位置,同时让棋盘保持整齐。学了二维数组用二维数组储存其盘的子,从而实现三子棋。可以便捷的更改棋盘大小。
2023-12-01 17:51:32
23
1
原创 如何使创建的c源文件自动带有自己想要的代码
可以使用everthing查找,然后可以使用vs打开,在里面在加入自己想要加的代码让后保存下让这个覆盖下原文就好了。因为c++的源文件在创建的时候就是复制这是这个文件所以只需要更改这个文件,以后创建的文件就会带有自己加上去的代码了。先去自己vs下载文件里找到这个文件。
2023-11-20 15:01:36
111
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人