自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JJ_HH

个人学习经历

  • 博客(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 259

原创 异常

异常Throwable ​ ->Error:​ 是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常...

2018-08-11 17:47:36 240

原创 并发编程实战

在并发程序中,使用和共享对象的一些最有效的策略:线程限制:一个线程限制的对象的,通过限制在线程中,而被线程占用,且只能被占有她的线程修改共享只读:一个共享的只读对象,在没有额外同步的情况下,可以被多个线程并发的访问,但是任何线程都不能修改它,共享只读对象包括可变对象和高效不可变对象。共享线程安全:一个线程安全的对象在内部进行同步,所以其他线程无须额外的同步,就可以通过公共接口随意访问它。...

2018-08-11 17:46:52 754

原创 classPath与classPath-含义与区别

classPath:src路径下的文件在编译后会放到WEB-INF/classes路径下吧。默认的classpath是在这里。直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext当然获取不到。 如果单元测试的话,可以在启动或者运行的选项里指定classpath的路径的。classpath是指 WEB-INF文件夹下的c...

2018-08-11 17:46:20 360

原创 索引优化

应用WHERE语句的条件 在索引中使用where条件来过滤不匹配的记录,在存储引擎层过滤完成 使用索引覆盖扫描(Extra中出现了Using index)来返回记录,直接从索引中过滤不需要的 记录并返回命中结果,这是在MySQL服务层完成的,但无须再回表查询记录。 从数据表中返回记...

2018-06-13 07:51:08 257

原创 翻薄饼

/** * @Author JH * @CreateDate 18-6-12 * @Description 翻薄饼 有n张大小各不相同的薄饼,一张叠在另一张上面 将大的放在下边, * 先查找最大的数,如果这个数在最后,不用进行操作,如果这个数在第一位,只需要翻一次,即数组整体换位, * 否则要进行两次交换,第一次将这个数换到第一位,然后再转至数组,使得这个数变为最后一个 */pub...

2018-06-12 18:27:32 699

原创 二叉查找树中删除一个节点

import java.util.Stack;/** * @Author JH * @CreateDate 18-6-11 * @Description 在二叉查找树中删除一个节点 * 1.如果该节点是叶子节点 删除该节点 * 2.如果该节点有左子树 将左子树的根节点代替该节点 * 3.如果该节点只有右子树 将右子树根节点代替该节点 * 4.既有左节点又有右节点,用右节点代替该...

2018-06-11 22:42:16 1126

原创 插值查找

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 284

原创 约瑟夫斯问题

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 918

原创 两个链表的第一个公共节点

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 218

原创 数组中的逆序对

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 173

原创 判断该数组是不是某二叉搜索树的后序遍历的结果

/** * @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 362

原创 判断给定出栈序列是否为该给定进栈次序的弹出顺序

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 339

原创 常数时间内查找栈中最小的元素

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 1326

原创 反转链表

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 186

原创 在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 343

原创 打印小于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 359

原创 二进制反射格雷码 幂集

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 883

原创 字典序的全排列

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 471

原创 拓扑排序的两种实现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 564

原创 希尔排序

/** * @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 142

原创 高性能MySQL复制与缓存

复制解决的基本问题 让一台服务器的数据让其他服务器保持同步,一台主库的数据可以同步到多台备库上,悲苦本身也可以被配置成另外一台服务器的主库。 MySQL支持两种复制方式:基于行的复制和基于语句的复制(逻辑复制)。这两种都是在主库上记录二进制日志,在备库重放日志的方式来实现异步的数据复制, 这说明同一时间主备库存在不...

2018-06-06 17:50:46 411 1

原创 MySQL查询优化

应用WHERE语句的条件 在索引中使用where条件来过滤不匹配的记录,在存储引擎年后过滤层完成 使用索引覆盖扫描(Extra中出现了Using index)来返回记录,直接从索引中过滤不需要的 记录并返回命中结果,这是在MySQL服务层完成的,但无须再回表查询记录。 从数据表中返...

2018-06-03 20:59:21 238

原创 数值的整数次方

数值的整数次方/** * @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 335 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 938

原创 十进制和二十六进制转换

十进制和二十六进制转换 /** * @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 2165

原创 旋转数组最小的数

旋转数组最小的数import java.util.ArrayList;/** * @Author JH * @CreateDate 18-6-1 * @Description 旋转数组最小的数 * 利用旋转数组两部分有序的特点,使用二分法划分 如果中间值大于末尾值则说明最小数在mid-high之间 * 如果中间值小于low的值说明最小值在low-mid之间, */public ...

2018-06-01 22:02:55 203

原创 两个队列实现栈

两个队列实现栈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 140

原创 B-树 B+树定义与简单的操作

B-树 B+树定义与简单的操作 B-树的定义 节点的孩子节点的最大数称为阶用m表示 所有的叶子节点在同一层,并且不带信息 每个节点最多含有m颗子树,最多含有m-1个关键字 根节点不是终端节点那么根节点至少有两个子树 除根节点以外其他非叶子节点至少有m/2向上取整个子树 每个非叶子节点的结构为:n,p0,k1,p1,k2,p2...

2018-05-31 22:26:31 1817

原创 从尾到头打印链表每个节点的值

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 245

原创 排序二维数组查找

排序二维数组查找/** * @Author JH * @CreateDate 18-5-30 * @Description 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 */public class TwoDimensionArrayLookup { public boolean Find(int target, int [...

2018-05-30 21:32:52 325

原创 求两个整数之和 找出所有和为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 193

原创 树的深度 递归非递归实现

树的深度 递归非递归实现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 1916

原创 给定范围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 1163

原创 数组拼接成最小的数字

数组拼接成最小的数字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 1114

原创 JVM清除算法

标记-清除算法 标记之后清除所有标记过的对象,会产生大量的内存碎片,两个阶段效率都不高 复制算法 将内存分为两部分,第一部分的空间占满了就将还存活的对象, 复制到另一块上,把用过的那一块清除掉 现在的商业虚拟机新生代就是使用这种但是是划分为8:1:1 eden、 survivor0、 survivor1、每次就...

2018-05-24 21:38:53 410

原创 ReentrantReadWriteLock源码解析

NonfairSync ReentrantReadWriteLockstatic final class NonfairSync extends Sync { private static final long serialVersionUID = -8159625535654395037L; final boolean writerShouldBlock() { ...

2018-05-20 16:11:30 170

原创 AQS详解

Node节点获取同步状态失败的线程,等待的状态,以及先驱和后继节点将其加入同步队列,同事会阻塞当前线程,同步状态释放时,会把首节点中的线程唤醒,使其再次获取同步状态 static final class Node { /** 标志着一个节点是处在共享模式*/ static final Node SHARED = new Node(); ...

2018-05-20 11:03:28 164

原创 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 184

原创 同步状态

同步状态public enum State { /** 线程新建未开始 */ NEW, /** 在虚拟机运行但是可能在等待其他来自操作系统的资源 */ RUNNABLE, /** 一个线程在等待监视器锁的阻塞状态为了进入或者重入一个同步块或者方法 */ BLOCKED, /** 无限等待其他线程执...

2018-05-19 16:54:33 788

Java集合类的特性

关于Java的集合类面试问题和并发包的几个集合类比较,面试的同学可以看看

2018-06-30

空空如也

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

TA关注的人

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