- 博客(23)
- 收藏
- 关注
原创 数据结构--二叉树
二叉树的实现、广度优先遍历和递归、非递归的深度优先遍历,思路在注释中:package 二叉树;import java.util.Deque;import java.util.LinkedList;import java.util.Queue;public class BinaryTree<E> { public static class TreeNode<E&...
2018-02-25 15:36:25 286
转载 数据结构--图
部分转载自http://blog.csdn.net/hguisu/article/details/7712813图的表示1、邻接表邻接表的核心思想就是针对每个顶点设置一个邻居表。2、邻接矩阵邻接矩阵的核心思想是针对每个顶点设置一个表,这个表包含所有顶点,通过True/False来表示是否是邻居顶点。概述图的遍历是指从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的遍历操作和树的遍历操...
2018-02-24 20:33:38 556
原创 计算机网络和操作系统常见问题私人memo
本文仅仅是私人memo,由于时间原因存在一些排版问题,本人将抽空重排版并对大概进行扩展。中断和轮询的特点: 都是对IO设备程序轮询的方式,是早期计算机系统对IO设备的一种管理方式。定时对各种设备轮询问一遍有无处理请求。轮询之后,有要求的就处理,处理完后处理机继续工作。 轮询需要时间,但是轮询比IO设备速度快很多,但是比IO速度快很多。但是轮询依然是效率很低的一种方式。 程序中断简...
2018-02-24 01:51:58 509
转载 操作系统常见题目
转载自http://www.blogjava.net/qileilove/archive/2012/08/22/386010.html 1、什么是进程(Process)和线程(Thread)?有何区别? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位...
2018-02-23 19:50:35 773
转载 红黑树
转载自http://www.cnblogs.com/CarpenterLee/p/5525688.html本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。总体介绍Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通...
2018-02-22 00:08:52 275
转载 字典树
转载自https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html一、引入字典是干啥的?查找字的。字典树自然也是起查找作用的。查找的是啥?单词。看以下几个题:1、给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。答:简单!map,短小精悍。好。下一个2、给出n个单词和m个询问,每次询问一个前缀,回答询问是多少个单词的前缀。...
2018-02-21 17:12:45 227
原创 面试准备私人MEMO
本文仅仅是私人MEMO,仅仅起到私人记录大纲之用AbstractQueuedSynchronizer,简称AQS,是Java并发包里一系列同步工具的基础实现,原理是根据状态位来控制线程的入队阻塞、出队唤醒来处理同步。 AQS内部维护一个CLH队列来管理锁。线程会首先尝试获取锁,如果失败,则将当前线程以及等待状态等信息包成一个Node节点加到同步队列里。接着会不断循环尝试获取锁(条件是当前节点...
2018-02-21 02:59:57 481
转载 B树、B-树、B+树、B*树介绍,和B+树更适合做文件索引的原因
转载自http://blog.csdn.net/cangchen/article/details/44817807 今天看数据库,书中提到:由于索引是采用 B 树结构存储的,所以对应的索引项并不会被删除,经过一段时间的增删改操作后,数据库中就会出现大量的存储碎片,这和磁盘碎片、内存碎片产生原理是类似的,这些存储碎片不仅占用了存储空间,而且降低了数据库运行的速度。如果发现索引中存在过多的...
2018-02-20 00:51:56 318
原创 23种设计模式的简单实现(下 13-23)
我的上一篇文章介绍了第1-12种设计模式,现在介绍剩下的设计模式,上篇文章链接:http://mp.blog.csdn.net/postedit/79321122行为型模式十三、策略模式定义一系列算法,把它们一个个封装起来,并且使它们可替换。本模式使得算法可独立于使用它的客户而变化。这个模式实际上在《effective java》中提及过,本质上是用宿主类模拟其他语言的函数指针来进行传递函数。代码...
2018-02-15 18:07:46 351
原创 23种设计模式的简单实现(上 1-12)
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。本文将对23种设计模式每个都进行一个简单的说明和实现。 设计模式很大程度上是面向对象设计原则的体现,首先来看一下这些oop设计原则:创建类的设计模式一、工厂方法模式 工厂父类(接口)负责定义产品对象的公共接口,而子类工厂则负责创建具体的产品对...
2018-02-14 01:12:44 533 1
转载 java的动态代理机制详解
转载自https://www.cnblogs.com/xiaoluo501395377/p/3383130.htmljava的动态代理机制详解在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而...
2018-02-13 01:42:20 240
转载 自旋锁、排队自旋锁、MCS锁、CLH锁
转载自https://coderbee.net/index.php/concurrent/20131115/577自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现import java.util.concurren...
2018-02-10 00:40:54 295
原创 私人MEMO--JVM与并发
本文是私人MEMO,仅仅是大纲作用。因为时间关系没有整理排版,有时间会进行重写和扩充。类加载过程为:加载、连接(包括验证、准备、解析)、初始化,类加载在Java中是在程序运行阶段完成的,这也使得Java程序更灵活。 加载:1、通过全限定名获得这个类的二进制字节流 2、将这个字节流代表的静态存储结构转化为方法区的运行时数据结构 3、在内存中生成一个代表这个类的java.lang.Cl...
2018-02-09 17:56:28 252
转载 java中Hashtable和HashMap的区别
文转自 http://www.importnew.com/7010.htmlHashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很...
2018-02-08 10:15:49 429
转载 Java中的基本数据类型类型提升现象
本文转载自http://blog.csdn.net/wang740209668/article/details/57416778一般来说,在运算的时候,要求参与运算的数据的类型须一致,这就好比我们能用1+1进行运算,而不能用1+a进行运算,而在java中更为严格,同为数值的数字有byte short int long 四种不同的类型,它们在运算的时候也要求类型一致,如果不一致,就涉及到我们今天要说...
2018-02-08 09:25:57 285
转载 Java中的Error和Exception
本文转载自http://blog.csdn.net/goodlixueyong/article/details/47122487Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。Error和RuntimeException及其子类称为未检查异常(Unchecked exception)...
2018-02-07 23:56:04 413
原创 私人MEMO--性能调优 包括JVM常用调优和系统调优
本文是我的私人Memo,仅仅是大纲备忘作用。一段时间后我会整理好。JVM调优 主要是内存方向的调优 各个代的大小,GC策略等等。(GC会导致应用线程挂起 严重影响性能 降低GC导致的应用暂停时间很有必要) JVM内存 = 新生代+老年代+持久代(方法区) -Xms :初始JVM内存大小 -Xmx :最大JVM内存大小 这俩一般一样 避免运行期间内存变大 -Xmn :年...
2018-02-07 17:18:35 237
原创 私人MEMO--java.util.concurrent
以下是我私人的Memo,由于时间问题排版有点散漫,过段时间会整理好。ConcurrentHashMap//分段锁 SegmentCopyOnWriteArrayList//写入时复制 会出现脏数据 使用ReentrantLock实现CopyOnWriteArraySet//基于CopyOnWriteArrayList实现 唯一不同在于add时调用CopyOnWriteArrayList的addIf...
2018-02-07 16:19:28 232
转载 Java中的反射常用方法
转载自https://www.cnblogs.com/sargeles/p/6605945.htmljava通常是先有类再有对象,有对象我就可以调用方法或者属性。反射其实是通过Class对象来调用类里面的方法。通过反射可以调用私有方法和私有属性。大部分框架都是运用反射原理。 如何获得Class对象:1. 通过一个对象获得完整的包名和类名packa
2018-02-07 13:47:44 237
转载 InputStream和OutputStream
文章转载自:http://blog.csdn.net/dww410/article/details/53990941.InputStream ◇ 从流中读取数据: int read( ); //读取一个字节,返回值为所读的字节 int read( byte b[ ] ); //读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际读取的字节的数量
2018-02-07 00:47:10 473
原创 准备春招 CSDN博客不定期脱更 见谅
准备春招了,时间比我想象的还要紧,没办法博客暂时脱更了,望见谅。 春招的收获与反思我也会在这里不定期更新。 希望自己能取得不错的成绩。...
2018-02-05 17:39:19 214
原创 Java同步工具类
上一篇文章我们介绍了一些Java平台类库的并发基础构建模块,介绍了一种Java同步工具类--阻塞队列(链接点击此处)。实际上还有一些其他的同步工具类,本文将介绍这些除阻塞队列之外的同步工具类,信号量、栅栏、闭锁。 一、闭锁 CountDownLatch 闭锁是一种同步工具类,可以延迟线程的进度直到其达到终止状态。闭锁相当于门闩,闭锁到达结束状态之前,这扇门一直是关闭的
2018-02-04 19:47:43 902
原创 Java平台类库并发基础构建模块
Java平台类库包含了大量的并发基础构建模块,我们简单介绍其中的一部分。 1、同步容器类 同步容器类包括Vector、Hashtable以及它们的子类,还有通过Collections.synchronizedXxx的一些工厂方法创建的同步封装器类。 对于这类同步容器类,它们是线程安全的,但是它们实现线程安全的方式是对其方法使用synchronized关键字进行修饰,当
2018-02-01 01:42:05 375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人