摘要:
简介 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系 顺序表API设计 为该顺序表设计几个常 阅读全文
摘要:
简介 单链表的反转,面试中的一个高频题目。当然也有很多变体,比如以k个结点为一组进行翻转链表的 需求 原链表中数据为:1->2->3->4 反转后链表中数据为:4->3->2->1 实现 反转链表是有2种方法(递归法,遍历法)实现的 节点类设计 public class Node{ /**存储元素* 阅读全文
摘要:
简介 链表是一种物理存储单元上非连续、非顺序的存储结构,其物理结构不能表示数据元素的逻辑顺序,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列的结点(链表中的每一个元素称为结点)组成,结点可以在运行时动态生成 节点类设计 按照面向对象的思想,可以设计一个类,来描述结点这个事物,用一个 阅读全文
摘要:
思维导图 简介 线性表是指 n个具有相同特性的数据元素的有限序列 前置概念 前驱元素 : 若A元素在B元素的前面,则称A为B的前驱元素 后继元素 :若B元素在A元素的后面,则称B为A的后继元素 特征 数据元素之间具有一种“一对一”的逻辑关系 第一个数据元素没有前驱元素,这个数据元素被称为头结点 最后 阅读全文
摘要:
简介 队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它按照先进先出的原则存储数据,先进入的数据,在读取数据时先被读出来。例如下图中进队列的顺序为1,2,3,4,则出队列的顺序为1,2,3,4 队列是一个有序列表,可以用数组或是链表来实现 数 阅读全文
摘要:
简介 稀疏数组即原数组的一个压缩数组,在原数组中存在大量无意义的值,占据了大量的存储空间,只有部分坐标下的值才有意义。例如如下11*11的数组中就只有三个有意义的数字 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 阅读全文
摘要:
前置知识 SQL注入:后端并未对前端传来的参数进行严格的校验,同时后端存在将前端传来的参数使用字符串或者直接将参数拼接到SQL语句中,导致后端的SQL语句被篡改并且能成功执行 四大SQL注入原理 恶意拼接查询--查询、插入、更新和删除数据,且使用分号来分隔不同的命令 原SQL语句 select * 阅读全文
摘要:
又是只能回答概念不能提出具体的实例出来论证所讲的观点(具体实例后面再补充吧) 单一职责原则 单一职责原则是指一个类只负责一个职责,它使得类的职责更单一。这样每个类只需要负责自己的那部分,类的复杂度就会下降。如果职责划分的很清楚,那么代码的维护难度降低。如果将所有功能都放在一个类中,那么这个类就会变得 阅读全文
摘要:
前置知识 final 在 Java 中是关键字之一,意为最终,表示对象或数据是最终形态的、不可改变的意思,它可以修饰 类、变量、方法。使用 final 修饰的 类、方法、变量具有如下特点 final 修饰的类不能被继承 final 修饰的方法不能被子类重写 final 修饰的成员变量或局部变量(即常 阅读全文
摘要:
前置知识 JVM类加载机制主要有如下三种方式 全盘负责:指当一个类加载器负责加载某个Class时,该Class所依赖和引用其他Class也将由该类加载器负责加载,除非显示使用另一个类加载器来载入 双亲委派:指先让父类加载器试图加载该Class,只有在父类加载器无法加载该类时才尝试从自己的类路径中加载 阅读全文