Wesley13 Wesley13
3年前
SPI应用场景及详解
java中spi(serviceproviderinterface)是jdk内置的一种服务发现机制,可以基于配置,在运行时加载指定服务。java中提供了很多服务提供接口,如jdbc、jndi等。面对分布式的开发,很多系统之间的调用都是使用rpc直接调用,但是有的时候上游的系统需要调用下游系统很多的接口,导致开发工作量很大。因此上游系统使用sp
Wesley13 Wesley13
3年前
JDK源代码以及200多部软件著作中出现的以连字符构造的1011个合成词
JDK源代码以及200多部软件著作中出现的以连字符构造的1011个合成词,单词后面跟的是词频。superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律、前缀后缀规律、词之间的相似性规律等等。(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgi
Wesley13 Wesley13
3年前
Java 8 Supplier 使用
Java8Supplier使用在Java8,Supplier是一个函数接口,它没有参数,返回了一个T.查了下字典,supplier被翻译成"供应商",那么它到底供应了啥呢,从代码上看,就是供应了一个任意对象T呗,下面我们去看看几个DEMO吧.思考:写JDK代码的大神们,为什么取名叫Supplier?为
Wesley13 Wesley13
3年前
Java中的读写锁ReadWriteLock
ReadWriteLock是JDK中的读写锁接口ReentrantReadWriteLock是ReadWriteLock的一种实现读写锁非常适合读多写少的场景。读写锁与互斥锁的一个重要区别是读写锁允许多个线程同时读共享变量,这是读写锁在读多写少的情况下性能较高的原因。读写锁的原则:多个线程可同时读共享变量只允许一
Wesley13 Wesley13
3年前
Java8之Stream
在使用Stream之前先介绍几个概念:1、函数式接口2、常用的函数式接口3、Lambda4、方法引用 1、函数式接口  1.只定义了一个抽象方法的接口。  2.JDK8接口中的静态方法和默认方法,都不算是抽象方法。  3.接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中方法,
Stella981 Stella981
3年前
Docker下使用selenium+testng实现web自动化
Windows下seleniumtestng的web自动化环境搭建做过自动化的人,肯定对seleniumweb环境的搭建非常熟悉了,特别是selenium在java中的使用。先搭建好安装好JDK,配置好java开发环境(这个如果还是不知怎么操作的话可是要打PP了)。然后从官网下载对应selenium的jar包,加载到项目里;或者是使用maven,
Wesley13 Wesley13
3年前
Java G1 GC 垃圾回收深入浅出
1\.G1概览G1GC 全称是GarbageFirstGarbageCollector,垃圾优先垃圾回收器,以下简称G1。G1是HotSpotJVM的短停顿垃圾回收器。其实关于G1的论文早在2004年就有了,但是G1是在2012年4月发布的JDK7u4中才实现。从长期来说,G1旨在取代CMS(ConcurrentMark
Stella981 Stella981
3年前
Hadoop2.0伪分布式平台环境搭建
一、搭建环境的前提条件环境:ubuntu16.04hadoop2.6.0jdk1.8.0\_161。这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包自行下载即可。因为这里是配置Hadoop的教程,配置Java以及安装VMwareTools就自行百度解决哈,这里就不写了(因为教程有点
Wesley13 Wesley13
3年前
ByxAOP——简易AOP框架
ByxAOP是一个基于JDK动态代理的简易AOP框架,具有以下功能特性:对目标对象的特定方法进行拦截和增强支持灵活的拦截规则和自定义拦截规则动态实现接口和批量实现接口方法灵活的对象代理机制项目地址:github码云使用示例首先来通过一个简单例子快速了解ByxAOP。假设我们有一个User
怎样阅读 h2 数据库源码 | 京东物流技术团队
阅读h2数据库的源码是一项复杂的任务,需要对数据库原理、Java语言和操作系统有深入的理解。可以从以下几方面入手来完成。环境准备首先,你需要在你的机器上安装和配置好开发环境,包括JDK、Maven、IDE调试器等工具。然后,从或。IDE导入h2数据库源码,