
Java
java基础知识
不要踩井盖儿
这个作者很懒,什么都没留下…
展开
-
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 · 327 阅读 · 1 评论 -
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 · 2039 阅读 · 0 评论 -
自定义异常
自定义异常不是一件很神秘的事情,看一下已有项目的源码就会了,记录如下:首先,自定义异常的目的是为了能够更好的区分不同业务对应的异常原因;再者,自定义异常通常继承Exception或者RuntimeException,然后Override Methods;注意:异常类需要定义唯一的UID用于序列化和反序列化,可使用IDE自动生成.package com.google.exception;...原创 2020-01-04 20:10:46 · 257 阅读 · 0 评论 -
获取本机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 · 2694 阅读 · 0 评论 -
维护本地唯一标识
工作中用到了在本地记录agent唯一标识的需求,实现方式如下:/** * 监测本地是否有保存agentId的文件? * 若有,读取并校验其中的UUID * 若无,代码中重新生成一个UUID,并保存到指定的目录文件中 * 保存该UUID的文件名和路径固定 */@Testpublic void testCheckLocalAgentId() throws IOException { ...原创 2020-01-04 15:12:38 · 218 阅读 · 0 评论 -
日期格式化
工作中遇到了形如(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 · 137 阅读 · 0 评论 -
Gzip压缩
工作中用到了gzip压缩,记录一下此方法,方便后续使用/** * 使用gzip对获取到的数据流进行压缩 * @param data数据 * @return 压缩后的字节数组 * @throws IOException IO异常 */private byte[] zipData(byte[] data) throws IOException { ByteArrayOutputS...原创 2020-01-04 15:03:30 · 280 阅读 · 0 评论 -
形如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 · 347 阅读 · 0 评论 -
位运算
左移,右移 位运算最近在用findbugs扫描代码中的规范问题时,看到了位运算的用处,记录一下/** * 位运算 */@Testpublic void testUnsignedOperateAverage() { int beginIndex = 3; int endIndex = 5; int midIndex1 = (beginIndex + endIn...原创 2020-01-04 14:17:57 · 276 阅读 · 0 评论 -
静态代码块
在学习的过程中经常遇到使用静态代码块的情况,之前一直没有系统的梳理,现在借助代码回顾一遍,加深记忆.静态代码块的应用场景:有些代码必须在项目启动的时候就准备就绪(执行),此时就需要使用静态代码块.因为这种代码是主动执行的,在项目启动的时候就会自动初始化,并且只在初始化的时候执行一次.下面用一个例子说明:/** * @Author: ♞Demons♕ * @DATE: 2018/...原创 2018-08-27 09:30:31 · 1651 阅读 · 0 评论 -
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 · 4625 阅读 · 1 评论