Java
文章平均质量分 65
第一杯茶
IT
展开
-
Eclipse TestNG
1.安装TestNG 插件 在Eclipse Marketplace里安装插件,目前最新插件是6.9版本,要求的JDK是1.7,,否则会不能执行。这里指定JDK,2.编写测试代码: 此项目基于Spring 的maven工程: @ContextConfiguration(locations = { "classpath*:config/spring/sprin原创 2015-05-12 16:19:07 · 577 阅读 · 0 评论 -
java 垃圾回收
本文基于Oracle hotspot jvm1.GC:查找不再使用的对象,以及释放这些对象所管理的内存2.算法:分代收集Young:主要是用来存放新生的对象。Old:主要存放应用程序中生命周期长的内存对象。Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候被放入PermGen原创 2017-01-12 10:55:25 · 413 阅读 · 0 评论 -
ReentrantLock(重入锁)以及公平性
转自 并发编程网ReentrantLock(重入锁)以及公平性转载 2016-03-10 20:07:10 · 659 阅读 · 0 评论 -
fastjson 版本性能
项目中用到fastjson,在将json串转换成Javabean的时候版本差异对性能影响较大。当json串大小比较小时差异不明显,但是项目中发现当json达到1M以上时1.1.15的版本性能很差,需要几十秒。而最新的版本1.2.7仅需要100ms左右。List boss3DatePriceMQBeans =JSON.parseArray(json, Boss3DatePrice原创 2016-01-05 18:53:00 · 3352 阅读 · 0 评论 -
java volatile
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java转载 2015-12-01 13:37:59 · 464 阅读 · 0 评论 -
HashMap
HashMap的存储结构是这样:数组加链表的结构:查看hashmap源码可以看到(jdk1.8) 采用数组+链表+红黑树的结构首先有一个每个元素都是链表(可能表述不准确)的数组,当添加一个元素(key-value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后原创 2015-10-14 11:22:34 · 376 阅读 · 0 评论 -
HashSet
HashSet源码:public class HashSetE> extends AbstractSetE> implements SetE>, Cloneable, java.io.Serializable{ static final long serialVersionUID = -5024744406713321676L; private tran原创 2015-10-14 13:09:06 · 338 阅读 · 0 评论 -
Thread 和 Runable 区别
首先 Thread是类,Runable是接口。一是写一个类继承自Thread类,然后重写里面的run方法,用start方法启动线程二是写一个类实现Runnable接口,实现里面的run方法,用new Thread(Runnable target).start()方法来启动查看源码可以发现 Thread也是实现的Runablepublicclass Thread imple原创 2015-09-14 16:38:42 · 1551 阅读 · 0 评论 -
Callable 和Future 接口使用
使用Callable和Future的组合,异步获取数据,Callable负责执行,Future获取执行结果1:Callable和Future ExecutorService executor = Executors.newCachedThreadPool();Future future=executor.submit(new Callable(){ @Override原创 2015-09-08 17:58:53 · 413 阅读 · 0 评论 -
java Pattern和Matcher详解
看到了Pattern和Matcher的代码,找了篇博客学习一下结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。java正则表达式通过java.ut转载 2015-09-06 17:16:43 · 340 阅读 · 0 评论 -
Java 面试题及答案
1.Java 八个基本数据类型 基本数据类型包括byte、int、char、long、float、double、boolean和short。2原创 2014-04-25 13:48:18 · 480 阅读 · 0 评论 -
jvm 学习
面试中被问道JVM,结果没能很好的回答清楚,这里再学习一遍,补充下。下面是找到的一篇博客,讲述的比较详细:一、java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开转载 2015-09-09 15:56:49 · 1282 阅读 · 1 评论 -
LinkedHashMap 原理及用于缓存数据时LRU算法
基于 LinkedHashMap特性,可以实现出热点缓存的处理,保证固定数量缓存,LRU 最近最少使用算法。原因是当 LinkedHashMap 设置了accessOrder=true 时 调用put 和get时都会把当前数据放到末尾处。这样可以方便的实现旧数据的剔除。重写LinkedHashMap中的removeEldestEntry方法具体可参考上述博客 转自:https://blog.csd...原创 2018-04-10 14:18:44 · 282 阅读 · 0 评论