自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 树、二叉树、AVL树,B树基础学习

树、二叉树、AVL树,B树基础学习一、树的基本概念树是一种数据结构,它是由n(n>1)个有限节点组成的一个具有层次关系的集合。树的基本概念1、双亲:若有一个结点有子树,那么该结点就称为子树根的“双亲”。2、孩子结点:子树的根称为改子树双亲结点的“孩子结点”。3、兄弟结点:有相同的双亲的结点称为“兄弟结点”。4、结点的度:结点拥有的子树的数目。5、叶子结点:度为0的结点。6...

2019-10-15 20:49:42 491

转载 学习资料 springboot springCloud

学习资料 springboot springCloudhttp://www.ityouknow.com/springboot/2016/02/03/springboot(二)-web综合开发.html

2019-03-28 17:52:17 306

原创 分布式锁的三种实现方法

分布式锁的实现方法什么是锁在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有...

2019-03-26 15:46:54 298

原创 设计模式(四)—— 代理模式

代理模式在阎宏博士的《JAVA与模式》一书中开头是这样描述代理(Proxy)模式的:代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构  所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式类图如下:   ...

2019-03-13 14:50:32 199

原创 设计模式(三)—————— 模板方法模式

模板方法模式在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的:  模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构模板方法模式是所有模...

2019-03-13 11:17:23 151

原创 Java面试基础

java基础面试题1、作用域public,private,protected,以及不写时的区别2、HashMap和Hashtable的区别:HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap几乎可以等价于Hashtable,除了HashMap是非sy...

2019-03-12 17:57:43 139

原创 设计模式(二)-------------工厂模式

工厂模式前言我在面试的时候,有时候会问到候选人有没有熟悉的设计模式,一般大部分候选人会选择说熟悉单例和工厂(也有部分人会说熟悉观察者),如果我进一步问候选人是如何应用工厂模式的,10个候选人有10个会举连接Sqlserver,Oracle,Mysql等不同数据库时会用工厂模式产生不同的连接的例子。OMG,我知道大家都是爱学习的同学,但是大家为什么不仔细想想,网上一搜一大堆的例子,你能看到,别...

2019-03-08 12:03:44 135

原创 java:并发分析(四)-----------线程池分析和使用

1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。2....

2019-02-28 14:41:54 160

原创 java:并发分析(三)-----------Synchronized分析

1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2 术语定义3 同步的基础Java中的每一个对象都可以作为锁。对于...

2019-02-28 10:11:46 110

原创 java:并发分析(二)-----------Volatile实现原理

引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能帮...

2019-02-27 18:17:30 140

原创 java: 并发分析(一)---------ConcurrentHashMap的原理分析

ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap的内...

2019-02-27 18:00:04 110

原创 java:两个有序数组的合并

两个有序数组的合并/** * 将两个有序数组合并为一个有序数组 * @param arr1 * @param arr2 * @return */ public static int[] arrayMerge(int[] arr1, int[] arr2){ int len1 = arr1.length; i...

2019-02-27 15:57:05 1480

原创 java 关于锁常见面试题

1、synchronized作用于静态方法和非静态方法的区别非静态方法:给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥静态方法: 相当于在类上加锁(*.class位于代码区,静态方法位于静态区域,这个类产生的对象公用这个静态方法,所以这块内存,N个对象来竞争...

2019-02-27 14:22:17 37820 3

原创 设计模式(一)——单例模式

单例模式一、单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端...

2019-02-26 10:58:35 144

原创 Java : T1,T2,T3三个线程顺序执行

T1,T2,T3三个线程顺序执行问题:有三个线程t1.t2.t3,创建多线程,让它们按顺序执行解决:使用join,在t3中调用t2,t2中调用t1 public static void main(String[] args){ Thread t1 = new Thread(new Runnable() { @Override ...

2019-02-21 16:27:51 452

原创 Object的wait和notify实现生产者和消费者

Object的wait和notify实现生产者和消费者public class ConsumerAndProducer { private int queueSize = 10; private PriorityQueue<Integer> queue = new PriorityQueue<>(queueSize); public stati...

2019-01-28 16:07:10 200

原创 java:字符串实现大数相加

字符串实现大数相加给定两个数字字符串,求出相加的和思路:需要将两个字符串相对应的位进行相加,注意不能将整个字符串转化为数字,进行直接相加,这样会出现溢出的问题。 public String bigNumverAdd(String number1, String number2) { StringBuffer result = new StringBuffer();...

2019-01-26 16:04:46 1231

原创 java 二叉树层次遍历

二叉树层次遍历 //按层遍历:属于图的宽度优先遍历,需要使用队列来辅助完成 public int[][] printTree(Node root) { //①创建一个队列:使用链表LinkedList来实现队列 LinkedList<Node> queue = new LinkedList<>(); //创建集合re...

2019-01-25 15:22:31 333

原创 树的遍历非递归实现

java 树的遍历非递归实现public class TreeToSequence { public int[][] convert(Node root) { //特殊输入 if (root == null) { return null; } //由于树的结点数目不知道,因此遍历过的结点只能存放在...

2019-01-25 10:59:31 681

原创 java实现二叉树的创建及三种遍历方式

java实现二叉树的创建及三种遍历方式接口定义public interface Tree { /** * 二叉树的创建 * @param arr * @return */ public List<Node> createBinTree(int[] arr); /** * 前序遍历 * @para...

2019-01-24 16:30:06 1465

原创 面试常见算法

面试常见算法/** * 快速排序 * 选择一个基准值,将比基准值小的放在左侧,大的放在右侧 * 再将两侧的数组进行递归调用即可 */ public void quickSort(int[] numbers, int start, int end){ if (start < end) { int base...

2019-01-22 11:58:14 2852 1

原创 maven使用Ant反向生成sqlmap

maven使用Ant反向生成sqlmap在工作的时候遇到过反向生成sql,以前采用的是generator插件,这次采用maven下Ant生成。1.先编写一个使用Ant执行的脚本build_mybatis.xml。Ant将通过这个脚本来执行生成我们需要的sqlmap,脚本要依赖于generator的jar包,我这里采用的是mybatis-generator-core-1.3.2.jar。具体配置...

2018-11-30 18:59:39 156

Java编程思想第四版完整中文高清版.pdf

Java编程思想是java开发者学习过程中必不可少的一本书,从基础知识到全面技术栈都有非常详细的讲解。

2019-06-21

redis设计与实现(第二版).pdf

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.

2019-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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