最java
Somhu
biu...biu...biu...
展开
-
验证手机号工具类
public class PhoneNumberValidator { /** * 手机号正则表达式 */ private final String PHONE_NUM_VALIDATOR_REGULAREXP = "^[1][3,4,5,6,7,8,9][0-9]{9}$"; /** * 带区号手机号正则表达式 */ pr...原创 2018-06-13 21:55:00 · 801 阅读 · 0 评论 -
根据HttpServletRequest取ip
public static String getIpAddress(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || UNKNOWN_IP.equalsIgnoreCase(...原创 2018-05-31 13:38:22 · 497 阅读 · 0 评论 -
RocketMQ 生产者与消费者的封装
一、抽象消费类封装:public abstract class Consumer { protected final Logger logger = LoggerFactory.getLogger(getClass()); protected DefaultMQPushConsumer defaultMQPushConsumer; @Value("${rocket...原创 2018-06-01 11:54:30 · 5616 阅读 · 2 评论 -
使用Java实现异步调用三方服务超时设置
直接上代码:private static ExecutorService executorService = Executors.newSingleThreadExecutor(); /** * @param args */ public static void main(String[] args) { long start = Syste...原创 2019-03-05 21:22:27 · 2250 阅读 · 0 评论 -
一致性hash算法Java实现
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Collection;import java.util.SortedMap;import java.util.TreeMap;/** * 一致性Hash算法 * * @param <...原创 2019-03-06 13:45:56 · 621 阅读 · 0 评论 -
Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符:与运算符用符号“&”表示,其使用规律:两个操作数中位都为1,结果才为1,否则结果为0。public static void main(String[]...原创 2019-03-07 13:43:42 · 198 阅读 · 0 评论 -
Redis + Lua Java实现限流
limit.lua文件内容如下:local key = KEYS[1] --限流KEY(一秒一个)local limit = tonumber(ARGV[1]) --限流大小local current = tonumber(redis.call('get', key) or "0")if current + 1 > limit then --如果超出限流大小 return 0...原创 2019-03-04 21:19:12 · 1525 阅读 · 0 评论 -
Centos7克隆虚拟机之后,不显示ip地址
问题描述:centos7克隆了两个虚拟机,ifconfig看不到ip地址解决方法:重建适配器命令如下:分别执行命令1、21> systemctl stop NetworkManager2> systemctl disable NetworkManager然后关闭虚拟机——设置虚拟机——网络适配器——高级——MAC地址(M)——生成——确认——确认——重启虚拟机...原创 2019-03-07 21:07:29 · 1160 阅读 · 0 评论 -
找出数组中两个和为目标值的整数的数组下标
public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 11, 32, 43, 0, -1}; int target = 9; // 返回任意一个的数组的下标 int[] result = twoSum(numbers, tar...原创 2019-03-16 19:54:39 · 615 阅读 · 0 评论 -
获取指定类的调用位置:Thread.currentThread().getStackTrace() && new Exception().getStackTrace();
Thread.currentThread().getStackTrace()方法中使用了new Exception().getStackTrace();public StackTraceElement[] getStackTrace() { if (this != Thread.currentThread()) { // check for getSta...原创 2018-04-13 14:40:40 · 1895 阅读 · 0 评论 -
获取一个实体类的所有非静态属性
private static List<Field> getAllField(Class<?> entityClass, List<Field> fieldList) { if (fieldList == null) { fieldList = new ArrayList<Field>(); }...原创 2018-04-18 14:18:52 · 2174 阅读 · 0 评论 -
详细分析 java 序列化与反序列化
转载出处:https://www.cnblogs.com/xdp-gacl/p/3777987.htmlJava基础学习总结——Java对象的序列化和反序列化一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;转载 2017-12-26 13:07:34 · 267 阅读 · 0 评论 -
java自动装箱|拆箱解密
首先我们来认识一下装箱,在我们平时代码里随处可见,只是你没有留意到罢了(准确来说是JDK没让你注意到),对于代码片段:Double d = 12d;来说,这是我们写的java代码,还没有进行过编译,在jvm中运行前,编译器会做什么什么事呢,通过反编译工具我们可以看到其class文件内容:Double d = Double.valueOf(12d);我们再来看一下valueOf方法:pu原创 2017-09-18 14:28:16 · 397 阅读 · 0 评论 -
ArrayList添加元素流程
平时在很频繁使用ArrayList这个类进行数组的创建、操作、销毁,但是很少到源码里一探究竟,今儿个就用流程图来表示一下。首先上代码片段如下:List list = new ArrayList<>();list.add("This is a demo!");接着进到类ArrayList中跟着代码流程走一遭:原来如此,其在向一个新建的ArrayList中添加元素时,其实是在原创 2017-09-18 16:21:06 · 6184 阅读 · 0 评论 -
java NIO 知识点汇总
一、概述java NIO 开始于JDK1.4,其核心元件有:Channel、Buffer、Selector。 Channel可以理解为标准IO中流,数据可以从Channel读到Buffer中,也可以从Buffer 写到Channel中。Channel主要实现:FileChannel、SocketChannel、ServerSocketChannel、DatagramChannel。Buffer主要转载 2017-11-29 11:56:52 · 514 阅读 · 0 评论 -
volatile关键字解析
转载出处: http://www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情转载 2017-12-11 16:03:33 · 170 阅读 · 0 评论 -
java 动态代理
本篇博客转载自:https://my.oschina.net/huangyong/blog/159788Proxy,也就是“代理”了。意思就是,你不用去做,别人代替你去处理。比如说:赚钱方面,我就是我老婆的 Proxy;带小孩方面,我老婆就是我的 Proxy;家务事方面,没有 Proxy。 它在程序开发中起到了非常重要的作用,比如传说中的 AOP(面向切面编程),就是针对代理的一种应用。此外,在设计转载 2017-11-24 15:40:02 · 223 阅读 · 0 评论 -
Class.forName()用法详解
其主要功能:1、返回的是一个类2、要求JVM查找并加载指定的类3、JVM会执行该类的静态代码段下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法:一.什么时候用Class.forName()?先来个热身,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?你第一想到的肯定是new,但是注意一点:A a = (A)Class.forName(“pacage.A”).转载 2017-12-15 14:01:58 · 380 阅读 · 0 评论 -
看似普通的方式equals
我们知道,每个类都一个equals方法,或者是从基类Object那里继承过来的,或者是自己实现的,而且实现多样。这里来看一下String这个在java里使用最多且没有之一的类里的equals方法是如何实现这个equals方法的。首先上一小段代码:String a = new String("adf"); String b = new String("adf");原创 2017-09-18 11:38:46 · 384 阅读 · 0 评论