- 博客(128)
- 资源 (1)
- 收藏
- 关注
原创 ES学习——ES评分简单介绍
当我们能使用match来搜索匹配数据的时候,es会给每一个文档进行评分(匹配度),并根据评分的大小对结果文档进行排序。介绍es的实时评分机制是基于 Lucene 的基础上实现的,最常见的是 TF/IDF和BM25这两种评分模型。TF-IDF属于向量空间模型,而BM25属于概率模型,但是他们的公式可能并没有你想象的那么大差距。两种相似度模型都使用idf方法和tf方法的某种乘积来定义单个词项的权...
2019-03-30 19:00:30
7184
原创 2019新年flag
多的不说了,直接立flag吧,看看年底的时候完成情况 dubbo的细节回顾结合dubbo面试题进行学习 netty的项目总结和源码学习 es的源码学习(系统学习)结合脑图 要有输出,数量不在多,在于精 多运动 多读书 少看直播...
2019-01-04 09:26:48
1296
原创 ES学习——安装和插件安装
首先需要安装jdk,因为es是用java编写,需要在java环境下才能使用。ES安装wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gztar -vxf elasticsearch-6.2.4.tar.gz想要下载别的版本的es,只需要修改版本号即可,这里下载的是6.2....
2018-11-03 17:04:24
6856
原创 ES学习——分析器和自定义分析器
简介es在对文档进行倒排索引的需要用分析器(Analyzer)对文档进行分析、建立索引。从文档中提取词元(Token)的算法称为分词器(Tokenizer),在分词前预处理的算法称为字符过滤器(Character Filter),进一步处理词元的算法称为词元过滤器(Token Filter),最后得到词(Term)。这整个分析算法称为分析器(Analyzer)。其工作流程:先会使用字符过滤...
2018-10-27 12:23:06
2563
转载 Kafka学习之路
转自:https://www.cnblogs.com/huxi2b/p/6308999.html 一直在思考写一些什么东西作为2017年开篇博客。突然看到一篇《Kafka学习之路》的博文,觉得十分应景,于是决定搬来这“他山之石”。虽然对于Kafka博客我一向坚持原创,不过这篇来自Confluent团队Gwen Shapira女士的博文实在精彩,所以还是翻译给大家,原文参见这里。~~~~~~~...
2018-10-25 23:12:45
238
原创 ES学习——介绍
前言在了解Elasticsearch之前,我们应该先了解下:什么是搜索引擎目前有哪些主流的搜索引擎搜索引擎搜索的质量应该如何评价简介什么是ESes全称为Elasticsearch,是一个高度可扩展且开源的全文检索和分析引擎。它可以让您快速且近实时地存储,检索以及分析海量数据。他是用java编写的基于Lucene的一款软件。用户可以很容易的使用RESTful接口进行全文搜索和结构化...
2018-10-20 13:38:04
904
原创 近期面试总结
最近两个月大大小小的面试已经不下十来场了,一共面了5.6个公司,大的有蚂蚁金服,小的有初创公司,也有做直播的等等,但是面试都是大同小异,因此来记录一下自己的不足之处以及需要加强的地方。 项目个人的项目经验其实非常重要,很多面试官往往会从项目入手来考察个人的架构能力以及技术水平。例如会从你负责的模块、平时遇到的技术难点入手来考察你。很多同学可能会碰到和我一样的问题,就是工作上大多数时间负责的...
2018-09-01 15:48:47
253
原创 Redis学习——初步了解
特性速度快:数据都是存放在内存,用C语言实现,单线程框架(避免了多线程竞争问题)丰富的数据结构和功能简单稳定客户端语言多支持持久化主从结构高可用和分布式redis作用缓存分布式锁 原子问题和失效问题异步队列布隆过滤简单限流(窗口限流),漏斗限流(Cell模块)地理位置:GEOkey,Scan经典例子排序:获取最新的列表数据。(zset...
2018-08-19 09:55:38
282
原创 蚂蚁金服面试总结
上个月参加了蚂蚁金服的一面、二面感觉自身还存在很多问题,今天稍微总结下自身存在的不足,以便以后再接再厉。某天早上在Boss上投了一份简历,中午就来了面试的电话。说是蚂蚁金服的面试官。然后就开始了蚂蚁金服公司一面:项目中那些部分是觉得有挑战性的。会对你的回答进行提问。因为项目的原因我回答了有关最短路径搜索,就问了深搜、广搜、A*方面的算法A*相对广搜有那些...
2018-08-08 22:57:18
2720
转载 深入理解JVM(3)——7种垃圾收集器
转载自深入理解JVM(3)——7种垃圾收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。接下来讨论的收集器基于JDK1.7 Update 14 之后的HotSpo...
2018-06-13 08:52:41
212
转载 dobbo源码解析目录地址
【肥朝】Dubbo 源码解析 作者 :肥朝 博客 :http://www.jianshu.com/u/f7daa458b874 目录 :《Dubbo 源码解析 —— 集群容错架构设计》《Dubbo 源码解析 —— Directory》《Dubbo 源码解析 —— Router》《Dubbo 源码解析 —— Cluster》《Dubbo 源码解析 —— LoadBalance》《Dubbo 源...
2018-04-13 19:41:44
673
3
原创 springMVC之学习笔记
最近在研究springMVC的源码,推荐一下几个一些学习博客和书籍推荐书籍《spring 揭秘》:真的写的非常好,从spring IOC、spring AOP、spring orm、spring 事务的支持等等板块对spring做了一个详细的解读。每个模块从架构的由来,组成,使用方法,优化等等方面深入浅出。(强烈推荐)推荐的博客:SpringMVC源码剖析(一)- 从抽象和接口说起...
2018-03-31 18:49:17
282
原创 java 正则表达式学习笔记
概述正则表达式能够解决各种字符串处理的问题:匹配,选择,编辑以及验证。正则表达式是一种强大灵活的文本处理工具,在很多语言中都支持正则表达式。本文主要介绍的是java的正则表达式的使用。基础在正则表达式中我们要表示一个数字,可以用\d表示。但是java对\的处理和其他语言不同。其他语言中\表示 要在正则表达式中插入一个字面上的反斜线,没有特殊含义,而在java中,\表示 我要在正...
2018-03-17 11:47:13
268
原创 Netty介绍(2)————多人聊天室实现Dome
git地址:https://github.com/lkj41110/netty_dome服务端/** * 多人聊天例子服务器 * @author lkj41110 * @version time:2017年1月16日 下午9:54:55 */public class ServerMain { private int port; public ServerMai...
2018-03-08 20:37:53
2177
原创 堵塞队列之ArrayBlockingQueue和LinkedBlockingQueue解析
在线程池创建的时候,需要传一个堵塞队列来维护需要执行的线程任务,其中最常用的是ArrayBlockingQueue和LinkedBlockingQueue。他们都继承了BlockingQueue接口。 ArrayBlockingQueue一个有边界的堵塞队列,内部使用了一个队列来保存元素,有takeIndex和putIndex来维护队列头和尾部的游标。 /** The ...
2018-02-10 12:58:59
3190
3
原创 springMVC之Interceptor拦截器
Interceptor拦截器用于拦截Controller层接口,表现形式有点像Spring的AOP,但是AOP是针对单一的方法。Interceptor是针对Controller接口以及可以处理request和response对象。1 HandlerInterceptor接口的定义我们先来看下HandlerInterceptor接口的定义,定义了三个接口,分别是preHandle、pos...
2018-01-24 17:34:44
15079
1
原创 Unsafe初探
UnsafeUnsafe 是sun.misc.Unsafe下的一个包,通过这个类可以直接使用底层native方法来获取和操作底层的数据,例如获取一个字段在内存中的偏移量,利用偏移量直接获取或修改一个字段的数据等等…… 当然这个类正如他的名字一样:不安全的操作。如何理解这个不安全呢?在java的世界里所有的变量都是通过把代码编译成class字节码加载到JVM虚拟机中,通过虚拟机来操作内存中
2018-01-19 15:29:12
698
原创 2018记事
今天是2018年的第一天,回忆了一下2017年,一下子能想起来的大约概括以下事件。2017年记事大学毕业工作一年感情经历坎坷锻炼身体开始学会理财 大学四件匆匆过去,相对于工作,大学生活真的可能是人生中最空闲的时光吧。但是过去了才有点后悔大学时候学的太少,真的是过去的东西才会珍惜回忆。 毕业设计答辩到找工作一切都有点有惊无险,找到了一家相对满意的工作,但肯定不是我理
2018-01-01 19:32:16
275
转载 JVM虚拟机类加载过程
转自 类加载过程 可以结合 葛一鸣老师的JVM视屏,下面的内容基本来源于视屏讲义。1、加载“加载”阶段是“类加载”过程的一个阶段,二者不能混淆。在加载阶段,虚拟机需要完成以下三件事:(1)通过一个类的全限定名来获取定义此类的二进制字节字节流。(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。(3)在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些
2017-12-28 22:18:03
227
原创 dubbo处理自定义异常问题
最近在项目上遇到一个有关dubbo的问题,项目分为两层:下层是一些基础服务,上层是业务服务调用下层的基础服务。上层服务的有一个全局的异常拦截器来拦截异常。@ControllerAdvice@Slf4jpublic class ExceptionFilter { @ExceptionHandler public ResponseEntity defaultErrorHandler(H
2017-11-19 15:07:39
4064
2
转载 技术变化那么快,程序员如何做到不被淘汰?
在阿里的微信营销号里看到这样一篇文章,对我稍有感触:在浩大的软件世界里,作为一名普通程序员,显得十分渺小,甚至会感到迷茫。我们内心崇拜技术,却也对日新月异的技术抱有深深的恐惧。有时候我会思考难道在技术领域内不断紧跟新潮,不断提升技能就是我的价值所在?那么我是技术的主人还是技术的奴隶?人之所以迷茫往往是找不到工作生活的重心,感受不到工作或生活的价值。那么什
2017-11-08 23:17:12
2217
原创 记录工作中比较常用的命令
比较常用的一些命令,以防自己忘记打印日志:tail -400f demo.log #监控最后400行日志文件的变化 等价与 tail -n 400 -f (-f参数是实时) less demo.log #查看日志文件,支持上下滚屏,查找功能 uniq -c demo.log #标记该行重复的数量,不重复值为1 $grep -5 'parttern' inputfile //打印匹配行的前后5行
2017-10-20 22:34:00
334
转载 Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理
相关文章目录: Java线程池ThreadPoolExecutor使用和分析(一) Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理 Java线程池ThreadPoolExecutor使用和分析(三) - 终止线程池原理 execute()是 java.util.concurrent.Executo
2017-10-05 21:49:50
1043
原创 Integer和int基本类型的比较
先看几行代码 Integer a1 = 100; Integer a2 = 100; System.out.println("a1==a2:" + (a1 == a2)); Integer b1 = 200; Integer b2 = 200; System.out.println("b1==b2:" + (
2017-09-27 02:21:42
3154
1
转载 ConcurrentHashMap总结
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩_∩)O)。ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,f
2017-09-06 07:39:30
295
转载 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
转载自:http://blog.csdn.net/luanlouis/article/details/24589193class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内
2017-08-18 10:41:40
232
原创 java8之lambda表达式
介绍:Lambda表达式是java8刚出一种写代码的方式,它可以让你很简洁地表示一个行为或传递代码。你可以把Lambda表达式看作匿名的功能,它基上就是没有声明名称的方法,但和匿名类一样,它也可以作为参数传递给一个方法。 例子: //普通表达式1 Runnable runnable2 = new Runnable() { @Override
2017-07-27 21:24:25
338
原创 logback配置日志
logback的详细介绍网上有很多:http://blog.csdn.net/jibaole/article/details/52442694(参考文档) 使用方法:当我们分清了log4j,logback和slf4j的关系后,我们就可以使用它们了。这里我们主要介绍logback和 slf4j的使用配置方法。 因为logback和 slf4j的开发者是一样的,所以logback很好的与slf4j兼
2017-07-06 17:06:56
478
原创 数据库分页注意点
当我们需要操作一个数据量很大表的时候,往往可以使用分页的方法,对数据量进行一部分一部分处理,直到对所有的数据完成操作。但是当我们进行分页的时候,要非常注意对数据条件的选择问题。1.首先我们创建一个测试表,插入几条数据。CREATE TABLE `t_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `create_time` timestam
2017-06-03 11:25:38
363
转载 vi/vim 介绍和简单实用(转自菜鸟教程)
Linux vi/vim所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。相关文章:史上最全Vim快捷键键位图 — 入门到进阶什么是 vim?Vim是从 vi 发展出来的一个文本编辑
2017-05-25 16:41:49
1295
原创 微信小程序有感
微信小程序已经问世有好几个月了,记得突然有一天醒来,被微信小程序突然刷屏了,据说是一场互联网变革的技术。但是那时候小程序还在内测阶段,所以没有立即体验,后来渐渐的也忘记了,只是大概知道小程序是一个可以在微信上直接使用软件的功能,不用下载。前端阵子,由于自己iphone6是16G的,想下几集动漫,发现容量不够但是又别的很多软件又不舍得删。这才想起来小程序。于是才第一次使用小程序,就搜索了几个不是
2017-04-08 15:09:26
1032
原创 Windows使用ssh登入远程服务器(包含mac版)
首先Windows是没有ssh这个命令的,所以我们先要使Windows可以使用ssh命令下载openssh for Winodws: http://linux.linuxidc.com/index.php?folder=MjAxNMTq18rBzy8y1MIvMTTI1S9XaW5kb3dzIDfD/MHu0NDPwsq508NTU0jNqLn9w9jUv7XHwrxMaW51eA==完成安装
2017-03-20 19:46:23
39822
转载 深入剖析Java中的装箱和拆箱
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。 以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 二.装箱和拆箱是如何实现的 三.面试中相关的问题 若有不正之处,请谅解和批评指正,不胜感激
2017-03-06 23:17:20
292
原创 Java源码之Arrays内部排序实现(timsort的实现)
在Arrays工作类里有sort()方法可以用来排序,jdk对所有基本类型设置设置了不同入参sort方法进行支持。 从源码上看,基本类型的排序都是使用了了DualPivotQuicksort的排序方法(我看的是jdk8,)。DualPivotQuicksort是快排的一种优化,具体在这里不展开了。 当参数类型为对象数组时,在原来的版本使用的归并排序(以后将会删除 ),现在使用的timSor...
2017-03-05 16:14:22
7504
3
原创 剑指Offer—— 链表的公共点
题目表述输入两个链表,找出它们的第一个公共结点。首先要明白一点,两条链表相交,则他们的形状类似Y,而不是X。所以,从相交的点以后,两条链表的所有结点都是一样的。我们只要找出第一个相同的结点即可。 1.我们分别算出两条链表的长度 2.算出两条链表的长度差,并除去长的链表前面多余的结点 3.同时遍历,找出第一个相同的结点public class Solution14 { public Li
2017-03-03 21:41:20
335
原创 剑指Offer—— 最小的K个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4第一种方法是全排序,先把数组进行排序,排序后依次输出最小的4个,时间复杂度为nlogn。第二种方法是的原理和快速排序有关,是通过快速排序的优化版解题目。快速排序是定义一个基点(一般是第一个数字),每次排序后会把数组中小于基点的放在前面,大于基点的放在后面。(具体的快速排序算法
2017-03-03 21:28:50
336
原创 剑指Offer—— 跳台阶
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法解析:当青蛙到到n级时,有两种跳法,一种是从n-1级跳1级,还有种是n-2跳2级 f(n)=f(n-1)+f(n-2),大家对这个公式是不是很熟悉,对,是斐波那契数列。所以这是一道动态规划的问题。// 斐波那契数列,只能上1或2级的方法 public int JumpFloor(int target
2017-02-24 14:17:43
282
原创 剑指Offer—— 二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。我一开始的思路是从左到右,从上到下遍历。public boolean Find1(int target, int[][] array) { for (int i = 0; i < array.length; i+
2017-02-23 11:52:50
544
原创 剑指Offer——连续子数组的最大和
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?一种思路,使用两个循环,分
2017-02-20 11:31:42
731
原创 剑指offer——不用加减乘除做加法
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号第一直觉是使用位运算,但是位运算没有进位,只要加上进位的为题就可以了private static int add(int n1, int n2) { int num, temp; do { num = n1 ^ n2; temp = (n1 &
2017-02-19 22:40:46
385
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人