自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL数据库基础知识详解

尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其 如此,还不如设计时,将int类型提升为bigint类型。1. 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就 是-2^31到2^31-1。如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则 不创建。数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除。

2024-06-23 19:51:25 882

原创 Map和Set的知识点详解

线性探测的缺陷是产生冲突的数据堆积在一块,这与其找下一个空位置有关系,因为找空位置的方式就是挨 着往后逐个去找,因此二次探测为了避免该问题,找下一个空位置的方法为:Hi = (H0 +i² )% m, 或者: = (H0 - i²)% m。首先,我们需要明确一点,由于我们哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一 个问题,冲突的发生是必然的,但我们能做的应该是尽量的降低冲突率。已知哈希表中已有的关键字个数是不可变的,那我们能调整的就只有哈希表中的数组的大小。

2024-06-22 13:24:19 961

原创 优先级队列(堆)的知识点详解

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。关于PriorityQueue的使用要注意:2. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常。

2024-06-21 23:26:54 1097

原创 二叉树的基本操作以及一些二叉树相关例题

这个题我们首先进行结构上的判断,首先判断root节点是否为空,如果为空返回true,然后判断左右子树的节点,首先看左右子树是否为空,然后判断左右子树的值。这个题首先我们考虑他们是否相同,可以利用例题1的方法进行判断,第二种情况就是左边的是它的左子树,第三种情况就是右边的是它的右子树。第三种是两个都不为空,值不一样,不是两课相同的树。第一种是一个为空一个不为空,则不是两个相同的树。这个题需要找一个临时变量,然后进行交换。第二种是如果两个都为空,则是相同的树。这个例题需要首先考虑的是根的三种情况。

2024-06-20 18:14:00 279

原创 二叉树的知识详解

由于现在大家对二叉树结 构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等 二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,如果按 照某种规则进行约定,则每个人对于同一棵树的遍历结果肯定是相同的。对于深度为K的,有n 个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。

2024-06-19 23:15:05 1026

原创 栈和队列的知识点详解

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。在实际工程中,使用Deque接口是比较多的,栈和队列均可以使用该接口。通过链表实现栈,可以使用单链表和双链表。

2024-06-18 18:19:06 947

原创 LinkedList与链表

(LinkedList的官方文档)LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。

2024-06-17 18:23:52 871 2

原创 Java中ArrayList和顺序表

在集合框架中,ArrayList是一个普通的类,实现了List接口【说明】1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。

2024-04-22 19:11:39 1020 8

原创 Java包装类和泛型的知识点详解

一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化.方法限定符 <类型形参列表> 返回值类型 方法名称(形参列表) { ... }

2024-04-11 19:25:52 753 12

原创 Java时间和空间复杂度的知识详解

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作 空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间, 在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计 算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

2024-04-02 19:57:33 679 5

原创 Java数据结构(初识集合框架)

Java 集合框架 Java Collection Framework ,又被称为容器 和其实现类 classes。其主要表现为将多个元素 container ,是定义在 java.util 包下的一组接口 interfaces element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索 retrieve 、 管理 manipulate ,即平时我们俗称的增删查改 CRUD。

2024-03-26 19:05:00 361 1

原创 Java异常知识点详解

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构.如果自己创建了一个异常·类,继承exception的话,就是受查异常/编译时异常如果继承RuntimeExcption的话,此时这个异常就是非受查异常/运行时异常自定义的异常一定继承这两个异常。具体方式:1. 自定义异常类,然后继承自Exception 或者 RunTimeException2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因。

2024-03-26 11:17:36 978 4

原创 Java-String知识点讲解(下)

String知识点讲解。

2024-03-20 19:50:08 1183 7

原创 Java-String知识点讲解(上)

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提 供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String类。

2024-03-18 19:32:38 813 3

原创 Java项目图书馆管理系统

Java图书管理系统的一些基本操作

2024-03-13 19:55:40 408 1

原创 Java接口

Object 类中存在一个clone方法,调用这个方法可以创建一个对象的“拷贝”,但是要想合法调用clone方法,必须要先实现Cloneable接口,否则就会抛出CloneNotSupportedExcption异常。Java中内置了一些很有用的接口,Cloneable就是其中之一。

2024-03-11 11:50:48 347 2

原创 Java抽象类和接口的知识点讲解

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类abstract关键字的用法。1,包含抽象方法的类,必须拿abstract修饰,此时这个类叫做抽象类。2,抽象类不能被实例化。3,如果一个普通类继承了一个抽象类,那么此时这个类,必须重写这个抽象方法。4,抽象类和普通类的区别在于1,可以和普通类一样有成员变量,成员方法。2,就是多了抽象方法。3,多了不能实例化。

2024-03-10 14:10:49 931 2

原创 Java多态深度讲解

