自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Moonbow

一个有理想的瓜皮。(有些文章因在网上多次转发,具体来源已不清晰,如有侵权,请联系我处理。)

  • 博客(275)
  • 收藏
  • 关注

转载 平衡二叉树

平衡二叉树定义(AVL树)平衡二叉查找树:简称平衡二叉树。由前苏联的数学家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉树,根据科学家的英文名也称为AVL树。它具有如下几个性质:可以是空树。假如不是空树,任何一个结点的左子树与右子树都是平衡二叉树,并且高度之差的绝对值不超过1平衡之意,如天平,即两边的分量大约相同。如定义,假如一棵树的左右子树的高度之差超过1...

2019-06-29 17:55:22 414

转载 Springboot + redis + 注解 + 拦截器来实现接口幂等性校验

一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次等等二、常见解决方案唯一索引 – 防止新增脏数据token机制 – 防止页面重复提交悲观锁 – ...

2019-06-21 09:59:06 203

转载 关于MQ,你必须知道的

使用消息队列场景和好处使用消息队列会带来什么问题,有什么解决方案如何使用MQ(以ActiveMQ为例的简单例子)1.消息队列的应用场景和好处:异步-流量削峰我们先来看下传统的服务器接收处理请求的流程如上图,在不使用消息队列服务器的时候,用户的请求都直怼数据库,在高并发的情况下数据库压力剧增,不仅使得响应速度变慢,还可能因此而挂掉数据库,导致用户页面直接报错,项目经理找上门,然后...

2019-06-21 09:48:13 362

转载 深入理解幂等性

什么是幂等性HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。Methods can also have the property of “idempotence” in that (aside from error or expiration issues)...

2019-06-21 09:36:33 203

转载 实例解读什么是Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,从...

2019-06-20 17:58:17 335

转载 对缓存击穿的一点思考

对缓存击穿的一点思考前言什么是缓存击穿?避免缓存击穿的思路分析前言缓存(内存 or Memcached or Redis…)在互联网项目中广泛应用,本篇博客将讨论下缓存击穿这一个话题,涵盖缓存击穿的现象、解决的思路、以及通过代码抽象方式来处理缓存击穿。什么是缓存击穿?上面的代码,是一个典型的写法:当查询的时候,先从Redis集群中取,如果没有,那么再从DB中查询并设置到Redis集群中。...

2019-06-20 17:28:52 154

转载 JVM的垃圾回收机制 总结(垃圾收集、回收算法、垃圾回收器)

一、 技术背景你要了解吧二、 哪些内存需要回收?2.1 引用计数算法2.1.1 算法分析2.1.2 优缺点2.1.3 是不是很无趣,来段代码压压惊2.2 可达性分析算法2.3 Java中的引用你了解多少2.4 对象死亡(被回收)前的最后一次挣扎2.5 方法区如何判断是否需要回收三、常用的垃圾收集算法3.1 标记-清除算法3.2 复制算法3.3 标记-整理算法3.4 分代...

2019-04-02 14:59:37 237

转载 ssm整合rabbitmq消息队列的简单使用案例

项目:ssm(spring+springmvc+mybatis)编译工具:eclipse消息队列:rabbitmq1.在pom.xml添加rabbitmq依赖:<!--rabbitmq依赖 --> <dependency> <groupId>org.springframework.amqp</grou...

2019-03-20 22:20:25 1076 2

转载 RabbitMQ入门学习

一、消息队列学习MQ是一个互联网架构中常见的解耦利器。什么时候不使用MQ?上游实时关注执行结果什么时候使用MQ?1)数据驱动的任务依赖,多个任务需要轮流执行,轮流订阅上一个任务。2)上游不关心多下游执行结果,上游执行完发送到MQ,多下游订阅MQ。3)异步返回执行时间长死信队列多了一个过期的机制,到期会自动去尝试消费,通过死信交换机做匹配,选择想要的消费失败的消息。https:/...

2019-03-20 20:45:36 127

转载 深入理解Java:类加载机制及反射

一、Java类加载机制1.概述Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型...

2019-03-18 20:51:39 114

转载 到底什么是hash呢?hash碰撞?为什么HashMap的初始容量是16?

原文:https://blog.csdn.net/qq_35583089/article/details/80048285一 ,到底什么是hash呢?hash(散列、杂凑)函数,是将任意长度的数据映射到有限长度的域上。直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹)。也就是说,无论数据块m有多大,其输出值h为固定长度。到底是什么原理?将m分成固定...

2019-03-13 11:33:05 298

转载 这几道Java集合框架面试题在面试中几乎必问

https://www.javazhiyin.com/21717.html

2019-02-15 15:33:17 151

转载 Java类加载机制双亲委派模型及自定义加载器

首先,先要知道什么是ClassLoader类加载器。简单说,类加载器就是根据指定全限定名称将class文件加载到JVM内存,转为Class对象。jvm启动的时候,并不是一次性加载所有的类,而是根据需要动态去加载类,主要分为隐式加载和显示加载。  隐式加载:程序代码中不通过调用ClassLoader来加载需要的类,而是通过JVM类自动加载需要的类到内存中。例如,当我们在类中继承或者引用某个类的时候...

