gmHappy

从不敢夜郎自大,但也不至于妄自菲薄,只是想做一个靠本事吃饭的手艺人

elasticsearch painless脚本评分

painless是一种新支持的脚本语言,语言格式和java十分类似。可以参考以下文档: painless语言介绍 painless api painless 实例 脚本参数 score_mode计算functions中的分数形式,加减乘除,boost_mode计...

2018-08-30 15:34:31

阅读数 2060

评论数 0

elasticsearch relevance score相关性评分的计算

一、多shard场景下relevance score不准确问题     1、问题描述:  多个shard下,如果每个shard包含指定搜索条件的document数量不均匀的情况下,会导致在某个shard上document数量少的时候,计算该指定搜索条件的document的相关性评分要虚高。导致...

2018-08-30 14:00:21

阅读数 4008

评论数 1

java 多线程间通信(二)

传统的线程通信 Object提供了三个方法wait(), notify(), notifyAll()在线程之间进行通信,以此来解决线程间执行顺序等问题。 wait():释放当前线程的同步监视控制器,并让当前线程进入阻塞状态,直到别的线程发出notify将该线程唤醒。 notify():唤醒在...

2018-08-30 11:12:04

阅读数 2660

评论数 0

java 多线程间通信(一)

synchronized同步 package com.test7; public class Run { public class MyObject { private int a; public MyObject(int a) { this.a = a; } ...

2018-08-30 10:51:35

阅读数 2694

评论数 0

java CountDownLatch、CyclicBarrier和 Semaphore用法

一.CountDownLatch用法   CountDownLatch类位于java.util.concurrent中包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。   CountD...

2018-08-29 16:42:28

阅读数 5839

评论数 0

java 深入剖析ThreadLocal

一.对ThreadLocal中的理解   ThreadLocal的,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道的ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。   这句话从字面上看起来很容易理解,...

2018-08-29 14:10:01

阅读数 5837

评论数 0

java中String、StringBuffer、StringBuilder的区别

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不可变   String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以...

2018-08-29 13:26:29

阅读数 5829

评论数 0

java synchronized的四种用法

一 修饰方法 Synchronized修饰一个方法很简单,就是在方法的前面加synchronized,synchronized修饰方法和修饰一个代码块类似,只是作用范围不一样,修饰代码块是大括号括起来的范围,而修饰方法范围是整个函数。 例如: 方法一 public synchronize...

2018-08-29 13:20:19

阅读数 5851

评论数 0

java 多线程实现的四种方式

一个线程的生命周期 线程是一个动态执行的过程,它也有一个从产生到死亡的过程。 下图显示了一个线程完整的生命周期。 新建状态: 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。 就绪状...

2018-08-29 11:13:07

阅读数 5845

评论数 0

java 高性能Server —— Reactor模型单线程版

NIO模型 NIO模型示例如下: Acceptor注册Selector,监听accept事件 当客户端连接后,触发accept事件 服务器构建对应的Channel,并在其上注册Selector,监听读写事件 当发生读写事件后,进行相应的读写处理 NIO优缺点 优点 性能瓶颈高 ...

2018-08-28 11:51:16

阅读数 5943

评论数 0

java nio socket使用示例

这个示例,实现一个简单的C/S,客户端向服务器端发送消息,服务器将收到的消息打印到控制台,并将该消息返回给客户端,客户端再打印到控制台。现实的应用中需要定义发送数据使用的协议,以帮助服务器解析消息.本示例只是无差别的使用默认编码将收到的字节转换字符并打印。ByteBuffer的容量越小,对一条消息...

2018-08-27 16:32:10

阅读数 2009

评论数 0

java.nio.Buffer 中的 flip()方法

在Java NIO编程中,对缓冲区操作常常需要使用  java.nio.Buffer中的 flip()方法。   Buffer 中的 flip() 方法涉及到 Buffer 中的capacity、position、limit三个概念。        capacity:在读/写模式下都是固定的,...

2018-08-27 16:12:38

阅读数 1861

评论数 0

java NIO 详解

Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。 Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的...

2018-08-27 14:43:29

阅读数 1908

评论数 0

java 反射

一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是...

2018-08-24 17:21:55

阅读数 1936

评论数 0

Java的三种代理模式

1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方...

2018-08-24 15:23:23

阅读数 1966

评论数 0

spring AOP的两种代理

1.JDK动态代理  2.cglib代理 1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换 注:JD...

2018-08-24 14:24:55

阅读数 2519

评论数 0

docker 部署vsftpd服务、验证及java ftp操作工具类

docker部署vsftpd服务 新建ftp文件存储目录/home/ftp cd /home mkdir ftp 创建一个组,用于存放ftp用户 groupadd ftpgroups 创建ftp用户,并加入ftpgroups组 useradd -d /home/ftp/ftpte...

2018-08-24 10:22:11

阅读数 2836

评论数 0

springmvc 异常统一处理的三种方式详解

1 描述  在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。  那么,能不能将所有类型的异常处理从各处理过...

2018-08-23 16:20:22

阅读数 4123

评论数 0

mybatis Mapper XML 文件

Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做...

2018-08-22 16:47:46

阅读数 1492

评论数 0

hibernate的拦截器和监听器

拦截器(Intercept):顾名思义,拦截操作,也就是在Hibernate做出动作之前会调用的方法。如果你有需要在Hibernate操作数据库之前想要做的操作,就需要用到这个东西了。  监听器(Listener):监听,就是监视Hibernate的一举一动,如果我们要获取Hibernate各种...

2018-08-22 11:05:23

阅读数 1643

评论数 0

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