自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 JAVA学习

3、当JVM虚拟机启动之后,会自动的启动多条线程,其中有一条线程就叫main线程,他的作用就是去调用main方法,并执行里面的代码,在以前,我们写的所有代码,其实都是运行在main线程中的。2、如果我们要给线程设置名字,可以用set方法进行设置,也可以构造方法设置(要创建构造方法)3、创建自己的类的对象(该对象表示多线程要执行的任务)2.重写call(是有返回值的,表示多线程运行的结果)3、创建子类的对象,并启动线程(调用start方法)5.创建Thread类的对象,并启动(表示线程)

2023-06-19 22:01:20 308

原创 JAVA学习

CopyDirectory()方法是将文件夹中的内容直接拷贝到目的地,CopyToDirectory()是将文件夹直接拷贝到目的地。在压缩流中压缩包中的每一个文件或者是文件夹都是一个ZipEntry对象(获取并拷贝),在获取完所有的文件后再获取会返回NULL。它被包含在进程之中,是进程中的实际运作单位。解压的本质:把每一个ZipEntry按照层级拷贝到本地另一个文件夹中。压缩就是将文件中的文件或文件夹变成ZipEntry对象拷贝进压缩包中。并行:在同一时刻,有多个指令在多个CPU上同时执行。

2023-06-15 21:40:42 338

原创 JAVA学习

解决:需要让javabean实现Serializable接口(是一个标记行接口,一旦实现表示该类可以被序列化)使用对象输出流将对象保存到文件时会出现NotSerializableException异常。当要序列化多个对象时可以将他们全部放入一个集合中。作用:不会把当前属性序列化到本地文件当中。作用2:字节流想要使用字符流中的方法。序列化流:可以把对象写到本地文件中。作用1:指定字符集读写(已淘汰)IO流随用随创建,不用就关闭。成员方法和字节打印流一模一样。是字符流和字节流之间的桥梁。

2023-06-12 22:00:55 451

原创 JAVA学习

开关位置:创建对象的第二个参数,默认是false:表示关闭续写,此时创建对象会清空文件,手动传递true:表示打开续写,此时创建对象不会清空文件。细节2:这个方法无法获取文件夹的大小,如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起。细节3:creatNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件。细节1:creatNewFile如果当前路径表示的文件是不存在的,则创建成功,方法返回true。

2023-06-11 22:01:16 917

原创 JAVA学习

Error:代表的系统级别错误(属于严重问题)系统一旦出现问题,sun公司会把这些错误封装成Error对象。Error是给sun公司用的,不是给我们程序员用的,不用管。是跟抽象方法的第一个参数有关,这个参数是什么类型的,那么就只能引用这个类中的方法。作用2:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况。把异常的名称,异常原因及异常出现的位置等信息输出在了控制台。细节:数组的类型,需要跟流中数据的类型保持一致。作用1:异常是用来查询bug的关键参考信息。格式:数据类型[]::new。

2023-06-09 20:53:28 216

原创 JAVA学习

注意1:中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程。细节2:Map里面的of方法,参数是有上限的,最多只能传递20个参数,10个键值对。如果某个数据不能被修改,把它防御性的拷贝到不可变集合中是个很好的实践。注意2:修改Stream流中的数据,不会影响原来集合或者数组中的数据。把已经有的方法拿过来用,当做函数式接口中的抽象方法的方法体。方法apply形参:依次表示流里面的每一个数据。collect:收集流中的数据,放到集合中。简单理解:不想让别人修改集合中的内容。

2023-06-08 21:55:04 41

原创 JAVA学习

在添加数据的时候,如果键不存在,那么直接把键值对对象添加到map集合当中,方法返回null。在添加数据的时候,如果键是存在的,那么会把原有的键值对对象覆盖,会把被覆盖的值进行返回。如果某个数据不能被修改,把它防御性的拷贝到不可变集合中是个很好的实践。将键装入一个单列集合中在通过单列集合去找对应的值。当集合对象被不可信的库调用时,不可变形式是安全的。新的统计思想:利用Map集合进行统计。map是双列集合的顶层接口。Map的遍历方式(键找值)Map的遍历方式(键值对)方法形参的个数是可以变化的。

