二叉树的深度优先遍历和广度优先遍历

 深度优先遍历,也就深入的遍历,沿着每一个分支直到走到最后,然后才返回来遍历剩余的节点。二叉树不同于图,图需要标记节点是否已经访问过,因为可能会存在环,而二叉树不会出现环,所以不需要标记。那么,我们只需要一个栈空间,来压栈就好了。因为深度优先遍历,遍历了根节点后,就开始遍历左子树,所以右子树...

2017-09-13 10:06:11

阅读数 183

评论数 0

动态规划-最长公共子序列

 最长公共子序列和最长公共子串区别        最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺序一致,并不要求连续。例如X = {a,...

2017-08-15 22:16:20

阅读数 203

评论数 0

Git代码合并Merge还是Rebase

git rebase 这个命令经常被人认为是一种Git巫术,初学者应该避而远之。但如果使用得当的话,它能给你的团队开发省去太多烦恼。在这篇文章中,我们会比较 git rebase 和类似的 git merge 命令,找到Git工作流中rebase的所有用法。 概述 你要知道的第一件...

2017-07-30 16:58:47

阅读数 268

评论数 0

Spring——全局异常处理

@Restcontroller登场 spring从4.0开始引入了@Restcontroller,这是对REST的支持,他可以帮我们去掉@ResponseBody这个  所以原本这样的代码, @Controller public class SpitteController{ @Req...

2017-07-09 17:42:24

阅读数 230

评论数 0

EL表达式 (详解)

EL表达式      1、EL简介 1)语法结构        ${expression} 2)[]与.运算符      EL 提供.和[]两种运算符来存取数据。      当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []...

2017-07-02 12:17:19

阅读数 162

评论数 0

Servlet线程安全解析

摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。      Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很...

2017-05-30 11:27:54

阅读数 370

评论数 0

理解排序算法中的稳定性

排序算法中的稳定它只表示两个值相同的元素在排序前后是否有位置变化。如果前后位置变化,则排序算法是不稳定的,否则是稳定的。稳定性的定义符合常理,两个值相同的元素无需再次交换位置,交换位置是做了一次无用功。 比如快排中,待排序数组为5,7,7,1,1。那么若以数组中第一元素做为换分依据,第一次划结果为...

2017-05-28 16:47:51

阅读数 286

评论数 0

堆排序 思考

将整数数组(7-6-3-5-4-1-2)按照堆排序的方式原地进行升序排列,请问在整个排序过程中,元素3的数组下标发生过____次改变。 按整数数组的最大堆定义,每次调整完后根结点的元素与最后个元素交换,继续下次调整,直到所有的结点调整完毕。 原数组为 7 6 3 5 4 1 2 满足...

2017-05-25 10:39:20

阅读数 224

评论数 0

Java并发之AQS

AQS(AbstractQueuedSynchronized)就是ReentrantLock ,semaphore,countDownLatch的底层实现。 在ReentrantLock 源码中,有个个内部类,同步器(sync) 集成AQS    abstract static class Sy...

2017-05-23 17:31:19

阅读数 221

评论数 0

JAVA中的Fork/Join框架

什么是fork/join框架   fork/join框架是ExecutorService接口的一个实现,可以帮助开发人员充分利用多核处理器的优势,编写出并行执行的程序,提高应用程序的性能;设计的目的是为了处理那些可以被递归拆分的任务。   fork/join框架与其它ExecutorServi...

2017-05-17 17:51:38

阅读数 167

评论数 0

LinkHashMap实现LRU

LinkedHashMap有一个removeEldestEntry(Map.Entry eldest)方法,通过覆盖这个方法,加入一定的条件,满足条件返回true。当put进新的值方法返回true时,便移除该map中最老的键和值。   package scorpio.jh.mapt...

2017-05-17 10:29:52

阅读数 189

评论数 0

java 锁优化

Java对象的内存布局分为:对象头、实例数据和对其填充。 对象头又可以分为”Mark Word”和类型指针klass。”Mark Word”是关键,默认情况下,其存储对象的HashCode、分代年龄和锁标记位。 首先简单说下先偏向锁、轻量级锁、重量级锁三者各自的应用场景: 偏向锁:只有一个线...

2017-05-16 21:37:37

阅读数 204

评论数 0

深入浅出UML类图

. 类 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责。在定义类的时候,将类的职责分解成为类的属...

2017-05-14 14:46:31

阅读数 364

评论数 0

缓存调度算法计算缺页

:在一个采用页式虚拟存储管理的系统中,有一用户作业,它依次要访问的页面序列是1,2,3,4,1,2,5,1,2,3,4,5.假定分配给该作业的页数为3且作业初始时未装载页面,那么采用FIFO调度算法产生的缺页中断数为多少,采用LRU调度算法产生的缺页中断数为多少?  FIFO算法:(First I...

2017-05-12 22:56:15

阅读数 433

评论数 0

java 线程池

 本篇主要涉及到的是java.util.concurrent包中的ExecutorService。ExecutorService就是Java中对线程池的实现。 一、ExecutorService介绍 ExecutorService是Java中对线程池定义的一个接口,它java.util...

2017-05-10 17:33:47

阅读数 119

评论数 0

java读写锁设计缓存系统

package test;    import java.util.HashMap;  import java.util.Map;  import java.util.Random;  import java.util.concurrent.locks.ReadWriteLock;  import...

2017-05-09 22:17:02

阅读数 261

评论数 0

ConcurrentHashMap补充

并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(...

2017-05-08 20:33:26

阅读数 125

评论数 0

JAVA NIO解析

 现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。再者,现在互联网的面试中上点level的都会涉及一下NIO或者AIO的问题(AIO下次再讲述,本篇主要讲述NI...

2017-05-08 10:54:56

阅读数 580

评论数 0

Mysql批量插入

如何高效向数据库插入10万条记录,总结出三种方法: 测试数据库为MySQL!!! 方法一:   [java] view plain copy  批量插入" alt="在CODE上查看代码片" src="https://code.csdn.net/a...

2017-05-08 10:49:09

阅读数 377

评论数 0

红黑树

 一、红黑树的介绍 先来看下算法导论对R-B Tree的介绍: 红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其 他路径长出俩倍,因而是接近平衡的。 ...

2017-05-03 22:14:07

阅读数 127

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