自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DragonYu

不断成长

  • 博客(42)
  • 资源 (7)
  • 收藏
  • 关注

原创 guava限速器原理及使用

背景: ergate-realtime在大流量情况下无法对任务dump数据进行读写限制,导致影响正常业务的读请求,那么如何对ergate中的任务通过配置化的方式进行读写限速呢?技术: guvav中提供了对应用中接口进行限速的API->RateLimiter,RateLimiter中提供了两种方式实现对接口 进行限速,一种是平滑突出流,另一种是预热突出流。平滑突发限流是对陡增流量进行限速,限制1s内的QPS大小。平滑预热限流是对陡增流量进行缓慢降速,而不是直接降...

2021-01-06 22:37:56 782

原创 Elasticsearch分词器介绍

ES自带分词器有哪些?有哪些特点?Standard Analyzer:标准分词器,也是ES的默认分词器,按词切分,小写处理,默认停用词默认是关闭的。Simple Analyzer:按照非字母切分,非字母都会被去除,即只处理字母,小写处理。Whitespace Analyzer:按照空格切分。Stop Analyzer:相对于Simple Analyzer多了stop filter,会把is,a,the等无语义的词去除,即含有停用词。Keyword Analyzer:不

2020-10-15 00:09:26 1780

原创 ElasticSearch入门

ElasticSearch是面向文档的,文档是所有可搜索数据的最小单位,文档在ES中会被序列化层JSON格式的数据,每个文档都一个一个文档ID,唯一标识一个文档数据。

2020-10-13 23:42:17 111

原创 wget安装过程记录

首先去https://ftp.gnu.org/gnu/wget/下载wget安装包,根据需求下载所需要的即可。我是在Mac上进行安装,所以下载的是wget-1.9.1.tar.gz这个版本的,我是使用比较简单的安装方式,加压,编译,运行。加压下载的文件:tar zxvf wget-1.9.1.tar.gz 进入加压的文件夹中:./configure 编译:make 安装:sudo make install如果安装了homebrew软件,使用这个软件的一些命令也可以安装,可以搜相关教程。..

2020-07-12 16:51:47 905

原创 IDEA常用快捷键记录以备自己使用

向下复制一行 command + D 删除某一行 command + Y 自动补充数据返回类型 command + Alt + V 回退或返回光标到上一个位置或后一个位置 Alt + command + 左右键...

2020-02-24 20:39:36 112

原创 Java类加载机制

