05 2020 档案

摘要:21 从上往下打印二叉树 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 用一个队列来存储这些曾经访问过但是仍旧有用的节点 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; pub 阅读全文
posted @ 2020-05-26 17:44 我们村里的小花儿 阅读(175) 评论(0) 推荐(0)
摘要:16 合并两个链表 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 有两种方法:一种是递归,一种是非递归 package list; import java.util.Scanner; public class mergeTwoList_16 { pub 阅读全文
posted @ 2020-05-26 16:10 我们村里的小花儿 阅读(120) 评论(0) 推荐(0)
摘要:11 二进制中1的个数 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示 分析 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 (搬运评论区大佬的解释)如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在 阅读全文
posted @ 2020-05-26 14:02 我们村里的小花儿 阅读(154) 评论(0) 推荐(0)
摘要:6旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 分 阅读全文
posted @ 2020-05-26 12:35 我们村里的小花儿 阅读(116) 评论(0) 推荐(0)
摘要:1二维数组的查找: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 一、暴力法 时间复杂度:空间复杂度:O(1) 二、从左下找 利用该二维数组的性质: 每 阅读全文
posted @ 2020-05-26 11:18 我们村里的小花儿 阅读(143) 评论(0) 推荐(0)
摘要:元字符概念以及元字符的反义 正则表达式中的几种重复模式 分枝条件 用 | 把不同的规则分割开 从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了 0\d{2}-\d{8}|0\d{3}-\d{7} 字符类 [0-9] == \d [a-z0-9A-Z] == \w [&?.] 阅读全文
posted @ 2020-05-22 10:39 我们村里的小花儿 阅读(200) 评论(0) 推荐(0)
摘要:数据链路层使用的信道主要有以下两种类型: 点对点信道。这种信道使用一对一的点对点通信方式。 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 1、使用点对点信道的数据链路层: 1.1 三个基本问题: (1 阅读全文
posted @ 2020-05-19 15:00 我们村里的小花儿 阅读(436) 评论(0) 推荐(0)
摘要:1、计算机网络的性能 比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。Bit 来源于 binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 或 0。 速率即数据率(data rate)或比特率(bit rate)是计算机网络中最重要的一个性 阅读全文
posted @ 2020-05-19 13:13 我们村里的小花儿 阅读(388) 评论(0) 推荐(0)
摘要:计算机网络向用户提供的最重要的功能:连通性——计算机网络使上网用户之间都可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。 共享——即资源共享。可以是信息共享、软件共享,也可以是硬件共享。 因特网概述: 网络(network)由若干结点(node)和连接这些结点的链路(link)组成;互联网 阅读全文
posted @ 2020-05-19 12:14 我们村里的小花儿 阅读(1304) 评论(0) 推荐(0)
摘要:1、发布订阅 1.1简介 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 1.2 示例 下图展示了频道 channel1,以及订阅这个频道的三个客户端 —— client2 、 client5 阅读全文
posted @ 2020-05-17 16:31 我们村里的小花儿 阅读(243) 评论(0) 推荐(0)
摘要:1、List类型 1.1 简介 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素),类似JAVA中的LinkedList 1.2 命令 赋值语法: 阅读全文
posted @ 2020-05-17 15:25 我们村里的小花儿 阅读(589) 评论(0) 推荐(0)
摘要:1.Redis命令描述 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等。 1.1 Redis 键key DEL key 该命令用于在 key 存在时删除 key。 EXISTS key 检查给定 k 阅读全文
posted @ 2020-05-17 14:48 我们村里的小花儿 阅读(220) 评论(0) 推荐(0)
摘要:1、Redis 1.1redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能(NoSQL)的key-value数据库。 BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。BSD开源协议是一个给于使用者很大自由的协议。可以自由 阅读全文
posted @ 2020-05-17 13:53 我们村里的小花儿 阅读(159) 评论(0) 推荐(0)
摘要:1、概述 HashTable是一个线程安全的哈希表,它通过使用synchronized关键字对方法进行加锁,从而保证了线程安全,但这也导致了在单线程环境中效率低下等问题。HashTable与HashMap不同,他不允许插入null值和null键。 2、属性 //哈希表 private transie 阅读全文
posted @ 2020-05-16 14:26 我们村里的小花儿 阅读(193) 评论(0) 推荐(0)
摘要:1、概述 HashMap是哈希表基于Map接口的实现,它允许null值和null键,它不是线程同步的,同时也不保证有序。Map的这种实现方式为get(取)和put(存)带来了比较好的性能。但是如果涉及到大量的遍历操作的话,就尽量不要把capacity设置得太高(或load factor设置得太低), 阅读全文
posted @ 2020-05-14 22:06 我们村里的小花儿 阅读(230) 评论(0) 推荐(0)
摘要:1、ArrayList概述 ArrayList是一个动态数组,实现了List接口以及list相关的所有方法,它允许所有元素的插入,包括null。另外,ArrayList和Vector除了线程不同步之外,大致相等,此实现不同步。 2、属性 //默认容量的大小 private static final 阅读全文
posted @ 2020-05-14 16:07 我们村里的小花儿 阅读(261) 评论(0) 推荐(0)
摘要:1、二叉树 1.1 为什么需要树这种数据结构 1)数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可以使用二分查找检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)回整体移动,效率较低 2)链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(插入一个数值 阅读全文
posted @ 2020-05-14 12:22 我们村里的小花儿 阅读(164) 评论(0) 推荐(0)
摘要:一、常见的排序算法分类 二、各种算法的时间复杂度 三、冒泡排序 冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。 小结上面的图解过程: (1) 阅读全文
posted @ 2020-05-13 19:35 我们村里的小花儿 阅读(508) 评论(0) 推荐(0)
摘要:一、反射概念 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在运行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完 阅读全文
posted @ 2020-05-13 16:42 我们村里的小花儿 阅读(144) 评论(0) 推荐(0)
摘要:1、进程与线程的区别 进程: 正在运行的一个程序,作为资源分配的单位。 一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进 程的一部分。 一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。 线程: 线程作为调度和执行的单位,每个线程拥有独立的运行栈 阅读全文
posted @ 2020-05-13 10:46 我们村里的小花儿 阅读(143) 评论(0) 推荐(0)
摘要:以公司雇员与经理为例 继承概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。允许创建分等级层次的类。 例子:公司雇员与经理的待遇有一些差异,但也存在很多相同的地方,例如雇员仅领取薪水,而经理可以领取薪水和奖金,这种情 阅读全文
posted @ 2020-05-12 16:31 我们村里的小花儿 阅读(221) 评论(0) 推荐(0)
摘要:1、概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 2、类的加载时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期包括:加载、验证、装备、解析、初始化、使用和卸载7个 阅读全文
posted @ 2020-05-12 11:03 我们村里的小花儿 阅读(103) 评论(0) 推荐(0)
摘要:1、对象是否死亡 1.1 引用计数算法 给对象中添加一个引用计数器,每当有一个地方没引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点:实现简单,判定效率也很高,在大部分情况下他都是一个不错的算法。缺点:很难解决对象之间的相互循环引用的问题,所以 阅读全文
posted @ 2020-05-11 19:06 我们村里的小花儿 阅读(110) 评论(0) 推荐(0)
摘要:图1 Java虚拟机运行时数据区 1、程序计数器 一块较小的内存空间,字节码解释器工作时就是通过这个计数器的值来取下一跳需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都要依赖这个计数器来完成。每个线程都需要一个独立的程序计数器,为了多线程切换后能恢复到正确的执行位置。执行一个J 阅读全文
posted @ 2020-05-11 16:12 我们村里的小花儿 阅读(114) 评论(0) 推荐(0)