自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

花驴的博客

在技术的道路上,可以走得慢,但不能停下脚步.

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

原创 Java中的可变参数

可变参数是JDK1.5开始引入的新特性,可以简化代码适用场景:适用于需要传入或处理同类型未知参数个数的场景package com.google.varargs;import java.io.*;/** * @author : ♞Demons♛ * @date : 2020-01-05 13:31 * Description : java中的可变参数 **/public c...

2020-01-05 13:53:22 241 1

原创 [IDEA]插件

插件名称插件功能Alibaba Java Coding Guidelines代码规范检测,智能提示.ignore自动生成ignore文件,用于git提交代码时排除无需提交的内容Maven Helper用于排查和处理maven依赖冲突问题Rainbow Brackets可以让代码中的各种括号变得不同颜色,起到醒目,易辨识的作用Translation...

2020-01-04 21:00:01 292

原创 Java中元组的使用

工作中看到了很多应用元组的场景,记录几个常用的元组工具类二元组↓public class Tuple2<K, V> { private K left; private V right; public Tuple2(K left, V right) { super(); this.left = left; this.right = right; } ...

2020-01-04 20:45:49 1954

原创 单元测试规范

虽然一直有写单元测试case,但是对于其规范一直没有系统熟悉,特做此记录/** * junit单元测试规范: * 1.目录: * 必须在同级目录,包全路径名也相同 * src/ * main/package * test/package * 2.测试类名应以Test结尾 * 3.测试方法应以test开头 * 4.测试方法必须用@Test修饰,且不能带任何参数 * 5.测试方法...

2020-01-04 20:36:54 216

原创 HDFS的javaAPI使用

工作中做资源服务器时用到了HDFS作为资源底层存储,记录一下使用的APIpublic class HdfsUtil { private static final Logger logger = LoggerFactory.getLogger(HdfsUtil.class); private HdfsUtil() { } private sta...

2020-01-04 20:27:23 130

原创 自定义异常

自定义异常不是一件很神秘的事情,看一下已有项目的源码就会了,记录如下:首先,自定义异常的目的是为了能够更好的区分不同业务对应的异常原因;再者,自定义异常通常继承Exception或者RuntimeException,然后Override Methods;注意:异常类需要定义唯一的UID用于序列化和反序列化,可使用IDE自动生成.package com.google.exception;...

2020-01-04 20:10:46 228

原创 Java中的Builder模式

日常开发中经常用到建造者设计模式,记录一下简单的构造形式package com.google.builder;/** * @author : ♞Demons♛ * @date : 2020-01-04 17:21 * Description : **/public class FamilyBuilder { private final String mother; ...

2020-01-04 18:06:48 553

原创 获取本机ip和host的方法

public class AddressHelper { private static final Logger logger = LoggerFactory.getLogger(AddressHelper.class); private static Map<String, String> ipAndHostMap = Maps.newHashMa...

2020-01-04 15:15:32 2576

原创 维护本地唯一标识

工作中用到了在本地记录agent唯一标识的需求,实现方式如下:/** * 监测本地是否有保存agentId的文件? * 若有,读取并校验其中的UUID * 若无,代码中重新生成一个UUID,并保存到指定的目录文件中 * 保存该UUID的文件名和路径固定 */@Testpublic void testCheckLocalAgentId() throws IOException { ...

2020-01-04 15:12:38 184

原创 日期格式化

工作中遇到了形如(2019-11-08T02:18:21.516Z)的日期,需要对其做格式化操作获取时间戳,记录方法如下:@Testpublic void testTimestampAbstract() throws Exception { String time = "2019-11-08T02:18:21.516Z"; String ISO_PATTERN = "yyyy-...

2020-01-04 15:06:45 102

原创 Gzip压缩

工作中用到了gzip压缩,记录一下此方法,方便后续使用/** * 使用gzip对获取到的数据流进行压缩 * @param data数据 * @return 压缩后的字节数组 * @throws IOException IO异常 */private byte[] zipData(byte[] data) throws IOException { ByteArrayOutputS...

2020-01-04 15:03:30 228

原创 形如1000_000的用法

java7新增的特性,可以使用_增强数字的可读性,方式更优雅,简单测试用例如下:@Testpublic void testNumberMoreZero() { // 数字中可以使用下划线分割,增强可读性 long a = 1234_560; long b = 600_000; System.out.println(a); System.out.print...

2020-01-04 14:59:42 274

原创 手动创建线程池

之前写了一个手动创建线程池的实现,自定义了factory和handler,记录一下ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor( 1, threadNumbers, 60L, TimeUni...

2020-01-04 14:53:18 361 1

原创 log4j2.xml

log4j2是log4j的升级版,略有差异,使用方式不变,引入依赖和配置有所区别配置文件名称改为log4j2.xml,也放在resources目录下,默认读取配置<?xml version="1.0" encoding="UTF-8"?><Configuration status="debug" strict="true" name="XMLConfigTest" ...

2020-01-04 14:48:03 135

原创 log4j.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><!-- 日志级别优先级:ERROR > WARN > INFO > DEBUG 向左包含关系 --><log4j:configuration> ...

2020-01-04 14:37:58 120

原创 调度线程池

工作中用到了线程池和调度线程相关的知识,记录一下@Testpublic void testThreadPool() throws InterruptedException { // 错误的创建线程池的方式 ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledE...

2020-01-04 14:32:47 267

原创 位运算

左移,右移 位运算最近在用findbugs扫描代码中的规范问题时,看到了位运算的用处,记录一下/** * 位运算 */@Testpublic void testUnsignedOperateAverage() { int beginIndex = 3; int endIndex = 5; int midIndex1 = (beginIndex + endIn...

2020-01-04 14:17:57 212

原创 读写锁

工作中用到了读写锁,记录如下:使用场景:多线程中某些代码块可以被多个线程同时读,但是当某块代码执行写操作时,被读的代码块需要变得不可读,直到写操作完成 @Test public void testReadAndWriteLock() { ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteL...

2020-01-03 22:00:21 121

原创 集合的初始化

如何优雅的初始化集合?package com.google.guava;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import java.util.ArrayList;import java.util.HashMap;/** * @author : ♞Demons♛...

2020-01-03 21:52:55 424

原创 cache缓存的使用

计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存package com.google.guava;import com.alibaba.fastjson.JSONObject;import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;...

2020-01-03 21:35:34 665

原创 HashCode源码解析

在实际的工作中我们经常会用到hashCode,不管是简单哈希还是一致性哈希,底层的哈希算法都是一样的,今天参考源码做一个回顾:先看hashCode的源码:/** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * &l...

2018-11-09 12:03:19 4513 1

原创 经典MR之WordCount

1. WordCount V1.0public class WordCount { public static class TokenizerMapper extends Mapper&lt;Object, Text, Text, IntWritable&gt;{ private final static IntWritable one = new IntWrita...

2018-11-06 18:28:03 2250

原创 Hive基础知识

1. Hive简介Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL的查询功能,其本质是将SQL转换成MapReduce的任务进行运算,底层由HDFS来提供数据的存储.2. 特点可扩展:Hive可自由的扩展集群的规模,一般情况下不需要重启服务延展性:Hive支持用户根据需求来自定义函数容错性:节点出现问题时SQL仍可完成执行(依赖于H...

2018-11-06 18:23:49 257

翻译 爬虫(三):Solr

lucene的索引的修改和删除solr: 1) solr的概念2) solr的部署(2种方式)3) solr的管理界面4) solr的配置文件: solrConfig.xml schema.xml core.properties5) solrj 连接solr 相关的操作: C U R D6) solr的高级: 高亮 分页 排序 1. lucene的索引的修改和删除索...

2018-10-31 17:49:34 568

翻译 爬虫(二):Lucene

搜索引擎:* 什么是搜索引擎* 搜索引擎基本运行原理* 原始数据库做搜索有什么弊端* 倒排索引(敲黑板)lucenelucene相关的概念lucene和solr的关系lucene入门程序(写入索引的操作代码)lucene相关写入索引的api的解释ik分词器lucene的搜索: 基础的搜索(2个), 多样化的搜索(5个)lucene的高级(理解)lucene的高亮...

2018-10-31 17:46:45 790

原创 Redis

1.Redis概述redis是一个内存数据库,以key-value形式存放数据,属于非关系型数据库。1.1 特点redis将数据存储在内存中,读写效率非常高(写入:8w/s 读取:11w/s)包含五种数据类型:string,list,map,set,sortset(注:这里说的数据类型均指的是value的数据类型,key的数据类型固定是string类型)String: 和jav...

2018-10-31 15:52:17 247 1

原创 Hadoop基础知识

Hadoop复习回顾1. HDFS分布式文件存储系统1.1 HDFS的架构主从架构,可以配置主节点的主备架构冷备份 热备份HDFS的元数据:fsimage:元数据镜像文件,较为完整的一份元数据edits:元数据的操作日志(一小部分元数据,用作缓冲)namenode内存中存储的是:fsimage+editsSecondaryNameNdoe:定时定量合并fsimage和edit...

2018-10-31 15:12:44 474

原创 静态代码块

在学习的过程中经常遇到使用静态代码块的情况,之前一直没有系统的梳理,现在借助代码回顾一遍,加深记忆.静态代码块的应用场景:有些代码必须在项目启动的时候就准备就绪(执行),此时就需要使用静态代码块.因为这种代码是主动执行的,在项目启动的时候就会自动初始化,并且只在初始化的时候执行一次.下面用一个例子说明:/** * @Author: ♞Demons♕ * @DATE: 2018/...

2018-08-27 09:30:31 1589

原创 爬虫(一):基本内容回顾

本人最近在学习爬虫的相关知识,对于很多基本的概念在此做一个梳理,便于课程的复习和巩固,如有写的不准确或错误的地方,欢迎阅读者批评指正.要聊爬虫主要是从以下几个方面为主线:什么是爬虫?爬虫的价值爬虫的分类爬虫的基本运行原理爬虫的三大模块爬虫协议1.什么是爬虫?想到爬虫,很多人的第一印象就是现实世界中到处爬着找食物的虫子,其实在计算机的世界里亦是如此:所谓的爬虫就是程序员...

2018-08-26 14:56:48 596

空空如也

空空如也

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

TA关注的人

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