2023-06-07 22:00:43 43

原创 java学习

3.如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nil,这些Nil视为叶节点,每个叶节点是黑色的。1.如果我们在定义类、方法、接口的时候,如果类型不确定,就可以定义泛型类、泛型方法、泛型接口。4.如果某个节点时红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情况)5.对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。2.如果类型不确定,但是能知道以后能传递某个继承体系中的,就可以使用泛型的通配符。1.每一个节点或是红色的,或者是黑色的。

2023-06-06 22:01:05 48

原创 JAVA学习

方法的底层会根据第二个参数来创建新的数组,如果新数组的长度是小于老数组长度的,会部分拷贝,如果新数组的长度等于老数组的长度,会完全拷贝,如果新数组的长度大于老数组的长度会默认补上初始值。细节2:如果查找的元素时存在的,那么返回的是真实的索引但是,如果要查找的元素是不存在的,返回的是-插入点-1。分块的原则1:前一块中的最大数据,小于后一块中的所有数据(块内无序,块间有序)细节1:二分查找的前提是数组中的元素必须是有序的,数组中的元素必须是升序的。增强for的底层就是迭代器,为了简化迭代器的代码书写的。

2023-06-04 21:50:16 41

原创 JAVA学习

如果一个接口里面没有抽象方法表示当前接口是一个标记接口,cloneable表示一点实现,那么当前类的对象就可以被克隆如果没有实现,当前类的对象就不能被克隆。tostring默认返回的是地址值如果我们要获取对象内部的属性值就要重写tostring方法。equals默认比较的是地址值,idea提供了重写方法(重写后的方法比较的是对象重点属性值)object类中的方法可以被所有子类访问,所以我们要学习object类和其中的方法。是java中的顶级父类。把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制。

2023-06-01 21:30:31 44

原创 JAVA学习与第一个JAVA项目收获

今天还完成了第一个Java项目,在写项目的过程中我学会了swing的基本使用和熟练了java面向对象内容知识的使用,对类,接口,继承等的使用更加熟练,也提升了做项目的逻辑能力,总的来说虽然项目还有一些模块没有完成但是让我收获颇丰。random:返回值为double的随机值,范围[0.0,1.0)1970年1月1日00:00:00(世界)1970年1月1日08:00:00(中国)私有化构造方法,所有的方法都是静态的。max:获取两个int值中的较大值。pow:返回a的b次幂的值。floor:向下取整。

2023-05-30 22:10:24 97

原创 JAVA学习拼图项目

绑定监听:当事件源上发生了某个事件,则执行某段代码。当你对组件干了某件事情之后,就会执行相对应的代码。事件源:按钮,图片,窗体........ActionListener:动作监听。MouseListener:鼠标监听。KeyListener:键盘监听。事件就是可以被组件识别的操作。如:鼠标单击、鼠标划入。

2023-05-29 21:52:31 30

原创 JAVA和二分查找

/ 范围缩小到 [mid+1, right]// 范围缩小到 [left, mid-1]// 范围缩小到 [mid+1, right)while (left + 1 < right) { // 区间不为空。// 范围缩小到 [left, mid)left = mid;// 范围缩小到 (mid, right)// 范围缩小到 (left, mid)

2023-05-28 23:04:22 33

原创 JAVA学习10

想要让哪个类拥有一个行为,就让这个类实现对应的接口就可以了。2、当一个方法的参数是接口时,可以传递接口所有的实现类的对象,这种方式称之为接口多态。public class 类名 implements 接口1,接口2{}实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。2、JDK8:接口中可以定义有方法体的方法。注意1:接口和类的实现关系,可以单实现,也可以多实现。4、私有方法分为两种:普通的私有方法、静态的私有方法。继承关系,只能单继承,不能多继承,但是可以多层继承。

