Java
鹤忧
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap 1.7与1.8的锁区别,以及数据结构区别
JDK1.7版本的ReentrantLock+Segment+HashEntry,到JDK1.8版本中synchronized+CAS+HashEntry+红黑树1.7版本put:Segment的继承体系可以看出,Segment实现了ReentrantLock,也就带有锁的功能,当执行put操作时,会进行第一次key的hash来定位Segment的位置,如果该Segment还没有初始化,即通过CAS操作进行赋值,然后进行第二次hash操作,找到相应的HashEntry的位置,这里会利用继承过来的锁.原创 2021-03-19 14:17:50 · 1248 阅读 · 0 评论 -
hashmap原理,扩容机制,数据结构版本差异,是否安全,闭环问题
1.hashmap数据结构 1.7版本:数组+单链表 1.8版本:数组+单链表+红黑树2.存取过程put方法: 1.判断当前Hashmap(底层是Entry数组)是否存值(是否为空数组)如果为空,则初始化(默认大小16) 2.计算当前key的哈希值,通过哈希值和当前数据长度,算出当前key值对应在数组中的存放位置,如果计算的哈希位置有值(及hash冲突),且key值一样,则覆盖原值value,并返回原值valuepublic V put(K key, V value) { //原创 2021-03-19 11:53:28 · 281 阅读 · 0 评论 -
LocalDate与Date相互转换
1.LocalDate转Date LocalDate date = LocalDate.of(2006,07,26); ZoneId zone = ZoneId.systemDefault(); Instant instant = date.atStartOfDay().atZone(zone).toInstant(); java.util.Date da = Date.from(instant);2.Date转LocalDate原创 2020-07-27 11:09:22 · 44827 阅读 · 0 评论 -
springboot统一异常处理
实现方式第一种:使用@ControllerAdvice和@ExceptionHandler注解@Slf4j@ControllerAdvicepublic class GlobalExceptionHandler { @ResponseBody @ExceptionHandler(NullPointerException.class) public BaseResu...原创 2020-04-30 16:51:47 · 193 阅读 · 0 评论 -
最新-java面试题
爬坑三年多,最近遇到较频繁的爬坑题。做下记录。1.hashmap原理,扩容机制,数据结构版本差异,是否安全,闭环问题。2.对currenthashmap的理解3.是否用过锁,用过哪些锁?4.说一下synchronized与Lock的区别5.synchronized的原理是否了解?6.讲解一下CAS7.dubbo的负载均衡机制有哪些8.zookeeper有哪些作...原创 2020-06-12 10:59:05 · 110 阅读 · 0 评论 -
线程池七大核心参数及执行过程
线程池七大核心参数1.corePoolSize(核心线程数)2.maxPoolSize(最大线程数)3.keepAliveTime(空闲回收时间)4.unit(回收时间单位)5.workQueue(任务队列)6.threadFactory(线程工厂,用于创建线程,一般为默认线程工厂即可)7.handler(拒绝策略)当调用 execute(()方法添加一个请求...原创 2020-03-24 13:46:56 · 4067 阅读 · 0 评论 -
多线程的创建方式,常用线程池及7大核心参数
一.多线程创建方式1.继承thread类//继承Thread类来创建线程public class ThreadTest { public static void main(String[] args) { //设置线程名字 Thread.currentThread().setName("thread"); MyThread m...原创 2020-03-24 11:01:50 · 1442 阅读 · 0 评论 -
多线程同步卖票demo
public class Test1 {public static void main(String[] args) { TestThread te = new TestThread(); Thread te1 = new Thread(te); Thread te2 = new Thread(te); Thread te3 = new Thread(te);原创 2017-06-14 17:26:50 · 369 阅读 · 0 评论 -
运用多线程批量修改数据
运用多线程批量修改数据原创 2017-06-20 12:01:10 · 842 阅读 · 0 评论 -
json解析list取值,json多层取值
先获取json文件,如下解析即可获取所需字段值,可new对象set值保存或返回。 package UserTest;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;public class JsonTest {publi原创 2017-04-25 13:34:56 · 6128 阅读 · 0 评论 -
文件上传
文件上传与删除原创 2017-03-23 17:28:20 · 188 阅读 · 0 评论 -
登录过滤器
登陆过滤器原创 2017-03-23 18:30:18 · 214 阅读 · 0 评论 -
音频文件pcm转换wav
import java.io.FileInputStream;import java.io.FileOutputStream;/** * PCM文件转换成Wav格式音频 * @author chuanye.wan * */public class PCM2WAV {/** * 转换音频文件 * @param src 需要转换的pcm音频路径 * @param target 保存转原创 2017-03-22 18:22:09 · 1860 阅读 · 0 评论