java学习笔记
文章平均质量分 69
DU777DU
本人是西安科技大学准毕业生,目前还是一个新手,请大家多多指教
展开
-
B树系列原理
特征1. B树是一棵 多叉 && 平衡 && 搜索 树(B树中每个节点可以有多个Key,也有多个孩子)2. B树的每个节点在实现时都要人为规定Key的上限(KEY_LIMIT = ?)3. B树每一个节点中的Key都是按照Key的大小顺序保存的(线性结构)4. B树中所有路径(从根到叶子)的长度完全一样5. B树的高度增长是由分裂导致的,是朝上生长的,一旦高度变化所有子树的高度同一变化6. 节点中Key的个数记为size,则child的个数一定是s..原创 2021-09-04 19:16:39 · 369 阅读 · 0 评论 -
红黑树原理
特征红黑树是 “平衡” && 搜索 && 二叉树“平衡”:相较于AVL树来说,红黑树是一种“弱平衡” 定义:红黑树中,任意根到叶子结点的路径中,LEN(max) <= 2 * LEN(min)红黑树5条规则:①红黑树中的节点:或红或黑②根节点一定是黑色的③“叶子结点”一定是黑色的(红黑树的叶子为null)④红黑树中,任意路径(根到节点)中,红色和红色不能相邻⑤红黑树中,任意路径(根到节点)中,黑色节点的数量...原创 2021-09-04 16:28:55 · 396 阅读 · 0 评论 -
AVL树原理
特征AVL树是 平衡 && 搜索 && 二叉树1. 搜索树中序遍历一定是有序的,并且按照key的大小顺序排列任取节点,left.key < root.key < right.key2. AVL树中平衡的定义任取节点,要求 节点左子树的高度 和 节点右子树的高度 的高度差的绝对值不能超过 1平衡因子(Balance Factor / BF):bf就是节点的左右子树高度差,node.BF= H(node.left) - H(..原创 2021-09-04 15:45:55 · 295 阅读 · 0 评论 -
项目的模糊查找和分页
模糊查找1. 通配符模糊查询:LIKElike操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;但如果like后面没出现通配符,则在SQL执行优化时将 like 默认为 “=”执行通配符的分类:"%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)"_" 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。当然,也可以like "陈____",数量不限如果在使用like操作符时,后面没有使用通用匹配符(%或_),那么效果原创 2021-08-27 15:20:01 · 260 阅读 · 0 评论 -
Linux常见命令
1 打开文件 vim [文件名]2 退出文件 先按冒号:在输入q 然后回车3 编辑文件 vim打开文件后默认进入 normal mode,此时输入的按键都是特殊功能快捷键,而不是 文本编辑 要想编辑文件,需要进入 insert mode(编辑模式) 进入插入模式方式有很多 输入小写i 就能进入编辑模式(底层显示--INSERT--),光标移动到顶层此时可输入内容编辑完需要保存退出,而编辑模式不能直接退出;需要先回到normal mode(普通模式...原创 2021-08-24 21:59:42 · 153 阅读 · 0 评论 -
MAP哈希表
Map接口1. 说一下 HashMap 的实现原理?HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变HashMap的数据结构:HashMap是一个“散列表”的数据结构,即数组和链表的结合体HashMap 基于 Hash 算法实现的:①当我们往Hashmap中put元素时,利用key的hashCode重新hash计算出当前对象的元素在数组中的下标②存原创 2021-08-23 18:44:06 · 1057 阅读 · 0 评论 -
JAVA集合框架
集合的特点集合的特点主要有如下两点:①对象封装数据,对象多了也需要存储。集合用于存储对象②对象的个数确定可以使用数组,对象的个数不确定的可以用集合。因为集合是可变长度的集合和数组的区别①数组是固定长度的,集合可变长度的②数组可以存储基本数据类型,也可以存储引用数据类型,集合只能存储引用数据类型③数组存储的元素必须是同一个数据类型,集合存储的对象可以是不同数据类型Iterator接口Iterator接口,用于遍历集合元素的接口。在Iterator接口中定义了三个方法原创 2021-08-23 17:26:06 · 206 阅读 · 0 评论 -
JVM内存模型、垃圾回收、类加载
JVM内存模型堆(线程共享):是整个JVM中占据空间最大的区域,new的对象,都是在堆区方法区(线程共享):保存类对象,类加载的时候.class二进制字节码就是加载到内存中的方法区里,①包括类的基本属性②方法的具体指令也保存在方法区中,调用方法的时候就是在方法区里读取指令并执行③静态成员栈(线程私有):JVM栈和本地方法栈(jdk1.8以后不区分)JVM栈:java代码的调用栈本地方法栈:JVM内部的C++代码的调用栈程序计数器(线程私有):里面存放的就是一个地址原创 2021-08-22 23:11:06 · 235 阅读 · 1 评论 -
使用模板来实现页面
模板其实就是一个(缺失了一些关键信息)的html页面,我使用的是Thymeleaf模板使用模板的步骤:(1)先去编写html页面,使用thymeleaf中的一些(特殊标记符号,也就是占位符,比如th:each,th:text="${}",把这个html页面中的关键数据进行占位(2)在Servlet代码中获取到这些关键数据,再通过thymeleaf把这些关键性数据替换到Html页面中的特殊标记符号,也就是占位符中(3)而在对关键性数据进行替换之前,要先对thymeleaf模板进行初始化初始原创 2021-08-21 11:47:12 · 178 阅读 · 0 评论 -
单例模式两种方法
饿汉式:class singleton{private singleton(){};private static final singleton single = new singleton();public static singleton getInstance(){return single;}}懒汉式:class singleton{private singleton(){};private volatile static final singleton single原创 2021-08-20 12:10:11 · 128 阅读 · 0 评论 -
Java时间复杂度与空间复杂度
1.算法效率2.时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3常见时间复杂度计算举例3.空间复杂度原创 2021-07-23 13:26:45 · 293 阅读 · 3 评论 -
新版IDEA生成get、set和toString的方法快捷键
三个步骤1.选择generator(生成器)2.在generator面板选择想要生成的语句3. 选择想要生成方法的属性有哪些原创 2021-07-17 17:38:20 · 5050 阅读 · 1 评论 -
算法基础之简单介绍一下稀疏数组的用法
什么情况使用稀疏数组?因为有些二维数组的很多值是默认值0,因此记录了很多没有意义的数据-->稀疏数组稀疏数组特点:1)稀疏数组总是有3列,第一列记录行值(row),第二列记录列值(col),第三列记录数值(value)2)稀疏数组第一行是用来记录二维数组的行列数与非0数的3)稀疏数组的行数是原始二维数组非0个数+1,从第二行开始每一行记录一个原始二维数组的行号,列号,值原创 2021-07-15 15:53:20 · 122 阅读 · 4 评论 -
简单的使用一下增强for循环
1. 增强for循环的作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)2. 增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。3. 增强for循环的缺点:增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容、不能获取下标等。一个简单的例子:(好像内容有点多...)pub原创 2021-07-14 10:08:52 · 221 阅读 · 0 评论