2023-05-25 22:00:28 31

原创 JAVA学习9

由于每一个子类执行的内容是不一样,所以,在父类中不能确定具体的方法体。特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次。用final修饰的引用数据类型地址值不能发生改变,内部的属性值还是能发生改变。特例:如果方法中的代码是抽取其他方法中的共性代码,这个方法一般也私有。3执行时机:我们在创建本类对象的时候会先执行构造代码块在执行方法。引用数据类型:地址值不能被修改,内部的属性值可以修改。final修饰的方法:最终方法,不能被重写。final修饰类:最终类,不能被继承。

2023-05-24 22:18:52 40

原创 5月23学习总结

定义方法的时候,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利。包的规则:公司的域名反写+包的作用,需要全部英文小写,见名知意。可以转换成真正的子类类型,从而调用子类独有功能。使用java.lang包中的类时,不需要导包。使用父类型作为参数,可以接收所有子类对象,如果同时使用两个包中的同名类,需要用全类名。变量调用:编译看左边,运行也看左边。方法调用:编译看左边,运行看右边。使用同一个包中的类时,不需要导包。同类型的对象,表现出的不同形态。父类类型 对象名称=子类对象。

2023-05-23 21:06:01 44

原创 JAVA学习8

定义方法的时候,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利。this:理解为一个变量,表示当前方法调用者的地址;在多态形势下,右边对象可以实现解耦合,便于扩展和维护。使用父类型作为参数,可以接收所有子类对象,变量调用:编译看左边,运行也看左边。方法调用:编译看左边,运行看右边。super:代表父类储存空间。同类型的对象,表现出的不同形态。父类类型 对象名称=子类对象。自动类型转换、强制类型转换。体现多态的扩展性与便利。不能调用子类的特有功能。

2023-05-21 22:16:51 37

原创 JAVA学习7

在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。子类A继承子类B,父类B可以继承父类C每一个类都直接或间接的继承于object。成员变量 非私有:能 private:能(不能用)成员方法 非私有:能 private:不能。当父类的方法不能满足子类现在的需求时,要进行方法的重写。this:本类的成员变量,super:父类的成员变量。JAVA只支持单继承,不支持多继承,但支持多层继承。注意:子类只能访问父类中非私有的成员。

2023-05-17 23:26:29 42

原创 树与图的关键知识复习

我将树与图章节我认为还不太熟练的代码实现重温了一遍,今天的总结便是我重新手敲的代码。

2023-05-17 23:07:26 29

原创 c++stl

查找的数组下标=lower_bound(数组要查找的开始位置,数组要查找的结束位置后面,要找的数)-数组开始的位置。对于有序容器(重点)快速二分查找出第一个大于等于指定数的位置(下标),如果没有找到,返回最后一个数据后面的位置。sort格式:void sort(要排序元素的起始地址,要排序元素的结束地址,比较函数);void binary_search(数组首地址,结束地址,要查找的数)快速查找出第一个大于指定数的位置(下标),其他同上。定义:map<类型,类型> m;.top()返回栈顶元素。

2023-05-14 23:01:56 43

原创 JAVA学习6

public stringJoiner(间隔符号,开始符号,结束符号):创建一个stringJoiner对象,指定拼接时的间隔符号,开始符号,结束符号。public stringJoiner(间隔符号):创建一个stringJoiner对象,指定拼接时的间隔符号。与stringBuilder一样也可以看成是一个容器,创建之后里面的内容是可变的。static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。调用方法:类名调用(推荐),对象名调用。范式:限定集合中存储数据的类型。

2023-05-11 23:24:12 42

原创 JAVA学习5

