- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 Map.entrySet和Map.keySet执行效率比较
Map.entrySet是直接一次性获取map的所有键值对,可以通过getKey和getValue来获取健和值。Map.keySet获取map的健,获取值需要再一次使用map.get()方法来获取对应的值。所以可以看出,Map.entrySet比Map.keySet少遍历一次map。效率更高同时,Map.Entry同时也提供了一个setValue()方法。可以利用该方法来改变map中对应ke...
2019-01-03 17:59:18
918
原创 String定义生成对象以及内存相关总结
String的定义生成的对象以及内存的管理一直是我矛盾和纠结的地方。所以写下该文章希望对大家对String对象的创建有所了解。首先,了解下对象的创建。String str = new String("abc");该代码总共创建了两个对象呢?答案是创建了2个。因为new String("abc")生成字符串的时候,会先去常量池查找是否有该字符串。若是常量池中没有"a...
2018-12-21 17:57:48
217
原创 ThreadPoolExecutor策略配置以及应用场景
ThreadPoolExecutor 是用来处理异步任务的一个接口,可以将其理解成为一个线程池和一个任务队列,提交到 ExecutorService 对象的任务会被放入任务队或者直接被线程池中的线程执行。ThreadPoolExecutor 支持通过调整构造参数来配置不同的处理策略,本文主要介绍常用的策略配置方法以及应用场景。ThreadPoolExecutor 的处理逻辑Threa...
2018-12-20 19:46:10
319
原创 Java多线程-线程池ThreadPoolExecutor构造方法和使用规则
为什么用线程池有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且当线程数量太多时,系统不一定能受得了。使用线程池主要为了解决一下几个问题:通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制...
2018-12-20 19:15:49
322
原创 System.nanoTime 和 System.currentTimeMillis比较
区别:1.currentTimeMillis返回的是系统当前时间和1970-01-01之前间隔时间的毫秒数,,精确度是毫秒级别的2.nanoTime的返回值本身则没有什么意义,因为它基于的时间点是随机的,甚至可能是一个未来的时间,所以返回值可能为负数。但是其精确度为纳秒,相对高了不少。3.currentTimeMillis不仅可以用来计算代码执行消耗的时间 ,也可以和Date类方便的转换。而...
2018-12-20 17:53:13
1688
原创 java中Json转换成Map或List相关整理
java中Json转换成Map或List相关整理一般前端传入后台的json数据都会封装再Map中的一个元素中,先获取json数据转换成String,通过JSON的parseObject方法转成Map,parseArray方法转成list。 /**praseObject方法适用于{ "id" : "123", "courseID" : "huangt-test", "title" : "提交作业.
2018-12-20 14:17:18
1772
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人