- 博客(141)
- 资源 (5)
- 问答 (48)
- 收藏
- 关注
原创 JMM内存模型(未完节)
一、什么是内存模型?先来了解下计算机操作发展的历史:part1时期计算机执行指令的时候都是在CPU中,数据都在主存中,物理内存中。 随着技术发展CPU中的执行速度越来越快,然而主存的技术遇到瓶颈,导致CPU的操作都要等待主存操作的响应。 ceo————员工于是考虑能不能不直接操作主存,在上层添加缓冲层 part2时期 ...
2018-10-13 21:35:16
335
原创 等待通知范式
一、等待通知机制 等待线程获取到对象的锁,调用wait()方法,放弃锁,进入等待队列 通知线程获取到对象的锁,调用对象的notify()方法 等待线程接受到通知,从等待队列移到同步队列,进入阻塞状态 通知线程释放锁后,等待线程获取到锁继续执行二、等待方与通知方遵循的原则...
2018-10-13 21:27:42
924
原创 Spring data ES攻略
总结下es的使用,方便其他小伙伴使用一、配置依赖<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-elasticsearch</artifactId> <version>2.0.4.REL...
2018-09-10 23:10:20
12373
原创 ES增删改查内部原理
一、ES查询内部原理客户端发起请求到集群协调节点coordinate node 若是根据docId(不是根据docId查询则根据随机轮询算法,分配到所有分片查询)查询则根据路由算法,找到分片 根据随机轮询算法,将请求分摊给主备节点,达到负载均衡的目的 各个节点将结果返回给协调节点,由协调节点统一返回数据给客户端二、ES增删改内部原理客户端发起创建的请求到集群协调节点coordi...
2018-09-06 22:58:43
1074
转载 Gossip 算法
Gossip 算法, 灵感来自办公室八卦, 只要一个人八卦一下, 在有限的时间内所有人都会知道该八卦的信息,这种方式也与病毒传播类似, 因为 Gossip 有众多的别名"闲话算法"、"疫情传播算法"、"病毒感染算法"、"谣言传播(Rumor-Mongering)算法".但 Gossip 并不是一个新东西, 之前的泛洪查找、路由算法都归属于这个范畴, 不同的是 Gossip 给这类算法提供了明...
2018-09-06 22:13:47
1686
原创 ES集群单机(单节点/多节点)搭建
一、单机单节点搭建需要在安装目录/config/elasticsearch.yml中加入配置使用系统默认配置,在ES安装目录执行elasticsearch脚本 看到控制台输出started表示启动成功二、单机多节点(伪集群)搭建在单台服务器上以不同的端口,启动ES服务,搭建ES伪集群拷贝安装包三分,分别修改elasticsearch.yml文件三、启...
2018-08-28 00:06:02
10832
原创 ES通配符查询慢优化
使用ES查询遇到的坑:当为空字符串查询** 时速度超慢原始查询条件:生成的查询语句:查询语句http://11.11.11.11:9100/data_aa-2018.08/category_goods_1_day/_search POST{ "from" : 0, "size" : 10, "query" : { "bool" ...
2018-08-27 22:49:41
3787
原创 代理模式———静态代理、动态代理(JDK代理)、CGLIB代理
一、代理模式代理模式就是为某个对象Q,提供一个代理对象,通过代理对象,完成对对象Q的引用。通过代理对象的增强可以无侵入的扩展委托类。真正的业务实现还是交与委托类,代理类相当于包装了一层委托类,可以在委托类执行的前后加入扩展,比如缓存,切面,消息等。在SpringAOP的实现中,使用的核心技术就是动态代理,使用了JDK代理(对象实现了接口使用)与CGLIB(对象没实现接口使用)代理的结合...
2018-08-19 19:23:48
222
原创 SpringIOC源码分析(七)__IOC容器的依赖注入
一、前情提要完成了BeanDefinition的注册,就完成了了IOC容器初始化的过程。且这些BeanDefinition也可以被容器使用了,在beanDefinitionMap中承载。容器DefaultListableBeanFactory做用就是对这些信息进行处理维护。这些基础数据也是容器建立以来注入的基础。这些Bean都放在了容器里,什么时候才会初始化呢?bean的依赖关系什么时候回注入...
2018-08-01 00:04:29
360
原创 BeanUtils之Converter转换器
一、BeanUtils.copyPropertys时序图解析:获得类对象后循环copyProperty()方法,拷贝每一个属性 在动态类中取得属性的信息DynaProperty 在存放Convert转换器的map中获得Convert转换器,转换属性,返回value;这里的Convert转换器可以自定义,自定义的转换器继承Convert,实现某种类型的特殊转换,调用对应的regist...
2018-07-27 23:53:45
2719
原创 SpringIOC源码分析(六)__IOC容器的初始化__BeanDefinition载入注册
一、前情提要上一篇提到了IOC容器初始化的流程,及资源定位,本篇主要分析BeanDefinition的载入过程二、BeanDefiniton载入解析BeanDefinition是IOC容器对Bean的数据承载模型,IOC容器对Bean的管理和依赖注入的实现,是通过对BeanDefinition的各种操作来实现的,IOC容器通过一个HashMap来保持和维护这些BeanDefinit...
2018-07-27 23:49:08
324
原创 Lucence倒排索引
带着问题探索:全文检索,为什么要全文检索? 什么是lucence? 什么是倒排索引?一、全文检索要了解全文检索首先需要了解:结构化数据与非结构化数据,以及半结构化数据,这三种数据构成了我们生活中所有数据的组成形式。 结构化数据 非机构化数据 半结构化数据 含义 有固定格式的的数据 无固定格式的数据 有一定格式的数据 举例 数据库...
2018-07-19 23:28:03
1015
原创 SpringIOC源码分析(五)__IOC容器的初始化__资源加载
一、IOC容器初始化过程IOC容器初始化是由如上篇所讲到的refresh(),方法来启动的,启动包括BeanDefinition的Resource定位,载入和注册这个主要过程。过程一:resource定位,是由resourceLoader通过getResource(String location) 的接口来完成的。 过程二:将用户定义的Bean表示为IOC容器的内部数据结构BeanD...
2018-07-16 23:38:47
246
原创 SpringIOC源码分析(三)__BeanFactory与FactoryBean
二、BeanFactory与FactoryBean BeanFactory顾名思义是个bean工厂,是个IOC容器,负责管理和生产bean。 FactoryBean是一个Bean,能生产对象的工厂Bean。实现与工厂模式和修饰器模式相似。 Spring 中有两种Bean,一直为普通的Bean由容器管理,一种就是工厂Bean,由Spring管理。 package com.q...
2018-07-12 23:50:18
322
原创 ES基本查询及HEAD操作
一、基本查询操作选择索引设置type查询条件搜索 操作说明如图:二、must, must not,should的区别must 返回的文档必须满足must子句的条件,类似于 == and must not返回的文档必须不满足must not 子句的条件 类似于!= not should 返回的文档只要满足should中的一个条件即可 类似于 || or三、各类查询参数ter...
2018-07-11 23:26:52
22236
3
原创 SpringIOC源码分析(二)__BeanFactory
一、BeanFactory beanFactory是一个接口类提供了最基本的IOC容器的功能,负责管理和生产bean。beanFactory源码:package org.springframework.beans.factory; import org.springframework.beans.BeansException; public interface Bean...
2018-07-11 09:30:55
290
原创 SpringIOC源码分析(一) ___IOC容器
一、IOC容器概念 ioc容器是一个javaBean容器,通过工厂模式和反射,实现了对bean和bean依赖关系的管理,将对象的引用或依赖关系的管理,交与容器来实现。通过依赖注入,将bean注入容器而不是传统的在类自身通过new对象来创建。对象之间的依赖关系从传统的由类对象自身维护“反转”为由容器来维护。解耦了对象之间的依赖关系,提高了可测试性。二、IOC容器接口设计图IOC...
2018-07-05 17:57:24
303
原创 责任链模式的应用
一、责任链模式概念 链是一系列节点的集合,链的各节点可以灵活的拆分重组。当一个请求需要多个对象进行处理,将多个对象串成一个链路,从而避免了请求发送者和接收者之间的耦合关系。请求者不知道是链路上的哪个节点做了处理。二、优缺点 优点: 1. 降低了请求发送者和接收者之间的耦合关系 2. 把多个判定与条件处理放在各个类中去处理,代码更加...
2018-07-02 13:18:06
1189
1
转载 使用PlantUML快速绘图
PlantUML是一个快速创建UML图形的组件,官网上之所以称它是一个组件,我想主要是因为多数情况下我们都是在Eclipse,NetBenas,Intellijidea,Emacs,Sublime,Word等软件里来使用PlantUML。PlantUML通过简单和直观的语言来定义图形,它可以生成PNG,SVG和二进制图片.PlantUML支持的图形有:时序图用例图类图活动图组件图状态图对象图在ID...
2018-06-23 23:50:15
2330
原创 ES 字段映射store存储问题
首先ES映射字段的store 默认是为no的 ,文档存储后都可以从_source中获取。当构建ES映射时,如果将store设置为yew,会单独存储字段;取出每个store的field都需要一次IO因此仅适用于doc很大,很长的情况;不用从_source中解析出来,而从单独存储的field取出,效率跟高。当遇到跨索引查询的情况,A,B索引都有近乎相同的映射,区别只在于A的全部设置为store,B的没...
2018-06-13 11:27:51
1347
转载 Lucene学习总结之一:全文检索的基本原理
Lucene学习总结之一:全文检索的基本原理一、总论根据http://lucene.apache.org/java/docs/index.html 定义:Lucene 是一个高效的,基于Java 的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据 和非结构化数据 。结构化数据: 指具有固...
2018-04-28 11:05:13
164
转载 索引表和ES的一点点思考
出处 http://blog.youkuaiyun.com/linsongbin1/article/details/79410156索引表和ES的一点点思考索引表设计在电商项目中,物理库存系统是个极其重要的系统,订单支付后,就会开始来占用物理库存。一般情况下,库存系统都是要分库的,因为主要的操作是写操作,例如占用/释放/取消等写操作。使用分库可以降低数据库写的压力。尽管写操作为主,但是读操作也是有的。比如说...
2018-03-18 09:51:54
642
转载 Spring boot Myibatis整合
这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料,各种各样的形式都有,看的人心累,结合了mybatis的官方demo和文档终于找到了最简的两种模式,花了一天时间总结后分享出来。orm框架的本质是简化编程中操作数据库的编...
2018-03-04 23:04:39
463
转载 索引的应用场景以及如何使用
唯一的是什么? 1. 索引列(字段)的所有值都只能出现一次,即必须唯一--------------------------------------------------------------------------------主键索引与唯一索引的区别 1. 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 2. 主键创建后一定包含一个唯一
2017-06-05 17:24:18
3960
转载 Tomcat的access log的设置及存放日志路径修改
Tomcat中默认的情况下,access log是没有设置的。在server.xml文件中配置如下。[html] view plain copy print? Documentation at: /docs/config/valve.html --> Valve classNam
2017-06-05 14:51:19
16357
原创 JAVA_OPTS(JVM相关运行参数的变量)设置
JAVA_OPTS,顾名思义,是用来设置JVM相关运行参数的变量。 JVM:JAVA_OPTS =“ - server -Xms2048m -Xmx2048m -Xss512k”-server:一定要作为第一个参数,在多个CPU时性能佳-Xms:初始堆大小,使用的最小内存,cpu性能高时此值应设的大一些-Xmx:Java heap最大值,使用-XX:PermSize:设置内存的永久保存区域-X...
2017-06-05 13:43:03
9612
转载 Tomcat 启动JVM参数配置
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都
2017-06-05 13:34:01
2796
转载 使用ThreadLocal变量的时机和方法
并发编程中,一个重要的内容是数据共享。当你创建了实现Runnable接口的线程,然后开启使用相同Runnable实例的各种Thread对象,所有 的线程便共享定义在Runnable对象中的属性。也就是说,当你在一个线程中改变任意属性时,所有的线程都会因此受到影响,同时会看到第一个线程修改后的值。有时我们希望如此,比如:多个线程增大或减小同一个计数器变量;但是,有时我们希望确保每个线程,只能工作在它
2017-06-04 19:26:07
460
转载 Java 线程组,Callable,Future,线程池,ThreadLocal类,包装线程不安全的集合
线程组和未处理的异常Java使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,对线程组的控制相当于同时控制这批线程.用户所创建的所有线程都属于指定线程组,若没有显示指定线程组,则属于默认线程组.默认情况下子线程和创建它的副线程处于同一个线程组内;例如:A创建了B,则默认A和B处于同一个线程组.一但加入某个线程组,则中途不能改变该线程的线程组,直到该线程死亡.
2017-06-04 18:49:25
805
转载 Redis中5种数据结构的使用场景介绍
一、redis 数据结构使用场景原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码。目前目标是吃透 redis 的数据结构。我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢?String——字符串Hash——字典List——列表Set——集合Sorted Set——有序集
2017-06-04 09:55:40
399
转载 maven中properties标签定义变量
一 发现问题在pom.xml中添加依赖时语法如下 org.springframework spring-core 1.2.6 org.springframework spring-aop 1.2.6 以上内容没错,但有这样一个问题,在spring的依赖中,我们需要引用一系列版本的spring,如版本1.2.6。每次都写不利于维
2017-05-31 11:22:57
1484
转载 spring与mybatis三种整合方法
1、采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。spring-mybatis.xml:xml version="1.0" encoding="UTF-8"?>beans xmlns="http://www.springframework.org/schema/beans" xmlns:
2017-05-31 10:42:03
347
转载 Spring MVC视图解析器:配置多个视图解析器的优先级
问题在Spring MVC应用程序中,我们经常需要应用一些视图解析器策略来解析视图名称。例如,联合使用三个视图解析器:InternalResourceViewResolver、ResourceBundleViewResolver和XmlViewResolver。但是,如果返回了一个视图的名称,那么,使用哪一个视图解析器策略?解决方法如果应用了多个视图解析器策略,那么
2017-05-31 09:30:07
1751
1
转载 Java动态代理的两种实现方法
AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercepto
2017-05-27 10:42:38
326
转载 maven内部运行原理解析(一)
maven至今还是Java编程语言构建的事实标准,大部分项目还在使用maven来进行构建,因此了解maven内部运行的原理对定位和分析问题还是很有裨益的。本篇文章主要介绍一些maven内部运行过程中的一些基本概念,相信看完后,对那么些刚刚接触maven的读者来说maven将不再陌生。 在具体分析项目构建的过程前,需要了解maven的一些基本概念,这些概念十分重要,请务必理解清楚后再看下文。基
2017-05-27 10:14:23
417
转载 浅析@Deprecated
最近由于工作环境不太理想,很长时间没心情写技术博文,今天在调试springMVC的DispatcherSevlet类的代码时,看到一处代码且联想到项目中程序员的一些做法,觉得有必要写一下。 我们在做项目时,前期写的类中的一些代码可能由于需求变化的原因需要重写,有时重写时方法的传参和返回值也会发生变化,这样往往导致调用的代码也跟着出错,我们看下spring的代码是如何处理这样的事,
2017-05-23 17:34:27
422
原创 Mac下修改hosts
上次修改后忘记怎么改了 做下记录避免下次忘记command+shift +g 进入“/etc”目录可以看到 HOSTS文件,没有权限打开,可以复制出来 改好后在覆盖回去
2017-02-14 21:57:11
512
JAVA实现RSA加密解密
2015-03-20
JAVA代码优化,求解这段代码如何优化
2021-01-10
多表left join优化 各位大佬有没有什么优化方案
2019-10-12
使用spring data es如何使用SUM方法
2017-11-04
正则表达式获取指定字符串的操作
2017-01-03
在一个系统中有一个数据同步的需求
2016-05-30
关于synchronized修饰的方法的问题?
2016-03-15
给一个页面的URL 如何通过JQUERY获取 这个页面中的最大的一张图片
2016-03-09
Spring的设置注入和构造注入有什么好处?有没有浅显一点的解释额?
2016-03-07
作为一个学JAVA的请教一下大家,EXCEL中的函数问题
2015-11-26
关于httpSession 与 HttpServletRequest
2015-11-12
mysql数据库,自定义排序查询
2015-11-07
如何解决IE对于JSTL标签的兼容问题
2015-09-26
如何用SQL语句查出该表中 不为空的值得数量
2015-09-24
如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目
2015-09-24
java如何判断一个字符串中是否有@符号
2015-09-17
如何用jquery获取到td中的字符串,截取字符串
2015-08-29
使用FindBugs报错,该如何解决
2015-08-25
如何用正则表达式控制TEXT文本框只能输入1--15的数字?
2015-08-20
用C标签定义的变量,如何在另一个C标签中进行除法?
2015-07-28
JS如何实现时间的比较
2015-07-27
用JS如何取到,input中由session对象设置的id
2015-07-22
如何用Jquery实现当 vlaue中的el表达式取值为空时 隐藏该这个选项
2015-07-21
JSP页面实现对每一个list对象的遍历
2015-07-20
如何用jquery实现,当点击添加行后,行中的value中的EL表达式的值也增加
2015-07-20
如何用jquery实现点击“删除”行删除后,选项重新排列;
2015-07-20
如何容jquery实现,当该文本域中value取的session中的值为0时,将值变为1
2015-07-18
jquery如何根据文本框中输入的数,实现数组循环
2015-07-14
求助用Jquery实现,点击添加选项新增一行
2015-07-14
后台获取input标签中的属性值,该怎么获取
2015-07-14
后台获取<input >元素中的值
2015-07-13
求助帮忙解释这段Jquery代码
2015-07-13
如何写一个方法用SQL语句查询一张表中有多少条数据,方法改怎么写?
2015-05-31
如何写一个方法用SQL语句查询一张表中有多少条数据,方法改怎么写?
2015-05-31
根据当前session中的用户 获取用户ID HQL查询当前用户的所有日志
2015-05-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人