public string tostring():通过tostring()就可以实现把stringBuilder转化为string。boolean equalslynorecase(要比较的字符串) 忽略大小写的比较。public stringBuilder reverse():反转容器中的内容。boolean equals方法(要比较的字符串)完全一样是才是true。1,字符串的内容是不会改变的,它的对象在创建后不能被更改。概述:可以看成是一个容器,创建后里面的内容是可变的。作用:提高字符串的操作效率。

2023-05-10 23:12:09 75

原创 5月9日总结

原本今天想总结java学习但是我学习java的笔记本不翼而飞(裂开),所以今天来水一期总结。

2023-05-09 23:35:37 19

原创 拓扑排序与关键路径

关键路径上的节点有个很重要的性质,它们的ETV与LTV相等,那么就简单了,就转变为求每个节点的ETV和LTV不就行了,那么怎么求呢,这就要用到我们的拓扑排序了。原理:拓扑排序的实现原理很简单,对图中的每个点进行入度统计,每次将入度为零的点从图中删除并且将与他相连的边也删除此时要更新其他点的入度,重复上述过程,如果最后不存在入度为零的节点则说明有环。LTVLatest Time Of Vertex):事件最晚发生时间,就是每个顶点对应的事件最晚需要开始的时间,如果超出此时间将会延误整个工期。

2023-05-08 23:26:52 92

原创 JAVA学习4

private:1,是一个权限修饰符,2,可以修饰成员(成员变量和成员方法),3,被private修饰的成员只能在本类中才能访问。如果我们自己没有写任何的构造方法,虚拟机给我们加一个空参构造方法。推荐无论是否使用,都加上无参和有参的构造方法(一键生成当我没说)提供每一个成员变量对应的setxxx()/getxxx()this:可以区分成员变量和局部变量。作用:在创建对象时给成员变量进行赋值。2、成员变量使用private修饰。成员变量:类中方法外的变量。3、提供至少两个构造方法。局部变量:方法中的变量。

2023-05-07 23:21:05 26

原创 再看最小生成树

要想生成的树权值是最小的,我想很多人都会立刻想到:我就尽量选权重小的边不就行了,这就是克鲁斯卡尔算法的核心思想,但我们要注意几个问题,1,用什么样的排序方法,2,怎么判断一条边能否加入树中。排序方法我们使用快排,快排的排序速度优秀,实现也相对简单(c++直接用sort)。我记得前几次的总结有说过最小生成树的两种算法,但是总结的不够到位也没有实现的代码,所以今天这篇总结就当做老覃面试前的复习和对最小生成树的再一次学习。

2023-05-04 21:33:39 31

原创 JAVA学习3

人打开门,人是一个类,门是一个类,也就是我们的目标对象,打开门,就是对门做处理,我们直接调用门类中的开门方法,而面向过程就要考虑怎么开门?如上,我的两个方法都是对传入的数做加法,我就可以把它们的名字取成一样的,在调用时通过输入的形参的数量,顺序和类型的不同,JAVA虚拟机会分辨要调用哪个方法。今天步入了面向对象的学习,说实话JAVA前面的基础语法与c语言很像但是也有一些不一样,先总结一下我个人认为的一些需要注意的点。其实我已经开始学习类的定义与使用了,但远远没达到可以总结的地步,今天的总结就写到这吧。

2023-04-27 23:19:15 32

原创 java学习2

强制转换:如果把一个取值范围大的数值赋值给取值范围小的变量,是不允许直接赋值的,如果一定要这么做就需要加入强制转换。2,byte,shot,char三种类型的数据在运算的时候都会直接先提升为int,然后再进行运算。今天学习了IDEA的安装与第一个程序的运行,先来总结一下IDEA项目的创立吧。1,取值范围小的,和取值范围大的进行运算,小的会先提升为大的,在进行运算。数据类型不一样,不能进行计算,需要转成一样的才可以进行计算。点击加号,即可创建一个新的模块(不要改路径)

2023-04-26 23:18:42 33