在java中要实现多态,必须要满足如下几个条件,缺一不可1. 必须在继承体系下。2. 子类必须要对父类中方法进行重写。3. 通过父类的引用调用重写的方法 多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。静态绑定:也称为前期绑定(早绑定),即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。典型代 表函数重载。动态绑定:也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体 调用那个类的方法。

2024-03-08 16:03:31 823 1

原创 Java继承与多态知识点详解

1,什么是封装对类外隐藏实现细节,体现了安全性,从实现上来说,使用private关键字。2,为什么要封装体现安全性。

2024-02-29 19:41:24 853 1

原创 python文件操作的讲解(日期计算器的案例,单词逆序,旋转字符串,统计字符串前缀,文件搜索工具,pip的使用,二维码生成工具,操作excel)

正是一个系统的资源是有限的,因此一个程序能打开的文件个数,也是有上限的。最大打开文件8189。GBK,UTF8,实际开发的时候,就需要保证,文件内容的编码方式和代码中操作文件的编码方式匹配。1,针对上述字符串,使用空格进行切分,字符串split方法,可以指定分隔符,把字符串分成多个部分,放到一个list里。例如:s=“abcde”,旋转一次为“bcdea”,再旋转一次为“cdeab”,(把最左侧的字符,给放到最右侧去)python有一个重要的机制,垃圾回收机制(GC),自动的把不使用的变量,给进行释放。

2023-12-11 19:51:30 814 2

原创 python中字典的知识详解

(哈希表这个结构,能够以“常数级”时间复杂度来完成增删改查)“常数级”:就是无论字典中有多少元素,新增,修改,删除,操作,都是固定时间,不会因为元素多了,操作就慢了。keys获取到字典中所有的key:(返回的结果,看起来像列表,又不完全是,它是自定义类型,使用的时候也可以把它当做一个列表来使用)(不可变的对象,一般就是可哈希的,可变的对象,一般就是不可哈希的)字典本质上是一个哈希表,哈希表上的key要求是“可哈希的”,也是可以计算出一个哈希值。对于列表来说,使用in比较低效,而使用[ ],是非常高效的。

2023-12-10 15:10:47 353

原创 python中的列表和元组的知识讲解。

切片操作是一个比较高效的操作,进行切片的时候,只是取出了原有列表的一个部分,并不涉及到“数据的拷贝”,假设有一个很大的列表,进行切片,切片的范围也很大,即使如此,切片的操作仍然非常高效。列表里面可以管理很多元素,通过下标访问的方式来获取到列表中的元素,用到一个下标访问运算符吗[ ],中间写的这个整数,简称“下标”或者“索引”。8,可以使用内建函数len来获取列表的长度(元素个数),和字符串类似(len可以传字符串,列表,元组,字典,自定义的类==》动态类型)1,使用in来判定某个元素是否在列表中存在。

2023-12-10 10:07:26 1002

原创 python基础知识讲解(函数)

python中函数讲解。

2023-12-08 15:37:39 847 1

原创 python基础知识讲解(人生重开模拟器的代码演示)

注意:1,python的for和其他语言不同,没有”初始化语句“,“循环变量条件”,循环变量更新语句。(如果忘记循环变量的语句,循环会一直执行,停不下来了,直到手动强制结束程序。2,所谓的“可迭代对象”,指的是“内部包含多个元素”,能一个一个把元素区出来的特殊变量。3,针对每一年,都生成人生的经历,(依靠一定的随机因素+当前角色的属性)range里面的第一个参数是起始值,第二个是最后的值,第三个是步值。这是一个简易的游戏模板,里面包含了一些基础的知识。如果条件为真,则执行循环体代码,为假则结束循环。

2023-12-07 19:22:21 506 1

原创 python小白学习Python第二天(Python基础知识讲解)

(字符串在词典上越靠前,就越小,越靠后,就越大,针对中文字符串比较,是没有意义的,至少按照默认的字典来说,是没意义的,中文比较的本质就是多个字节构成的一个比较大的数字来进行比较的):+,-,*,/,**,//{先算乘方,然后是乘除,最后是加减。,在python中,一个语句写完之后,可以加上分号,也可以不加,通常情况下是不加的,如果加了也不算错。a,b=10,20,把10赋给了a,把20赋给了20。如果1为true,则执行1,如果2为true,则执行2.如果1,2都为false,则执行false。

2023-12-04 20:29:07 814

原创 0基础小白学习python,python基础介绍

Python中的变量的类型,不需要再定义变量的时候显示声明,而只是依靠初始化语句,根据初始化的值的类型来进行确定。在Python中,int的范围是无穷的,因此Python这里就没有long,byte,short这样的类型了。1+2-3这样是算式,在编程语言中称为表达式,算式的运算结果称为,表达式的返回值。2,运行错误,在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题。像1,2,3,4,5,6这样的称为字面值常量,+-*/称为运算符或者操作符。

2023-12-01 10:43:07 395 2

空空如也

空空如也

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

TA关注的人

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