2019-02-15 14:41:02 145

转载 基本数据类型数组转换列表显的有些力不从心

基本数据类型数组转换列表是有缺陷的:开发过程中经常会使用Arrays 和 Collections这两个工具类在数组和列表之间转换,非常方便,但是有时候也会出现一些奇怪的问题。运行后的结果为 “1”;仔细看了一下Arrays.asList的方法说明:输入一个变长参数,返回一个固定长度的列表。注意这里是一个变长参数,看源代码:asList方法输入的是一个泛型变长参数,我们都知道基本类型是不能泛型...

2019-02-15 13:53:06 112

转载 Java中堆内存和栈内存详解

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在...

2019-02-15 11:32:44 276

转载 这道关于String的面试题据说80%的人会答错!

很多人都会答错的一道关于String的题目,究竟有什么难度?今天轻松点,我们一起来看一道关于String的面试题,准确说是改编的面试题!小白: 庆哥,今天我们要学习什么知识啊?庆哥: 今天我们就轻松一下,简单来看一道关于String的题目,毕竟等会我还要看沙海呢。小白: 哈哈,没想到庆哥还追剧啊。庆哥: 劳逸结合嘛,大脑总是需要休息的啊,看看电视剧休息一下还蛮好的,好了咱就不废话了,你知...

2019-02-14 17:52:40 121

原创 java 记录修改日志

