08 2017 档案
排序算法的稳定性
摘要:稳定的排序算法:归并,插入排序 不稳定的排序算法:选择排序 (5,7,5,3)3和5交换之后,两个5的相对顺序发 生了变化) shell排序 (1, 5, 5, 2,3, 7) 间隔序列为(3, 1), 3的时候 (1,5,7)(5,2,3)), 在间隔>1的时候会出现不 稳定 快速排序 (3, 5 阅读全文
posted @ 2017-08-30 18:50 blythe 阅读(134) 评论(0) 推荐(0)
23种设计模式分类
摘要:设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 三、Factory Meth 阅读全文
posted @ 2017-08-30 18:23 blythe 阅读(224) 评论(0) 推荐(0)
哈夫曼树
摘要:参考:http://www.cnblogs.com/wuyuankun/p/3982216.html http://www.cnblogs.com/yaowen/p/4268157.html 哈夫曼树又称最优二叉树, 是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点 的权值 阅读全文
posted @ 2017-08-30 15:36 blythe 阅读(1584) 评论(0) 推荐(0)
用于进程间通信的机制
摘要:# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 # 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 # 信号量( semophore ) : 信 阅读全文
posted @ 2017-08-29 16:16 blythe 阅读(139) 评论(0) 推荐(0)
自己实现IOC过程
摘要:阅读了《架构探险》这本书之后简单梳理一下自己实现IOC的基本流程 首先要自己定义一个注解 这个注解标记在类中的哪个属性 阅读全文
posted @ 2017-08-26 11:47 blythe 阅读(185) 评论(0) 推荐(0)
防止sql注入的方法
摘要:防止sql注入从前端的页面到后台可以分为以下几个办法: 1.在前端页面就可以用js过滤数据 要引入的包: import Java.util.regex.*; 正则表达式: private String CHECKSQL = “^(.+)\\sand\\s(.+)|(.+)\\sor(.+)\\s$” 阅读全文
posted @ 2017-08-26 10:53 blythe 阅读(564) 评论(0) 推荐(0)
二叉树的LCA(最近公共祖先)算法
摘要:1.如果是二叉搜索树 2.如果是普通树 阅读全文
posted @ 2017-08-25 11:15 blythe 阅读(269) 评论(0) 推荐(0)
二叉树的计算
摘要:1.先复习一下等差数列和等比数列求和公式 2.满二叉树与完全二叉树 满二叉树(Full Binary Tree): 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点(最后一层上的无子结点的结点为叶子结点)。也可以这样理解,除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子结点 阅读全文
posted @ 2017-08-25 09:26 blythe 阅读(715) 评论(0) 推荐(0)
@RestController和@Controller注解的区别
摘要:@RestController是@ResponseBody和@Controller注解的结合,当你return一个页面时,使用@Controller注解返回的是相应页面,使用@RestController注解返回的是return的那个字符串,注意@RestController不是满足Rest风格的注 阅读全文
posted @ 2017-08-24 10:49 blythe 阅读(207) 评论(0) 推荐(0)
单调栈与单调队列
摘要:单调栈与单调队列很相似,单调性指的是严格的递增或者递减。 单调栈有以下两个性质: 1、若是单调递增栈,则从栈顶到栈底的元素是严格递增的。若是单调递减栈,则从栈顶到栈底的元素是严格递减的。 2、越靠近栈顶的元素越后进栈。 单调栈与单调队列不同的地方在于栈只能在栈顶操作,因此一般在应用单调栈的地方不限定 阅读全文
posted @ 2017-08-24 09:27 blythe 阅读(155) 评论(0) 推荐(0)
java中删除list指定元素遇到的问题
摘要:java删除list中指定的元素可以用remove()函数,但会存在一个问题,举个例子来说 假如有a,b,c,d,e这个list,用remove()方法删除第一个元素之后,b,c,d,e会往前移动,此时再执行remove(4)可能会发生数组越界,因为下标是4的元素已经不存在了(原来是e) 阅读全文
posted @ 2017-08-21 19:05 blythe 阅读(252) 评论(0) 推荐(0)
随机打乱数组
摘要:主要用到了java.util包下的Collections.shuffle方法 阅读全文
posted @ 2017-08-18 08:27 blythe 阅读(103) 评论(0) 推荐(0)
Mysql基本操作
摘要:3.1 基本操作 l 查看所有数据库名称:SHOW DATABASES; l 切换数据库:USE mydb1,切换到mydb1数据库; 3.2 操作数据库 l 创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1; 创建数据库,例如:CREATE DATABASE 阅读全文
posted @ 2017-08-17 13:00 blythe 阅读(332) 评论(0) 推荐(0)
二叉树的构建
摘要:要构建二叉树及对二叉树进行操作首先得构建节点,节点包括节点的值还有它的左右孩子 对二叉树的操作有构建,遍历(递归,非递归,层次遍历)。栈的特点是先进先出,用栈能保留二叉树的访问路径,所以二叉树的非递归遍历应该用栈来操作,队列是先进后出,用来层次打印二叉树。 阅读全文
posted @ 2017-08-17 09:26 blythe 阅读(434) 评论(0) 推荐(0)
synchronized修饰方法和对象的区别
摘要:使用synchronized(object) { 代码块.... } 能对代码块进行加锁,不允许其他线程访问,其的作用原理是:在object内有一个变量,当有线程进入时,判断是否为0,如果为0,表示可进入执行该段代码,同时将该变量设置为1,这时其他线程就不能进入;当执行完这段代码时,再将变量设置为0 阅读全文
posted @ 2017-08-17 08:53 blythe 阅读(1274) 评论(0) 推荐(1)
计算1+11+111+1111+........
摘要:f(n)=f(n-1)+10^n; public static void main(String[] args) { int n=2017; long temp=1; for(int i=1;i<n;i++){ temp+=func(i); } System.out.println(temp); } 阅读全文
posted @ 2017-08-16 19:18 blythe 阅读(475) 评论(0) 推荐(0)
Jav实现F(n)=F(n-1)+F(n-2)+.....+F(1)+1
摘要:private static int func(int count) { // TODO Auto-generated method stub int cou = 0; if(count==1){ cou=1; } else if(count==2){ cou=2; } else{ for(int 阅读全文
posted @ 2017-08-16 14:09 blythe 阅读(344) 评论(0) 推荐(0)
查找二维数组中是否有符合的目标值
摘要:/** * 在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。请完成一个函数, * 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 * * 思路 : * 从左下角最后一个元素开始比较,如果target小于这个元素向上遍历否则向右遍历 */ 阅读全文
posted @ 2017-08-16 11:01 blythe 阅读(254) 评论(0) 推荐(0)
排序算法
摘要:/** * 冒泡排序 */ public static void Bubble(int[] array){ for(int i=0;i<array.length-1;i++){ for(int j=0;j<array.length-1-i;j++){ if(array[j]>array[j+1]){ 阅读全文
posted @ 2017-08-16 09:36 blythe 阅读(113) 评论(0) 推荐(0)
时间复杂度
摘要:时间复杂度与空间复杂度是衡量算法是否优秀的标准 一般时间复杂度有O(1),O(n),O(n2),O(logN) O(logN)举例: for(int i=1;i<n;i++){ i=i*2; } 在这段程序里,假设要执行x次,则2x 应该小于n,最后小于logN,所以它的时间复杂度为O(logN) 阅读全文
posted @ 2017-08-15 21:11 blythe 阅读(114) 评论(0) 推荐(0)
Java代码实现单例模式
摘要:public class Single { /*private static final Single single=new Single(); private Single(){} public static Single getInstance(){ return single; }*/ pri 阅读全文
posted @ 2017-08-15 14:44 blythe 阅读(170) 评论(0) 推荐(0)
查找一个字符串中重复出现字符的个数
摘要:import java.util.HashMap;import java.util.Map;import java.util.Scanner; /** * 查找一个字符串中重复出现字符的个数 * 首先声明一个map,从第一个字符开始遍历,如果map中已经有了这个字符则把值加1,否则重新 * 创建一个 阅读全文
posted @ 2017-08-15 11:37 blythe 阅读(1325) 评论(0) 推荐(0)
null,“”,empty的区别
摘要:public class Test { public static void main(String[] args) { // TODO Auto-generated method stub /** * 等号左边是对象的引用,右边是在堆上分配的内存 */ String str1=new String 阅读全文
posted @ 2017-08-15 10:43 blythe 阅读(249) 评论(0) 推荐(0)