原创 java学习1

今天开始了java的基础学习,学习新东西是一件让人兴奋的事,今天学的不多(因为要复习树和图去准备老覃的测试),但是总结还是要写。我今天主要学习了人和计算机的交互:使用cmd窗口,首先打开cmd:同时按住win+r在输入框中输入cmd就可打开cmd窗口。具体操作:右击我的电脑->属性->高级系统设置->环境变量->path->添加。我们想要在任意目录下都可以打开指定的软件,就可以把软件的路径配置到环境变量中。1,盘符名称+冒号:用来切换要操作的文件盘。3,cd目录:进入单级目录。5,cd\:回退到盘符。

2023-04-25 23:27:46 24

原创 再看树和图与反思

我想这只能依靠接下来几天对算法的思考和刷题来解决了,我想只要肯花时间,肯思考,再难的问题都会被我攻克。然后就是图和树的基础问题,我无法想象我连图的遍历都解决不来,【深基18.例3】查找文献 - 洛谷,这个题考的是不用邻接矩阵完成图的遍历,我直接傻眼(原本我在想这么简单的题为什么是个黄题),实际解决起却让我吃尽了苦头,我想是我把很多问题想简单了,对一个知识不再抱有敬畏与思考,到真正要用的时候才发现自己没有完全掌握,我打算把洛谷图的问题这一节解决来打实自己的图论基础,也要开始查漏补缺了。

2023-04-24 21:35:36 53

原创 学生成绩管理系统

今天发现了程序的最后一个bug(可能吧),话说二叉搜索树的删除真的太折磨我了,我在这上面吃尽了苦头。先开更改后的代码,在讲解我原本的思路错在哪里。今天蓝桥杯出成绩了,省二,对摆烂的自己来说已经是一个很不错的成绩了,我想我应该可以更好,明天就要答辩了,好好休息了。我原本的代码为:p->data=t->data;t为s的父节点,这里如果直接交换p和t的值在节点为根节点时就会出现问题。

2023-04-23 23:16:04 47

原创 第一次项目总结

上面说到的,很多时候出错误或是不知道怎么连接,会很烦躁,这时候保持冷静仔细思考是很重要的,仔细排查所有可能出错的地方,我是使用打标记的方法去排查错误,思考错误的原因,我想很快就可以找到错误的原因。

2023-04-21 00:01:07 35

原创 对简单动态规划一些总结

动态规划,一种极其精妙的解题方法,我把它理解为比记忆化搜索还要精简的搜索,我将几个题目回顾并总结以前学习过的一些动态规划。最近项目搞得比较紧,总结比较水,望见谅。

2023-04-20 00:06:49 21

原创 二叉搜索树

根据定义我们将插入分成两种情况,1,当树根为空时,我们就直接将输入的数据用根节点存储,2,当根不为空时,我们要根据二叉搜索树的定义,当输入值大于当前根的值时就递归向右找叶子节点将其插入,当输入值小于当前根的值时就递归向左找叶子节点插入。什么是二叉搜索树:二叉搜索树是一棵有以下性质的二叉树:1, 若左子树非空,则左子树上所有结点关键字均小于根结点的关键字值,2:若右子树非空,则右子树上所有结点关键字均大于根结点的关键字值,3: 左、右子树本身也分别是一棵二叉排序树。其实二叉搜索树的创建就是将节点插入树中。

2023-04-18 23:46:52 28

原创 easy.x的学习总结

有了窗口有了图形那怎么能少了颜色,easy.x的颜色是很丰富的,通过调整三原色的比例你可以以得到任何你想要的颜色(打开电脑的画板即可获取),easy.x 还声明了一些常见颜色的宏定义比如:RED,BLACK等。那就来学easy.x吧,言归正传,这几天学习了easy.x,我感觉它真的很有意思,在这里总结一些我的学习心得。可以根据自己的需要使用,那么有打开窗口就会有关闭窗口的函数(毕竟要有始有终嘛),closegraph();,可以关闭自定义的窗口,还有一个很重要的函数:cleardevice();

