自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (16)
  • 收藏
  • 关注

原创 判断一个二叉树是否是平衡二叉树

题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。平衡二叉树(AVL):它又称为AVL树,它是一棵空树或者它的左右子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。public class BalanceTree { // 是否为平衡二叉树 static boolean isBalanced = true; private static in...

2019-12-19 09:48:35 295

原创 数组中出现次数最多的数字

public class MoreThanHalfSize { public static int[] array = {3, 2, 5, 2, 2, 2, 6, 7, 2}; /** * 方法四: * <p> * 思想:将一个目标元素和一个其它元素进行抵消,由于目标元素的数量大于其它元素的数量,故经过多次抵消后,剩下的元素即...

2019-11-29 09:27:43 1224

原创 数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1, 2, 3, 3, 3, 3, 4, 5}和数字3,由于3在这个数组中出现了4次,因此输出4。public class Offer39 { //找出第一个k的位置 private int getFirstK(int nums[], int k, int start, int end) { if ...

2019-11-26 17:14:56 171

原创 数组中数值和下标相等的元素

题目描述:假设一个单调递增的数组里的每个元素都是整数且是唯一的,请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如,在数组{-3,-1,1,3,5}中数字3和它的下标相同。public class Offer39 { public static void main(String[] args) { int[] nums = {-3, -1, 1, 3,...

2019-11-26 15:45:53 155

原创 合成两个排序的链表(25)

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。public class Offer25 { public static Node25 Merge(Node25 list1, Node25 list2) { Node25 head; if (list1 == null) { return list2; } ...

2019-11-22 15:18:11 74

原创 调整数组顺序使奇数位于偶数前面21

题目:输入一个整数数组,实现一个函数来调整数组顺序使奇数位于数组前半部分,偶数位于数组后半部分。public class ReorderOddEven { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 2, 3, 5, 4, 6, 7, 9, 11, 12}; reorder(a...

2019-11-15 11:45:44 86

原创 删除链表中重复的结点18

题目描述:删除有序链表中的重复节点,返回头节点,例如1->1->2->2->3->4,返回3->4public class Offer18 { public static void main(String[] args) { ListNode node1 = new ListNode(1); ListNode ...

2019-10-08 13:42:08 100

原创 数值的整数次方16

题目:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。public static double powerWithExponent(double base, int exponent) { if (exponent == 0) { return 1; ...

2019-09-27 08:59:49 122

原创 旋转数组的最小数字11

题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。public static void main(String[] args) { int[] array = {3, 4, 5, 1, 2}; ...

2019-09-10 17:19:15 68

原创 斐波那契数列10

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。斐波那契数列属于经典的递归问题,对于这题的求解,我们首先要知道斐波那契数列的状态转移式,即f[n]=f[n-1]+f[n-2],且在n=1或2时,f[n]=1。public static int feibolaqiByCircle(int n) { if (n < 0)...

2019-09-06 10:12:04 540

原创 用两个栈实现一个队列与用两个队列实现一个栈9

用两个栈实现一个队列public class Offer9 { public static void main(String[] args) { CustomQueue<Integer> customQueue = new CustomQueue(); customQueue.add(0); customQueue.ad...

2019-09-03 13:20:02 96

原创 二叉树的下一个节点8

题目描述:给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别别指向左右子节点的指针,还有一个指向父节点的指针例如:这棵树的中序遍历是:D,B,H,E,I,A,F,C,G解题思路:(1)当节点的右子树不为空:节点的下一个节点就是这个节点的右子树中的最左子节点,也就是从右子节点出发一直沿着指向左子节点的指针,走到最后一个叶子节点就是此节点的下一个...

2019-09-03 08:44:58 93

原创 二维数组中的查找4

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public static boolean Find_2(int target, int[][] array) { if (array == null || array.length == 0 || (...

2019-08-28 18:55:03 85

原创 不修改数组找出重复的数字

题目:在一个长度为n+1的数组里的所有数字都在1到n的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2, 3, 5, 4, 3, 2, 6, 7},那么对应的输出是重复的数字2或者3。思路1:我们开辟一个新的数组,初始化为0,然后把原始数组每个数据的值作为下标,把新数组通过这个下标数据取出来,如果取出来是1,就...

2019-08-27 10:58:22 127

原创 快速排序

思路1:import java.util.Arrays;public class QuickSortTest { public static void main(String[] args) { int arr[] = {-9, 78, 23, -567, 0, 70, -1, 900, 4561}; System.out.println("...

2019-08-02 15:16:31 345

原创 希尔排序-老韩图解

package com.atguigu.sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class ShellSort { public static void main(String[] args) { //int[] ar...

2019-07-13 15:36:22 263

原创 String知多少

1、先看下a,b,c三个string有什么不同?String a = "hello";String b = new String("hello");final String c = "hello";答:a指向常量池,而b指向堆。在java中,遇到new关键字,即会在堆中创建对象。String b = new String("hello")时会先去常量池中找是否有"hello",如果常...

2019-07-05 17:46:50 142

原创 单链表反转

Nodeclass Node { private int Data;// 数据域 private Node Next;// 指针域【链域】,存储下一个节点 public Node(int Data) { this.Data = Data; } public int getData() { return ...

2019-06-24 17:13:02 91

转载 归并排序

基本思想  归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之   可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方...

2019-05-28 16:38:20 68

原创 递归-跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解法一:使用循环的方法public static int test(int number) { int a = 1; int b = 2; int c = 0; if (number == 0) { return...

2019-05-25 16:30:59 152

原创 SpringBoot热部署(IntelliJ IDEA)

1、在项目pom.xml文件中添加spring-boot-devtools依赖和启动插件。添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> &...

2019-04-28 17:53:23 226

转载 单链表反转

要求很简单,输入一个链表,反转链表后,输出新链表的表头。  反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。递归法总体来说,递归法是从最后一个Node开始,在弹栈的过程中将指针顺序置换的。为了方便理解,我们以 1->2->3->4...

2019-04-25 13:35:21 122

原创 ElasticSearch安装教程(redhat6.5+ES6.7.0)

1、JDK的安装ES的运行依赖于JDK,所以必须先安装它,但是本教程主要是讲解ES的安装,所以JDK的安装在此省掉。但是需要在这里说明的是ES6之后的版本不能低于DK1.8,所以必须确保jdk1.8以上版本,否则后面会报JDK版本错误。2、解压安装包 tar -zxvf ./elasticsearch-6.7.0.tar.gz3、启动ES进入ES安装目录 cd elas...

2019-03-28 16:28:59 838

原创 数组中重复的数字

问题:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。public static void main(String[] args) { int[] array = { 6, 3, 1, 0, 2, 5, 3 }; duplicateNumber(array, arr...

2019-03-20 16:21:26 84

原创 数组和LinkedList反转

由于数组和LinkedList数据结构不同,所以采用了不同的算法。/** * @Title: reverseList * @Description: LinkedList反转 * @param list * @return 参数 * @throws */ public static LinkedList&lt;Integer&gt; rever...

2019-03-15 15:56:12 531

原创 字符串反转

描述:字符串反转,即把字符串"abcd"变为"dcba"public static void main(String[] args) { String str = "abc"; System.out.println(reverse6(str)); } public static String reverse6(String str) { int len = str.leng...

2019-03-15 14:34:21 178

原创 top k

问题:从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题。1、Java基于TreeSet实现public static void main(String[] args) throws Exception, RemoteException { int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, ...

2019-03-14 18:09:22 191

转载 递归

何时使用递归一、算法说明递归来源于数学中的归纳法,归纳法是数学里的一种证明方法,它通常有以下两个步骤:证明当 n 等于某一个值(通常是限定范围内的第一个值)时命题成立;假设当 n = m 时命题成立,证明当 n = m + 1 时命题也成立。数学中的归纳法由已知推向未知由前推向后,而在编程中通常是给定 n 的值(如 n = m)求结果,这与数学中的归纳法在过...

2019-03-12 18:55:23 204

转载 elasticsearch面试

1、elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。面试官:想了解应聘者之前公司接触的ES使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。解答:如实结合自己的实践场景回答即可。比如:ES集群架构13个节点,索引根据通道不同共20+索引,根据日期,每日递增20+,索引:10分片,每日递增1亿+数据,每个通道每天索引大...

2019-02-25 13:23:42 286

转载 字典数据结构-FST(Finite State Transducers)

http://www.cnblogs.com/LBSer/p/4119841.html1 lucene字典&nbsp; &nbsp; &nbsp; 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找到该term所对应的倒排文档id列表等信息。实际上lucene索引文件后缀名为tim和tip的文件实现的就是lucene的字典功能。&nbsp; &nbsp...

2019-02-25 13:18:08 7796 3

原创 数据结构与算法(2)-直接选择排序

public static void main(String[] args) { int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1, 8 }; System.out.println("排序之前:"+Arrays.toString(a)); // 直接选择排序 for (int i = 0; i &lt; a...

2019-02-20 14:13:39 119

原创 数据结构与算法(1)-直接插入排序

public static void main(String[] args) { int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 }; System.out.println(Arrays.toString(a)); for (int i = 1; i &lt; a.length; i++) { int...

2019-02-19 17:59:22 125

转载 Java常用的八种排序算法与代码实现

Java常用的八种排序算法与代码实现 排序问题一直是程序员工作与面试的重点,今天特意整理研究下与大家共勉!这里列出8种常见的经典排序,基本涵盖了所有的排序算法。1.直接插入排序&nbsp; &nbsp; &nbsp; 我们经常会到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成...

2019-02-18 13:49:51 117

原创 nio(3)-直接缓冲区和非直接缓冲区

1、非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在 JVM 的内存中2、直接缓冲区:通过 allocateDirect() 方法分配直接缓冲区,将缓冲区建立在物理内存中。可以提高效率缓冲区优缺点1、通过isDirect()方法可以查看缓冲区类型。2、直接缓冲区把数据写入到物理内存后,数据就不受应用程序控制,而由操作系统控制了,所以不易控制。3、...

2019-01-30 15:44:35 296

原创 nio(2)-缓冲区buffer

Buffer 就像一个数组,可以保存多个相同类型的数据。根据数据类型不同(boolean 除外) ,有以下 Buffer 常用子类: ByteBuffer  CharBuffer  ShortBuffer  IntBuffer  LongBuffer  FloatBuffer  DoubleBuffer上述 Buffer 类 他们都采用相似的方法进行管理数据,只是各自管理的数据类...

2019-01-30 14:23:53 194

原创 nio(1)-nio简介

Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。IO NIO 面向流(Stream Oriented) 面向缓冲区(Buffer Oriented) ...

2019-01-30 13:57:24 113

原创 springboot-外部Servlet容器启动原理

一、jar包和war包启动区别jar包:执行SpringBoot主类的main方法,启动ioc容器,创建嵌入式的Servlet容器;war包:启动服务器,服务器启动SpringBoot应用【SpringBootServletInitializer】,启动ioc容器;二、servlet3.0扫盲servlet3.0(Spring注解版):规则:1)、服务器启动(web应用启动)会创...

2019-01-04 09:22:34 190

原创 springboot-嵌入式Servlet容器启动原理

一、SpringBoot应用启动运行run方法二、run方法调用了refreshContext(context);SpringBoot刷新IOC容器【创建IOC容器对象,并初始化容器,创建容器中的每一个组件】;如果是web应用创建AnnotationConfigEmbeddedWebApplicationContext,否则:AnnotationConfigApplicationContext...

2019-01-03 19:14:06 181

原创 springboot-嵌入式Servlet容器自动配置原理

一、在springboot-autoconfigure的jar包下查找嵌入式的Servlet容器自动配置类org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration.class @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)@C...

2019-01-03 18:18:38 851

转载 springboot-自动配置原理

1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration2)、@EnableAutoConfiguration 作用:利用EnableAutoConfigurationImportSelector给容器中导入一些组件? 可以查看selectImports()方法的内容; List configurations = getCan...

2018-12-25 18:02:49 229

pd4ml将HTML文件转换成PDF文件

网上关于pd4ml下载动不动就几十分,找了好久重要让我找到了(包括fonts.jar,ss_css2.jar,pd4ml.jar),供大家下载

2020-08-06

互联网架构师视频

互联网架构师视频,包含源码,视频,资料,讲授的都是当下很时兴的技术,希望对有架构梦想的朋友有帮助

2018-10-17

JavaScript视频教程资料

很好的Javascript视频教程,对Javascript的原理做了深入讲解,包含视频,资料,文档。看完了这个视频,如果还是不了解Javascript,你来找我

2018-10-17

老男孩高级架构师11期

老男孩高级架构师11期,很好的架构师视频资料,对有架构梦想的朋友,值得一看

2018-10-15

高级java软件架构师实战培训视频教程

高级java软件架构师实战培训视频教程,共148讲,包含源码,资料,视频,希望能帮助到大家

2018-10-08

从Paxos到Zookeeper分布式一致性原理与实践

本书从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。全书共8章,分为五部分:第一部分(第1章)主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论;第二部分(第2~4章)介绍了2PC、3PC和Paxos三种分布式一致性协议,并着重讲解了ZooKeeper中使用的一致性协议——ZAB协议;第三部分(第5~6章)介绍了ZooKeeper的使用方法,包括客户端API的使用以及对ZooKeeper服务的部署与运行,并结合真实的分布式应用场景,总结了ZooKeeper使用的最佳实践;第四部分(第7章)对ZooKeeper的架构设计和实现原理进行了深入分析,包含系统模型、Leader选举、客户端与服务端的工作原理、请求处理,以及服务器角色的工作流程和数据存储等;第五部分(第8章)介绍了ZooKeeper的运维实践,包括配置详解和监控管理等,重点讲解了如何构建一个高可用的ZooKeeper服务。

2018-09-29

Redis开发与运维

本书全面讲解Redis基本功能及其应用,并结合线上开发与运维监控中的实际使用案例,深入分析并总结了实际开发运维中遇到的“陷阱”,以及背后的原因, 包含大规模集群开发与管理的场景、应用案例与开发技巧,为高效开发运维提供了大量实际经验和建议。本书不要求读者有任何Redis使用经验,对入门与进阶DevOps的开发者提供有价值的帮助。主要内容包括:Redis的安装配置、API、各种高效功能、客户端、持久化、复制、高可用、内存、哨兵、集群、缓存设计等,Redis高可用集群解决方案,Redis设计和使用中的问题,最后提供了一个开源工具:Redis监控运维云平台CacheCloud。

2018-09-29

Java数据结构和算法

(1)数据结构与算法概念解析 (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结构之链表 (6)数据结构之二叉树 (7)数据结构之霍夫曼树 (8)数据结构之红黑树(一)——基础分析 (9)数据结构之红黑树(二)——插入操作 (10)数据结构之红黑树(三)——删除操作 (11)排序算法(一)——冒泡排序及改进 (12)排序算法(二)——选择排序及改进 (13)排序算法(三)——插入排序及改进 (14)排序算法(四)——归并排序与递归 (15)排序算法(五)——快速排序 (16)排序算法(六)——希尔排序 (17)排序算法(七)——堆排序 (18)排序算法(八)——基数排序 (19)排序算法(九)——八大排序算法总结

2018-09-29

Java程序性能优化

《java程序性能优化——让你的java程序更快、更稳定》共6章,先后从软件设计、软件编码、jvm调优以及程序故障排除等方面介绍针对java程序的优化方法。第1章介绍性能的基本概念、定律、系统调优的过程和注意事项;第2章从设计层面介绍与性能相关的设计模式、组件。第3章从代码层面介绍如何编写高性能的java程序;第4章介绍并行开发和如何通过多线程提高系统性能;第5章立足于jvm虚拟机层面,介绍如何通过设置合理的jvm参数提升java程序的性能;第6章为工具篇,介绍获取和监控程序或系统性能指标的各种工具,包括相关的故障排查工具。

2018-09-29

elasticsearch技术解析与实战PDF

Elasticsearch是一个强[0大0]的搜索引擎,提供了近实时的索引、搜索、分析功能。本书作者根据自己多年的开发经验,总结了使用和开发Elasticsearch的实战经验。本书全面介绍Elasticsearch系统结构与功能配置,以及实际应用案例,包括工具、方[0法0]、原则和佳实践。主要内容包括Elasticsearch基本概念与配置,索引的基本概念、管理与设置,架构设计中的字段、对象、映射,搜索中的结构、各种查询方式,聚合中的数字聚合、桶聚合、管道聚合,集群中的监控方式、配置案例,分析模块中的中文分词器、过滤器,高级设置中的关键点,监控与安全方面的技巧,ELK综合示例等。不管你是全文检索和Elasticsearch的初[0学0]者,还是Elasticsearch用户,你都能从书中获益。

2018-09-29

EffectiveJava中文版(第2版)PDF

EffectiveJava中文版(第2版)为我们带来了共78条程序员必备的经验法则,针对你每天都会遇到的编程问题提出了最有效、最实用的解决方案。解压后为PDF文件,约58M

2018-09-28

深入理解Java虚拟机第二版

《深入理解Java虚拟机:JVM高级特性与最佳实践》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果;第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。

2018-09-26

osworkflow

这是一个简单的osworkflow的web应用,比较适合初学或入门者,或想研究osworkflow的人,如果有任何问题,可以联系我.

2013-01-16

jbpm + struts + spring + tomcat

下载后可用eclipse打开,直接部署在tomcat下跑,对初学者非常有用

2013-01-10

空空如也

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

TA关注的人

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