理解Java的类加载机制过程类加载的概述虚拟机把描述类的数据从Class文件加载到内存,并对这些数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的时机类从被加载到虚拟机内存中开始,到卸载为止,整个生命周期包括:加载(Loading),验证(Verification),准备(Preparation),解析(Resolutio...

2019-11-25 11:10:09 63

原创 Redis缓存一致性的解决方案

出现缓存一致性的原因:

2019-11-15 17:50:04 292

原创 归并排序

思想:归并思想有点像二分法,将一个无序数组进行两两分隔,分别对两个子数组进行排序,然后进行合并。分组的过程可以使用递归和非递归,时间复杂度都是O(logn),归并的过程中时间复杂度为n,因为需要对整个数组进行归并。我采用递归的方式进行操作://分隔数组操作private static void Merge_Sort(int[] arr, int L, int R) { if...

2019-09-24 10:15:55 104

转载 MySQL索引实现原理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-09-20 09:48:02 218

原创 翻转链表

输入一个链表,翻转链表后,输出新链表的表头。解:此题,和从尾到头打印链表相似,可以采取相似的方法,采用两个栈,先入栈再出栈,那么元素的出栈顺序就是倒着输出的。代码如下:Stack<ListNode> stack = new Stack<ListNode>();ListNode curr = head;while(curr != null){ st...

2019-08-19 11:50:47 217

转载 Java并发包concurrent------ConcurrentHashMap

ConcurrentHashMap从JDK1.5开始开始随java.util.concurrent包一起引入JDK中,主要解决HashMap线程不安全和Hashtable效率不高的问题。HashMap是线程不安全的,而Hashtable中的方法加上了synchronized关键字而线程安全了,但是效率低下,所以ConcurrentHashMap的出现解决了这个问题,ConcurrentHashMa...

2019-08-17 19:22:04 124

原创 树的子结构

题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解:可以想到遍历每一个B中的元素是否能够在A中找到,如果每一个元素都能在A中一一对应找到那B就是A的子树。因此可以采用递归的方法就行一一匹配。代码如下:第一步:只有在左右树的根节点不为空的情况下才会进行比对。临时变量result作为返回值。 如果左右根...

2019-08-14 11:56:08 71

原创 二叉树的镜像

题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5解:由...

2019-08-14 09:31:40 83

原创 链表中倒数第K个结点

输入一个链表,输出该链表中倒数第K个结点。解:倒数第K个结点,也就是正着数链表的第(链表元素个数 - K + 1)个元素,所以,可以先获取链表元素的个数,然后在根据计算获取倒数第K个结点。代码如下:ListNode curr = head;int nums = 0;while(curr != null){ //获取结点个数 nums++; curr = cur...

2019-07-25 17:12:26 65

原创 数值的整数次方

给定一个double类型的浮点数baseint类型的整数exponent。求base的exponent次方。解:由于exponent给的是int类型,不确定正负,所以需要进行判断,正负之分使得结果不同。代码如下:double sum = 1.0;if(exponent < 0){ for(int i = 0; i < (-exponent); i++){ ...

2019-07-25 10:49:49 58

原创 二进制中1的个数

输入一个整数,输出该数二进制中1的个数。其中负数用补码表示。解:最简单的想法就是将整数转化为二进制数,放入数组中,然后遍历数组,记录1的个数。使用JDK提供的方法转化成二进制数,代码如下:char[] binary = Integer.toBinaryString(n).toCharArray();int a = 0;for(int i = 0; i < binary.le...

2019-07-25 10:42:23 83

原创 从尾到头打印链表

输入一个单链表,按照链表值从尾到头的顺序返回一个ArrayList。解:首先最容易想到的就是先正序输出到ArrayList,然后在翻转ArrayList即可。代码如下:ArrayList<Integer> lists = new ArrayList<>();while(listNode != null){ lists.add(listNode.va...

2019-07-25 10:31:46 76

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

用两个栈实现一个队列,完成队列的Push和Pop操作,队列中的元素的int类型。解:创建两个栈,入队就直接向其中一个栈执行入栈操作即可;出队操作:由于栈的出入和队列的出入刚好相反,所以在出队时,需要将之前入栈的元素进行一一出栈并且入栈到另一个栈,然后执行出栈操作,也就是出队操作。具体如下代码所示:Stack<Integer> stack1 = new Stack&lt...

2019-07-25 10:07:02 63

原创 数据库事务

事务定义 事务保是指数据库在对一个或多个关联的数据库操作,比如对一个员工信息进行存储时,和他相关联的角色信息,所属部门等信息,即数据库事务就是对数据操作的一个完整的持久化。## 满足事务的条件 一个事务需要满足四个规则:1. 原子性(Atomicity):规定一个事务的操作要么全部完成,要么不完成,不会在中间的某个环节结束。如果事务在中间发生错误或异常,会被回滚到最初事...

2019-06-22 22:48:28 73

原创 Java实现二叉搜索树

概述:和链表一样,是一种动态数据结构,也是使用指针来实现,在Java中使用类来实现其数据结构。二叉树包含了根节点,孩子节点,叶节点,每一个二叉树只有一个根节点,每一个结点最多只有两个节点,左子树的键值小于根的键值,右子树的键值大于根的键值;二叉搜索树也是一种二叉树,每一个颗二叉树的子树也是一颗二叉搜索树。也可以定义重复元素的二叉搜索树,只要让左节点值小于等于其根节点或右节点大于等于其根...

2019-06-08 14:30:30 1671 3

转载 解决 Error:No suitable device found: no device found for connection "System eth0"

今天在虚拟机中下载Redis时,发现CentOS的网络不可用,晚上也搜了很多帖子,重置网络设置也没用,重新启动网卡也没有,后来有一个帖子解决了,主要问题是CentOS中的HWAddr和虚拟机中虚拟出来的网卡HWAddr地址不一样。解决方法如下:首先使用ifconfig命令查看HWAddr是多少然后进入到 /etc/sysconfig/network-scripts/ 然后进...

2019-06-04 17:36:56 1461

原创 Redis入门

Redis简单介绍

2019-06-03 10:39:53 100

原创 简单工厂模式

概述这是设计模式中最简单的模式,虽然他不是23中GOF中的一种,但是应用也是很频繁的;这也是学习其他设计模式的基础,在简单工厂模式中,只需要记住一个参数就可以获取所需对象实例,他提供专门的核心工厂类来负责对象的创建,实现对象创建和使用的分离。通过一个例子来理解简单工厂模式:有一个农场,当用户需要一中水果时该农场能够根据用户所描述的水果名称返回水果。这里面,水果农场被称为工厂,而生成的水果被...

2019-05-28 21:36:38 160

原创 链表的实现

数据结构:一个链表是由一个个节点连接而成,每一个结点又包含数据和指向下一节点的指针;还需要一个计数器,记录节点的个数;对于不同的实现可能对头结点有不同的要求,比如头结点直接就是指向第一个元素,或者设置一个虚拟头结点,不存储任何值,直接指向链表的第一个元素。带头结点:首先需要有一个节点类,类中应该包含指向下一个节点的指针,在Java中就是引用,还应该有一个当前节点存储的元素。然后需要...

2019-05-26 11:39:15 142

原创 LeetCode第六题(20):有效的括号

给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false...

2019-05-25 13:49:08 87

原创 Java设计模式之单例模式

在一个程序中有时候对于一个类只产生一个对象是很重要的,比如数据库中进行连接数控制就是利用单例模式的思想,只不过可能是产生多个对象,这个也是通过单例模式来实现的;再比如Windows中的任务管理器的窗口,只会打开一个,如果能够打开多个那么怎样显示呢,因为同时系统资源利用,CPU占有率是一样的,控制只会产生一个窗口就不会出现问题,而且就算多个窗口显示都一样,这样就会浪费内存资源;单例模式想要做到的...

2019-05-21 09:18:52 106

原创 JDK源码分析(一)------java.lang.Object

概述Object是所有类的根类,其它所有类都默认继承Object类,也就是说所有对象或数组都实现这个类的所有方法。只有一个无参的构造方法。方法getClass(),会返回一个运行时的类的信息,可以通过反射在程序运行时选择要执行的方法。表示某对象运行时类的Class对象。hashCode(),返回该对象的哈希码,Java中虚拟机会为每一个对象一个唯一的哈希码来标识对象,对于程序中...

2019-05-20 21:43:50 319

原创 Java集合之Map

Map概述:

2019-05-20 21:34:59 108

原创 线程的同步

同步的概述:当多个线程同时对某一个数据区域或内存区域进行操作时,如果不施加任何措施,很有可能造成数据操作混乱。比如说最直接的例子,你从网上定车票,一共有100张票,但是有3个窗口同时售这100张票,假设此时有两个人同时买同一张票,那么就卖出了两张一样的票,而这在实际中是不能出现的。临界区:某一段被多个线程共享的数据区域,线程必须对它进行互斥访问,线程中访问共享数据的那段代码称为临...

2019-05-20 21:24:39 110

原创 Java内存区域与内存溢出异常

Java虚拟机简单介绍一.Java虚拟机Java 虚拟机屏蔽了与具体操作系统平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行,可以说Java的跨平台性就是依赖于JVM。二.JVM 是 Java 的核心和基础,在 Java ...

2019-05-18 10:23:55 105

原创 SpringMVC学习整理笔记

学习完SpringMVC后的整理出来的主要技术点。

2019-05-16 20:25:41 173

原创 并行程序需要掌握的基础知识点

一.线程和进程在操作系统中,进程是作为独立运行的基本单位,是程序一次执行的过程,对应着从代码加载,执行到执行结束这样一个完整的过程;操作系统中可以同时运行很多个应用程序,每一个应用程序对应着一个进程,例如用户写文档时,可以听音乐,还可以上网搜索资料。线程是比进程更小的,能独立运行的基本单位。进程是提高程序间的并行执行能力,线程是程序内部并行执行能力的。线程与进程相比较有哪些特点:①线程...

2019-05-15 21:08:38 384

原创 LeetCode第五题(14):最长公共前缀

题目内容:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。解析:第一种解法:暴...

2019-03-12 19:00:03 172

原创 LeetCode第四题(13):罗马数字转整数

题目内容:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为...

2019-03-12 18:34:51 248

原创 LeetCode第三题(9):回文数

题目内容:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此...

2019-03-11 22:17:59 176

原创 LeetCode第二题(7):整数翻转

题目内容:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返...

2019-03-11 17:55:08 170

原创 LeetCode第一题(1):两数之和

题目内容:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...

2019-03-10 21:17:36 133

原创 Java数组实现栈

Java实现数据结构栈可以基于数组实现,基本代码如下:public class Stack { //栈底层使用数组 int[] elements; //初始化栈 public Stack() { elements = new int[0]; } //压栈 public void push(int num) { int[] newArray = new ...

2019-03-10 19:44:33 238

原创 异常处理相关

异常简介:Throwable类,所有的异常类都继承于它!它有两个类:Error和ExceptionError一般是指虚拟机错误(VirtualMachineError)和线程死锁(ThreadDeath)Exception一般是指编码,环境,用户操作输入出现问题,它又有RuntimeException(非检查异常)和检查异常RuntimeException:运行时异常是由JVM自动抛出...

2019-03-09 11:35:52 122

原创 关于字符串

概述:String对象创建后是不能修改的,是不可变的!所谓修改其实是创建了新的对象,所指向的内存空间不同了。注意事项:1.多次出现相同的字符串常量,Java只会编译一个!例 String s1 = "爱慕课";String s2 = "爱慕课";String s3 = new String("爱慕课");String s4 = new String("爱慕课");Sys...

2019-03-09 11:32:54 121

wget-1.9.1.tar.gz

Mac中会使用到wget命令下载一些安装包,需要安装该软件,本安装包是适用于Mac或者Linux的安装包,wget1.9.1.tar.gz

2020-07-12

Android 闹钟课程设计,报告,程序截图

里面包含闹钟的源代码和可运行的APK文件,并且有直接可用的报告。

2019-06-27

Java学习笔记(必看经典).doc

里面包含基础知识,如修饰符,常用的关键字等,内部类,面向对象思想,异常处理相关知识点,常用集合知识点等等。

2019-06-27

去除Windows

强迫症进来,想必你也曾经被刚装完系统Windows桌面图标的小箭头烦恼过吧,网上的教程多事修改系统,可是很容易出错,这个小程序能够帮你去除它并且不影响使用。

2018-06-01

android-studio-bundle安装包(Windows)

这是一个AndroidStudio2.2的安装包,里面集成了Android开发所有组件,不需要自己下载组件,是Windows环境下!

2018-06-01

品优购全部资料及教程

里面是最新黑马第49期培训班的项目教学视频,及其所需的所有的资源文件,老师讲的很好。

2018-06-01

MyBatis学习视频及其所需要的相关资源

资源内的视频是传智28视频教学,入门文档;资源包括案例,逆向工程文件及其源码,各种整合jar包;并且有Redis的各种资料和SecureCRT和CentOS6.5等资源!

2018-06-01

空空如也

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

TA关注的人

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