2023-04-17 23:32:05 121

原创 项目总结日记

为了这次的项目,我学习了easyx来做图形页面(虽然做的很拉(悲)),还学习并实现了二叉搜索树,这里说一下我对二叉搜索树的理解,我对它的印象就三个字:真的快!我选择的是成绩管理系统,我有现成的五子棋,但是那个做的太拉了也没有用到多少数据结构的相关知识,所以在听到二叉搜索树这个数据结构后我就想好了要做什么那就是成绩管理系统。这几天终于开始做项目了,原本轻松的日子终于有了些紧迫感,这篇总结就来介绍一下我的项目和做项目的思路。目前已完成成绩的录入与修改。这简单低奢(垃圾)的主页面,

2023-04-16 23:12:45 35

原创 4月13号总结

是时候来写(水)今天的总结了,首先来填补昨天的遗憾,哈夫曼编码的实现,应老覃的要求我基本都是c语言手敲的代码,老规矩先讲思路。回溯时走左分支则生成代码0(1),走右分支则生成代码1(0)。kruskal算法是选边而prim是选择点,我们从起点(假设是1)开始,我们把1打上标记代表他已经在最小数中了。很显然按照贪心的思想我们肯定是找从1出发走最少路径能走到的点,很明显是点2,我们将其标记纳入树中(后宫)。最小生成树(prim ):两个最小生成树的代码实现我都还在努力,今天先总结prim 算法的思路。

2023-04-13 23:14:14 35

原创 哈夫曼树,Kruskal,优先队列

昨天对于优先队列的总结太水了(自己都看不下去),我们从新来一遍,优先队列是一棵特别的完全二叉树,它特别在它的节点的双亲节点比自己的子节点都要大或小,那么根节点就理所当然是整棵树中最大或最小的节点了。向上调整:当我们要向堆中 直接插入元素时,我们一般将其直接插在堆的末尾位置,这是我们就要向上调整,我们可以通过完全二叉树的性质找到它的父节点与其对比,若父节点大于插入元素便将其与父节点交换位置,重复这个过程直到其父节点不再大于插入元素为止。至于哈夫曼编码,咳咳,我还暂时不知道怎么实现,先按下不表(狗头)。

2023-04-12 22:01:47 83

原创 第一次测试总结

这个东西折磨了我一整个自习课,单调队列的思路十分简单,我们拿一组数:5 2 7 4 3(是不是很眼熟),单调队列就是一种维护队列种元素顺序一直为有序(递增或递减),我们来模拟一下它的过程(以递增为例),先将5直接加入队列(因为是一号元素),在将2加入队列,我们发现2小于5,队列不再单调递增,我们便把前面所有大于2的数踢出,于是此时队列中只剩下2一个元素,加入7,并未改变队列增减性,再以此类推加入剩余元素。至于实现,目前可参考的c语言实现太少(要去学c++了),我相信不久之后我就能将其填补上。

2023-04-11 22:09:48 51 1

原创 图的学习2

我们要求得任意两个城市之间的最短路程,按Floyd的思想是这样的:如果要从点1走到点3,我们有两种方法,1,直接从点1走到点3路程为6。这里我用到了1中所讲的链式前向星来储存图,迪杰斯特拉算法的时间复杂度为O(n*m),用堆优化后可以达到log级别,迪杰斯特拉算法的扩张性比弗洛伊德算法更强,但是迪杰斯特拉算法也有他的缺点那就是无法处理带有负权的图,果然十全十美的东西是不存在的(悲)。在图的学习1中我已经总结了图的定义和图的储存这两块知识,今天就要来总结一下图章节的重点:最短路径算法。

2023-04-10 21:56:31 53

贪吃蛇(1).exe

贪吃蛇(1).exe

2022-12-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除