需求:记录哪些记录进行了修改,要记录修改前后的数据。原理:利用java反射实现:1、要记录日志的对象,添加注解public class LegalUnit implements Serializable{    private static final long serialVersionUID = 1L;private Long iD;    @XmlElement(n...

2019-02-14 14:27:00 5740 3

原创 JAVA 记录每个修改的字段的前后值

工具类:UpdateLogUtil.java package com.newsee.util;import java.lang.annotation.Annotation;import java.lang.reflect.Field;import java.math.BigDecimal;import java.text.DecimalFormat;import java.tex...

2019-02-14 14:25:55 6847

原创 JS 格式化日期

function dateStr(date) {    if (date == null || date == '') return '';    if (date instanceof Date)        return format(date);    else if (/^\d+$/.test(date))        return format(new Date(date)...

2019-02-14 14:25:35 494

原创 POST / GET

 public String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL ...

2019-02-14 14:25:28 154

原创 使用jQuery实现图片懒加载原理

在网页中,常常需要用到图片,而图片需要消耗较大的流量。正常情况下,浏览器会解析整个HTML代码,然后从上到下依次加载&amp;lt;img src=&quot;xxx&quot;&amp;gt;的图片标签。如果页面很长,隐藏在页面下方的图片其实已经被浏览器加载了。如果用户不向下滚动页面,就没有看到这些图片,相当于白白浪费了图片的流量。所以,淘宝、京东这些流量非常巨大的电商,商品介绍页又必须有大量的图片,因此,这些页面的图片都是“按...

2019-02-14 14:25:01 151

原创 如何正确地处理时间

日期和时间在程序中应用广泛,每种程序开发语言都自带处理日期和时间的相关函数,很多开发者把日期和时间存入数据库中,但是,一旦涉及到跨时区的日期和时间的处理时,大多数开发者根本就不明白如何正确地处理日期和时间。首先,我们来看大部分的程序都是这么创建当前时间并存入数据库的:Date date = new Date();store2db(date);这么做的问题在于,数据库的DateTime类型...

2019-02-14 14:24:55 231 1

原创 如何在一个页面上让多个jQuery版本共存

如何在一个页面上让多个jQuery共存呢?比如jquery-1.5和jquery-1.11。你可能会问,为什么需要在一个页面上让多个jQuery共存?直接引用最新版本的jQuery不行吗?答案是,不行。因为现实生活是非常残酷的。举个栗子:现有网站已经引用了jQuery 1.5以及相关插件。如果直接将jQuery升级到最新版,这些插件就不工作了,除非你能把这些插件全部升级,或者等各个插件的作者...

2019-02-14 14:24:49 218

原创 面试题1

面试题: hashMap是怎样实现key-value这样键值对的保存?HashMap中有一个内部类Entry,static class Entry&amp;amp;lt;k,v&amp;amp;gt; implements Map.Entry&amp;amp;lt;k,v&amp;amp;gt; { final K key; V value; Entry&amp;amp;lt;k,v&amp;amp

2019-02-14 14:24:42 88

原创 Java常量池详解,秒懂各种对象相等操作

为什么要有常量池?常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。例如字符串常量池,在编译阶段就把所有的字符串文字放到一个常量池中。(1)节省内存空间:常量池中所有相同的字符串常量被合并,只占用一个空间。(2)节省运行时间:比较字符串时,== 比equals()快。对于两个引用变量,只用==判断引用是否相等,也就可以判断实际值是否相等。基本数据类型的包装类和常量池...

2019-02-14 14:23:48 376

转载 竞态条件(race condition)

在学习多线程的过程中,因为是非科班学生,操作系统的东西都是一知半解的,所以很多名词都没有理解,另外具体的Java虚拟机如何工作还需要后续的学习,这里只能慢慢学习了,等到这本书看完好好读读操作系统的东西以及Java虚拟机机制下面是一个博文讲解了竞态条件的基本概念和常见的情况竞态条件(Race Condition):计算的正确性取决于多个线程的交替执行时序时,就会发生竞态条件。最常见的竞态条件为...

2019-01-25 16:42:16 4776

转载 tomcat中设置多项目共享jar;类包

 随着服务器上的tomcat部署的项目越来越多,最近在部署一个新的项目的时候出现内存溢出的错误Exception in thread "main" java.lang.OutOfMemoryError: PermGen space at java.lang.StackTraceElement.equals(StackTraceElement.java:204) ...

2019-01-14 14:58:29 271

转载 浅谈Java中的深拷贝和浅拷贝(转载)

                  浅谈Java中的深拷贝和浅拷贝(转载)原文链接:http://blog.csdn.net/tounaobun/article/details/8491392假如说你想复制一个简单变量。很简单: int apples = 5;int pears = apples;不仅仅是int类型,其它七种原始数据类型(boolean,char,byt...

2019-01-10 16:08:52 141

原创 Java MyBatis 插入数据库返回主键

最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记。类似下面这段代码一样获取插入后的主键User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能")...

2018-07-19 09:26:39 195

原创 5 分钟掌握 JavaScript 实用窍门

一开始 JavaScript 只是为网页增添一些实时动画效果,现在 JS 已经能做到前后端通吃了,而且还是年度流行语言。本文分享几则 JS 小窍门,可以让你事半功倍 ~1. 删除数组尾部元素一个简单方法就是改变数组的length值:const arr = [11, 22, 33, 44, 55, 66];// truncantingarr.length = 3;console.log(arr...

2018-06-27 09:26:30 148

原创 后台取出毫秒日期 js转换正常

dateStr: function(date) {        if (date == null || date == '') return '';        if (date instanceof Date)            return this.format(date);        else if (/^\d+$/.test(date))            return ...

2018-03-21 09:38:26 202

转载 如何重写hashCode()和equals()方法

转载:http://blog.csdn.net/neosmith/article/details/17068365hashCode()和equals()方法可以说是Java完全面向对象的一大特色.它为我们的编程提供便利的同时也带来了很多危险.这篇文章我们就讨论一下如何正解理解和使用这2个方法.如何重写equals()方法如果你决定要重写equals()方法,那么你一定要明确这么做所带来的风险,并确...

2018-02-24 16:03:38 6070 3

转载 使用WITH AS提高性能简化嵌套SQL

一.WITH AS的含义    WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如

2018-01-11 15:13:13 305

转载 sql with as 用法

以下内容转自:http://wudataoge.blog.163.com/blog/static/80073886200961652022389/一.WITH AS的含义     WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能

2018-01-11 15:03:55 241

原创 sql如何根据父级Id得到所有下级的记录

通常我们在编写程序时,在建立数据表时,会有建立父级,然后逐层建立子级,子级的记录会包含其上层的父级Id,这样形成了多个层级,如何根据父级Id,一次性得到所有的子级记录,下文做介绍。我们在数据库中建立数据表tbtree.在数据表中插入数据.用sq

2018-01-11 14:13:36 3351

原创 在js里双引号里又加单引号的解决方案常用WdatePicker

EndTime: '',或者如下:  EndTime: '',   就是说单引号要用:"或者\'这个字符代替

2017-08-09 15:38:59 554

原创 javascript中new Date()的浏览器兼容性问题

引言: 同一种语言JavaScript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异。本文将基于new Date来创建Date对象来分析这个问题。1.  问题的提出, 开始时间和结束时间空间无法正确的传递值    在页面中,我们使用了一个时间上的组件来开发时间选择框,但是发现在Firefox下是无法正常工作的,在Chrome下是

2017-08-01 13:36:22 353

原创 解决Maven编译(maven install)时,出现的“找不到符号”的问题

搞了半天,Tomcat可以正常启动,就是Maven编译的时候一直出现“找不到符号”,网上到处找方法,说什么执行一下maven clear之类的,根本没用。于是自己想了想,看到出错的行,是jdk内的代码,并不是额外的jar文件。所以初步判断问题出现在jdk上,经过一番查询,发现这个坑人的maven用的是jre,而我配置的项目jdk是JDK,并不是jre。

2017-07-20 13:27:28 1897

转载 jquery中获取一批包含同样字符id值方法

[javascript] view plain copy$(function(){      $("[id^=click_]").click( function () {           var id=$(this).attr("id").split("click_")[1];          alert(id);             

2017-07-07 16:19:29 595

原创 指定浏览器内核

如您是网站的开发者,可以通过在页面标签中添加代码,来指定网站的模式若页面需默认用极速模式,增加标签:若页面需默认用IE兼容模式,增加标签:若页面需默认用IE标准模式,增加标签:content的取值分别为webkit,ie-comp,ie-stand,区分大小写,分别代表用极速模式,IE兼容模式(低版本IE模式),IE标准模式(高版本IE模式)

2017-07-05 22:29:09 646

空空如也

空空如也

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

TA关注的人

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