- 博客(111)
- 资源 (1)
- 收藏
- 关注
原创 KMP
···package newcoder;public class KMP { /** * 判断str1中是否有str2,如果有返回在str1中的开始下标 * * @param str1 * @param str2 * @return */ public int getIndex(String str1, Str...
2018-08-11 17:48:55 331
原创 异常
异常Throwable ->Error: 是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常...
2018-08-11 17:47:36 298
原创 并发编程实战
在并发程序中,使用和共享对象的一些最有效的策略:线程限制:一个线程限制的对象的,通过限制在线程中,而被线程占用,且只能被占有她的线程修改共享只读:一个共享的只读对象,在没有额外同步的情况下,可以被多个线程并发的访问,但是任何线程都不能修改它,共享只读对象包括可变对象和高效不可变对象。共享线程安全:一个线程安全的对象在内部进行同步,所以其他线程无须额外的同步,就可以通过公共接口随意访问它。...
2018-08-11 17:46:52 830
原创 classPath与classPath-含义与区别
classPath:src路径下的文件在编译后会放到WEB-INF/classes路径下吧。默认的classpath是在这里。直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext当然获取不到。 如果单元测试的话,可以在启动或者运行的选项里指定classpath的路径的。classpath是指 WEB-INF文件夹下的c...
2018-08-11 17:46:20 417
原创 索引优化
应用WHERE语句的条件 在索引中使用where条件来过滤不匹配的记录,在存储引擎层过滤完成 使用索引覆盖扫描(Extra中出现了Using index)来返回记录,直接从索引中过滤不需要的 记录并返回命中结果,这是在MySQL服务层完成的,但无须再回表查询记录。 从数据表中返回记...
2018-06-13 07:51:08 296
原创 翻薄饼
/** * @Author JH * @CreateDate 18-6-12 * @Description 翻薄饼 有n张大小各不相同的薄饼,一张叠在另一张上面 将大的放在下边, * 先查找最大的数,如果这个数在最后,不用进行操作,如果这个数在第一位,只需要翻一次,即数组整体换位, * 否则要进行两次交换,第一次将这个数换到第一位,然后再转至数组,使得这个数变为最后一个 */pub...
2018-06-12 18:27:32 758
原创 二叉查找树中删除一个节点
import java.util.Stack;/** * @Author JH * @CreateDate 18-6-11 * @Description 在二叉查找树中删除一个节点 * 1.如果该节点是叶子节点 删除该节点 * 2.如果该节点有左子树 将左子树的根节点代替该节点 * 3.如果该节点只有右子树 将右子树根节点代替该节点 * 4.既有左节点又有右节点,用右节点代替该...
2018-06-11 22:42:16 1182
原创 插值查找
import java.util.Arrays;/** * @Author JH * @CreateDate 18-6-11 * @Description 插值查找 */public class InsertSearch { /** * * @param array 待查找的数组 * @param n 查找的值 * @param lef...
2018-06-11 15:27:35 331
原创 约瑟夫斯问题
package com.dugstudio.practiceBook;/** * @Author JH * @CreateDate 18-6-10 * @Description 约瑟夫斯问题 */public class JosephusProblem { /** * 当n为奇数时f(n)=2*f((n-1)/2)+1 * 当n为偶数时f(n)=2*f(n...
2018-06-10 22:29:24 963
原创 两个链表的第一个公共节点
package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-10 * @Description 两个链表的第一个公共节点 */public class FindFirstCommonNode { public ListNode FindFirstC...
2018-06-10 19:28:17 242
原创 数组中的逆序对
package com.dugstudio.SwordToOfferBook.Singleton.Interview;import java.util.Arrays;/** * @Author JH * @CreateDate 18-6-10 * @Description 数组中的逆序对 */public class InversePairs { /** * ...
2018-06-10 19:03:00 220
原创 判断该数组是不是某二叉搜索树的后序遍历的结果
/** * @Author JH * @CreateDate 18-6-9 * @Description */public class VerifySquenceOfBST { //方法一 public boolean VerifySquenceOfBST(int [] sequence) { if (sequence==null||sequence....
2018-06-09 16:58:19 391
原创 判断给定出栈序列是否为该给定进栈次序的弹出顺序
package com.dugstudio.SwordToOfferBook.Singleton.Interview;import java.util.Stack;/** * @Author JH * @CreateDate 18-6-9 * @Description 判断给定出栈序列是否符合 进栈次序的出栈可能 * 利用辅助栈 */public class IsPopOrde...
2018-06-09 15:50:46 372
原创 常数时间内查找栈中最小的元素
import java.util.Stack;/** * @Author JH * @CreateDate 18-6-9 * @Description 栈中最小的元素 */public class MinStack <E extends Integer>{ private Stack<E> minStack=new Stack<E>();...
2018-06-09 10:49:17 1386
原创 反转链表
package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-8 * @Description 反转链表 */ public class ReverseList { public Node ReverseList(Node head){ ...
2018-06-08 17:12:43 233
原创 在O(1)时间内删除链表节点
package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-8 * @Description 在O(1)时间内删除链表节点 */class Node{ public Integer value; public Node next;}pu...
2018-06-08 16:07:24 409
原创 打印小于n位的所有数字
package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-8 * @Descriptionv 从1 打印n位数 eg:1,2,3...,999...999 */public class Print1ToMaxOfNDigits { public ...
2018-06-08 16:04:12 419
原创 二进制反射格雷码 幂集
import java.util.ArrayList;import java.util.List;/** * @Author JH * @CreateDate 18-6-7 * @Description 二进制反射格雷码 幂集 */public class BRGC { private List<String> l1; public List<St...
2018-06-07 22:47:56 940
原创 字典序的全排列
import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * @Author JH * @CreateDate 18-6-7 * @Description 字典序的全排列 */public class LexicographicPermute { privat...
2018-06-07 22:04:12 498
原创 拓扑排序的两种实现DFS和减一思想
package com.dugstudio.practiceBook;import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * @Author JH * @CreateDate 18-6-7 * @Description 拓扑排序 对于图中的每一条边,边的起始点总是排在终点之前 *...
2018-06-07 18:24:45 616
原创 希尔排序
/** * @Author JH * @CreateDate 18-6-7 * @Description 希尔排序 */ //使用int数组时要将泛型继承改为Integer这样才能使用compareTopublic class ShellSort <E extends Character> { public void shellSort(E [] array,in...
2018-06-07 15:04:46 192
原创 高性能MySQL复制与缓存
复制解决的基本问题 让一台服务器的数据让其他服务器保持同步,一台主库的数据可以同步到多台备库上,悲苦本身也可以被配置成另外一台服务器的主库。 MySQL支持两种复制方式:基于行的复制和基于语句的复制(逻辑复制)。这两种都是在主库上记录二进制日志,在备库重放日志的方式来实现异步的数据复制, 这说明同一时间主备库存在不...
2018-06-06 17:50:46 480 1
原创 MySQL查询优化
应用WHERE语句的条件 在索引中使用where条件来过滤不匹配的记录,在存储引擎年后过滤层完成 使用索引覆盖扫描(Extra中出现了Using index)来返回记录,直接从索引中过滤不需要的 记录并返回命中结果,这是在MySQL服务层完成的,但无须再回表查询记录。 从数据表中返...
2018-06-03 20:59:21 329
原创 数值的整数次方
数值的整数次方/** * @Author JH * @CreateDate 18-6-2 * @Description 数值的整数次方 */public class Power { public double Power(double base, int exponent) { if (base!=0&&exponent==0)return 1...
2018-06-02 21:46:42 402 1
原创 十进制转成二进制中1的个数
解法一:让临时变量每次乘以二再与源数字相与,测试每一位上的数字是否为1 public int NumberOf1(int n) { int temp=1,count=0; while(temp!=0){ if((temp&n)!=0){ count++; } temp=te...
2018-06-02 21:03:52 989
原创 十进制和二十六进制转换
十进制和二十六进制转换 /** * @Author JH * @CreateDate 18-6-1 * @Description A表示第一列 B表示第二列 C表示第三列...Z表示第26列 AA表示第27列... * * 输入一个字符串 输出他表示第几列 */ public int get(String str){ char s;in...
2018-06-01 22:57:45 2230
原创 旋转数组最小的数
旋转数组最小的数import java.util.ArrayList;/** * @Author JH * @CreateDate 18-6-1 * @Description 旋转数组最小的数 * 利用旋转数组两部分有序的特点,使用二分法划分 如果中间值大于末尾值则说明最小数在mid-high之间 * 如果中间值小于low的值说明最小值在low-mid之间, */public ...
2018-06-01 22:02:55 234
原创 两个队列实现栈
两个队列实现栈import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/** * @Author JH * @CreateDate 18-6-1 * @Description 两个队列实现栈 */public class StackToQueue { private Queu...
2018-06-01 18:57:41 186
原创 B-树 B+树定义与简单的操作
B-树 B+树定义与简单的操作 B-树的定义 节点的孩子节点的最大数称为阶用m表示 所有的叶子节点在同一层,并且不带信息 每个节点最多含有m颗子树,最多含有m-1个关键字 根节点不是终端节点那么根节点至少有两个子树 除根节点以外其他非叶子节点至少有m/2向上取整个子树 每个非叶子节点的结构为:n,p0,k1,p1,k2,p2...
2018-05-31 22:26:31 1897
原创 从尾到头打印链表每个节点的值
package com.dugstudio.SwordToOfferBook.Singleton.Interview;import java.util.ArrayList;import java.util.Stack;/** * @Author JH * @CreateDate 18-5-30 * @Description 输入一个链表,从尾到头打印链表每个节点的值。 */ c...
2018-05-30 22:50:54 284
原创 排序二维数组查找
排序二维数组查找/** * @Author JH * @CreateDate 18-5-30 * @Description 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 */public class TwoDimensionArrayLookup { public boolean Find(int target, int [...
2018-05-30 21:32:52 371
原创 求两个整数之和 找出所有和为S的连续正数序列 字符串循环左移(ROL)
求两个整数之和 找出所有和为S的连续正数序列 字符串循环左移(ROL)package com.dugstudio.SwordToOffer;import java.util.ArrayList;/** * @Author JH * @CreateDate 18-5-27 * @Description */public class FindContinuousSequenc...
2018-05-27 22:11:23 233
原创 树的深度 递归非递归实现
树的深度 递归非递归实现package com.dugstudio.SwordToOffer;import java.util.LinkedList;/** * 树的深度递归和非递归算法 */class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; p...
2018-05-26 23:18:52 1950
原创 给定范围n内给定数字m的个数
给定范围n内给定数字m的个数求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数? 为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。 ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 编程之美上给出的规律:如果第i位(自右至左,从1开始标号)上的...
2018-05-26 23:17:10 1212
原创 数组拼接成最小的数字
数组拼接成最小的数字package com.dugstudio.SwordToOffer;import jdk.nashorn.internal.ir.IdentNode;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Li...
2018-05-26 23:14:27 1190
原创 JVM清除算法
标记-清除算法 标记之后清除所有标记过的对象,会产生大量的内存碎片,两个阶段效率都不高 复制算法 将内存分为两部分,第一部分的空间占满了就将还存活的对象, 复制到另一块上,把用过的那一块清除掉 现在的商业虚拟机新生代就是使用这种但是是划分为8:1:1 eden、 survivor0、 survivor1、每次就...
2018-05-24 21:38:53 454
原创 ReentrantReadWriteLock源码解析
NonfairSync ReentrantReadWriteLockstatic final class NonfairSync extends Sync { private static final long serialVersionUID = -8159625535654395037L; final boolean writerShouldBlock() { ...
2018-05-20 16:11:30 201
原创 AQS详解
Node节点获取同步状态失败的线程,等待的状态,以及先驱和后继节点将其加入同步队列,同事会阻塞当前线程,同步状态释放时,会把首节点中的线程唤醒,使其再次获取同步状态 static final class Node { /** 标志着一个节点是处在共享模式*/ static final Node SHARED = new Node(); ...
2018-05-20 11:03:28 196
原创 ReentrantLock与AQS
ReentrantLock的Sync继承自AQSSync实现了nonfairTryAcquire 、tryRelease、isHeldExclusively, 而TryAcquire和lock留给子类实现abstract static class Sync extends AbstractQueuedSynchronizer { private static fina...
2018-05-19 21:28:59 211
原创 同步状态
同步状态public enum State { /** 线程新建未开始 */ NEW, /** 在虚拟机运行但是可能在等待其他来自操作系统的资源 */ RUNNABLE, /** 一个线程在等待监视器锁的阻塞状态为了进入或者重入一个同步块或者方法 */ BLOCKED, /** 无限等待其他线程执...
2018-05-19 16:54:33 817
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人