摘要:
题目来源: 力扣(LeetCode) 题目名称: LRU缓存机制 题目描述: 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key)——如果关键字 (key) 存在于缓存中,则获取关键字 阅读全文
摘要:
Java 集合 集合是对象的容器,定义了多个对象进行操作的常用方法,可实现数组的功能。 Java集合类库所处位置:java.util.*。 与现代的数据结构类库的常见做法一样,Java集合类库也将接口与实现分离开。 集合和数组的区别: 1.数组长度固定,集合长度不固定。 2.数组可以存储基本类型和引 阅读全文
摘要:
线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期。在线程的生命周期中,共包括新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这五种状态。当线程启动以后,CPU需要在多个线程之间切换,所以线程也会随之在运行、阻塞、就绪这几种状态之 阅读全文
摘要:
线程与进程 什么是进程? 当一个程序进入内存中运行起来它就变为一个进程。因此,进程就是一个处于运行状态的程序。同时进程具有独立功能,进程是操作系统进行资源分配和调度的独立单位。 什么是线程? 线程是进程的组成部分。通常情况下,一个进程可拥有多个线程,而一个线程只能拥有一个父进程。 线程可以拥有自己的 阅读全文
摘要:
浅谈ArrayList ArrayList类又称动态数组,同时实现了Collection和List接口,其内部数据结构由数组实现,因此可对容器内元素实现快速随机访问。但因为ArrayList中插入或删除一个元素需要移动其他元素,所以不适合在插入和删除操作频繁的场景下使用。 ArrayList的容量可 阅读全文
摘要:
static 关键字的作用 在 Java 中 static 关键字有4种使用场景,下面分别进行介绍: 1.static 成员变量 public class Student { // 静态成员变量 private static String SchoolName; private static int 阅读全文
摘要:
题目来源: 力扣(LeetCode) 题目名称: 合并两个有序数组 题目详情: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 阅读全文
摘要:
知识回顾 贪心算法(greedy algorithm),又称贪婪算法。是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。 贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决, 阅读全文
摘要:
二分查找也叫做折半查找,查找的对象是已经排好序的序列(一般默认为升序)。 让我们来看看原理:顾名思义,就是先将中间数和目标key比较,如果相等则返回其索引,否则把序列分成两半,根据大小判断所查找的key在哪一半中,对这一半序列再重复上述步骤,直到找到目标key或查找完序列。 一般的二分查找 被查找的 阅读全文
摘要:
DNS简介 DNS(英文全称:Domain Name System,域名系统)是互联网的一项服务。它是将域名和ip地址相互映射的一个分布式数据库。 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于ip地址的,因特网上的节点都可以用ip地址惟一标识,并且可以通过ip地址被访问。但即使是将32位 阅读全文