摘要:
一、双向链表 双向链表与单链表基本相似,但是最大的区别在于双向链表在节点中除了指向下一节点的next指针外,还有指向前一节点的prev指针,这使得双向链表在可以在任意节点从头尾两个方向进行遍历,是“双向”的。 和单链表相比,双向链表在删除和查询等方面明显在操作上更具有灵活性,但是会消耗更多的内存,需 阅读全文
摘要:
一、什么是链表 链表是一种数据结构,跟数组不同,链表不需要连续的内存空间,而是通过指针将零散的内存块连接起来。 因此,链表的查找需要通过节点按顺序遍历,而增加与删除通过只需要操作指针指向,这也造成了相比数组,链表的查找性能消耗大而增加和删除消耗小的特点。 链表由节点组成,一般每个节点最少包含用于储存 阅读全文
摘要:
一、什么是队列 队列是一种特殊的线性表。 队列元素的进出遵循“先进先出”原则:即只允许在前端(front)也就是队头进行删除操作,而只能在后端(rear)也就是队尾进行插入操作。 如图所示: 队列的最大长度为MaxSize,最大下标为MaxSize-1 入队时队头下标不变而队尾下标改变,出队时则相反 阅读全文
摘要:
一、创建并上传文件到存储空间 1.注册七牛账号,并且实名认证 2.创建储存空间 打开侧边栏,选择对象存储 选择新建空间 存储空间名称:按规则随便取 存储区域:选择离靠近的地区 访问控制:选择公开,否则外网无法访问,没法作为图床 3.上传文件 选择文件管理,点击上传文件即可上传 不绑定私有域名时默认外 阅读全文
摘要:
一.事先准备 首先准备一个运行用的代码: public class Singleton { public static void main(String[] args) { Thread[] threads = new Thread[10]; for (int i = 0; i < threads. 阅读全文
摘要:
一、多线程情况下的线程安全问题 先理解一个概念: 线程安全:多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。 线程不安全:就是不提供数据访问保护,有 阅读全文
摘要:
一、线程生命周期 一个线程被实例化完成,到线程销毁的中间过程 1.新生态:New 一个线程对象被实例化完成,但是没有做任何操作 2.就绪态度:Ready 一个线程被开启,并且开始抢占CPU时间 3.运行态:Run 一个进程抢到的CPU时间片,并且开始执行线程中的逻辑 4.阻塞态:Interrupt 阅读全文
摘要:
一、串行,并行,并发 1.名称解释 串行:程序按顺序执行,同一时间只能执行一个程序,前一个执行完毕后才轮到后一个 并行:多个程序可以同时执行,宏观和微观上看程序都是同时执行 并发:同一时刻只有一条程序执行,但是多个进程被快速轮换执行,宏观上看是同时执行,微观上看只是把时间分成若干段,使多个进程快速交 阅读全文
摘要:
一、面向对象和面向过程 面向对象 面向过程编程是一种以 过程为中心 的编程思想,分析出解决问题的步骤,然后 用函数把这些步骤一步一步实现 。 面向过程编程, 数据和对数据的操作是分离的 , 函数本身只处理数据,并没有储存的功能 按照这样的思路设计的程序,当一个公共变量同时被多个函数操作的时候,很有可 阅读全文
摘要:
一、为什么要用Swagger2? 之前开发项目的时候,需要写API文档,项目小接口少的时候一份word就能简单应付,但是随着项目的API的增加,对API文档的维护工作就会越来越繁琐,为此引入能自动生成RESTful接口文档的Swagger2框架就变得理所当然。 作为一个能够自动生成API文档的框架, 阅读全文