Java基础
arthur.dy.lee
这个作者很懒,什么都没留下…
展开
-
Java线程池实现原理及其在美团业务中的实践
线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。降低资源消耗。转载 2023-03-20 19:03:42 · 249 阅读 · 0 评论 -
java中几种常用枚举类的使用
java中几种常用枚举类的使用原创 2022-10-14 16:50:03 · 194 阅读 · 0 评论 -
java lambda表达式List<Bean>转Map<String,List<Bean>>或转Map<String,Bean>
java lambda表达式List<Bean>转Map<String,List<Bean>>或转Map<String,Bean>原创 2022-05-20 17:10:44 · 1568 阅读 · 1 评论 -
UTCTimeUtils
import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZoneOffset;import java.time.ZonedDateTime;import java.time.format.DateTimeFormatter;public class UTCTimeUtils { private static final String .原创 2022-01-20 15:32:34 · 206 阅读 · 0 评论 -
zookeeper 分布式锁服务
zookeeper 分布式锁服务转载 2016-03-10 10:50:04 · 1532 阅读 · 0 评论 -
AtomicInteger原理(待补充)
AtomicInteger原理转载 2016-03-01 10:55:06 · 978 阅读 · 0 评论 -
java导出Excel通用方法
java导出Excel通用方法转载 2016-04-08 13:06:31 · 2588 阅读 · 0 评论 -
HashMap多线程并发问题分析
HashMap多线程并发问题分析转载 2016-04-25 13:56:01 · 6839 阅读 · 0 评论 -
分布式Unique ID的生成方法一览
分布式Unique ID的生成方法一览转载 2016-04-29 17:23:13 · 2205 阅读 · 0 评论 -
CSRF攻击方式
CSRF攻击方式转载 2016-04-13 12:44:05 · 486 阅读 · 0 评论 -
乐观锁和悲观锁
乐观锁和悲观锁转载 2016-03-07 16:59:39 · 796 阅读 · 0 评论 -
如何生成一个合适的hashcode方法
如何生成hashcode方法转载 2016-03-07 15:55:23 · 4442 阅读 · 0 评论 -
web service和rpc的区别
web service和rpc的区别转载 2016-03-04 12:55:19 · 713 阅读 · 0 评论 -
long型转化成BigDecimal
long型转化成BigDecimal原创 2016-02-16 16:26:44 · 32607 阅读 · 0 评论 -
JVM加载class文件的原理机制
JVM加载class文件的原理机制转载 2016-03-02 00:37:53 · 856 阅读 · 0 评论 -
面向对象设计的SOLID原则
SOLID原则转载 2016-02-18 16:30:52 · 1306 阅读 · 0 评论 -
new Exception().getStackTrace()用法
new Exception().getStackTrace();原创 2016-01-10 22:49:11 · 6112 阅读 · 0 评论 -
自定义注解以及反射得到当前的调用方法
自定义注解以及反射得到当前的调用方法原创 2016-01-11 01:21:34 · 2720 阅读 · 0 评论 -
java.lang.String的intern()方法
java.lang.String的intern()方法转载 2016-04-29 09:52:54 · 616 阅读 · 0 评论 -
深入解析String.intern()
深入解析String.intern()转载 2016-04-29 15:36:00 · 508 阅读 · 0 评论 -
base64编码解码
base64编码解码转载 2016-04-29 16:30:51 · 783 阅读 · 0 评论 -
Association-Aggregation-Composition区别
Association-Aggregation-Composition区别[关联聚合组合的区别]简介Association 关联就是两个对象有关系,这个比较泛化,可以是一对一,一对我,多对一,多对多的关系 。Aggregation聚合是一种特殊的关联,是一个’has-a’的关系,是’整体-部分’的关系。聚合的类包括另一个类的引用,可以说聚合类包含另一个类,被包含的类是聚合类的一部分。并...原创 2018-08-10 18:23:19 · 1786 阅读 · 0 评论 -
java多线程系列_让主线程等待子任务执行的各种方式
业务场景在web应用开发中我们经常会遇到这样的场景:一个请求任务,我们需要去查多个库,并对查询到的数据做处理,此时如果采用同步的方式去查,往往会导致请求响应时间过慢。比如:两个查询任务task1,task2,task1查询数据要花2s,处理数据要花1s;task2查询数据花5s,处理数据花2s,那一次请求的时间是2+1+5+2=10s。而如果我们用异步的方式,则能减少请求响应的时间。 而利...原创 2018-07-21 23:12:04 · 2483 阅读 · 1 评论 -
java运算符 与(&)、非(~)、或(|)、异或(^)
java运算符 与(&)、非(~)、或(|)、异或(^)最近看HashMap源码,遇到了这样一段代码:static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}于是我整理学习了以下知识:1...转载 2018-05-01 23:05:21 · 3667 阅读 · 0 评论 -
导出csv文件中文乱码
导出csv文件中文乱码微软的excel文件需要通过文件头的bom来识别编码,所以写文件时,需要先写入bom头。在写文件前,加入BOMString bOM = new String(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });//orbyte[] uft8bom={(byte)0xef,(byte)0xbb,(b...转载 2018-03-09 10:43:40 · 8534 阅读 · 1 评论 -
google guava使用例子
guava是Java的一个扩展类库在google的许多项目中使用过了,现在最为一个 开源的Java类库广泛使用(http://code.google.com/p/guava-libraries/)。 guava类库扩展的主要是这些相关类:collections(集合类),concurrency(并发),primitives,reflection(反射),comparison,I/O,hash...转载 2017-09-26 12:21:12 · 530 阅读 · 0 评论 -
java中全角半角字符的相互转换
import org.apache.commons.lang.StringUtils; /** * <PRE> * 提供对字符串的全角->半角,半角->全角转换 * </PRE> */ public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ static转载 2016-08-18 14:12:04 · 4144 阅读 · 0 评论 -
java生成随机字母
java生成随机字母转载 2016-06-23 17:35:17 · 19160 阅读 · 0 评论 -
并发(Concurrent)与并行(Parallel)的区别
并发(Concurrent)与并行(Parallel)的区别转载 2016-06-20 23:00:11 · 626 阅读 · 0 评论 -
Java7新的try-with-resources语句,自动资源释放
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。新的语句支持包括流以及任何可关闭的资源转载 2016-07-04 23:24:20 · 2543 阅读 · 0 评论 -
产生任意数
以下代码主要实现的功能:1、产生任意整数2、产生任意double3、产生任意区间整数4、产生任意区间double类型数值5、产生任意区间整数,并在区间内,可再定义一个小区间,小区间生成的数值占总区间的比率,可任意定制。原创 2016-07-10 22:43:47 · 443 阅读 · 0 评论 -
java枚举
package com.paincupid.springmvc.finance.domain;public enum ConsumerType { 信用卡("creditCard"), 现金("cash"); private final String value; ConsumerType(String value) { this.value = valu...原创 2016-04-24 21:12:24 · 425 阅读 · 0 评论 -
异常封装
异常封装转载 2016-05-16 15:34:51 · 1300 阅读 · 0 评论 -
StringBuilder在高性能场景下的正确用法
StringBuilder在高性能场景下的正确用法转载 2016-04-29 16:54:42 · 2272 阅读 · 1 评论 -
将异常(getStackTrace)转化成String
将异常(getStackTrace)转化成String转载 2016-01-10 22:43:15 · 7431 阅读 · 0 评论 -
java中读取配置文件的方法
java中读取配置文件的方法转载 2016-01-08 20:33:05 · 679 阅读 · 0 评论 -
判断字符串是否为空
判断字符串是否为空原创 2015-12-22 00:30:40 · 2599 阅读 · 0 评论 -
生成区间范围内的随机日期
生成区间范围内的随机日期原创 2015-03-06 17:42:29 · 2094 阅读 · 0 评论 -
生成区间范围内的随机整数和浮点值
生成区间范围内的随机整数和浮点值原创 2015-03-06 17:33:21 · 4276 阅读 · 1 评论 -
Java日期
SimpleDateFormat sdf = null;if(a.equals("m")){ sdf = new SimpleDateFormat("yyyy-MM"); map.put("takeEnd",sdf.format(new Date()));}else{ sdf = new SimpleDateFormat("yyyy"); map.put("t原创 2015-01-16 11:36:17 · 475 阅读 · 0 评论