自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 java中的引用类型

强应用(Strong Reference): 最长见的引用类型,比如String s=new String(“asc”),这里s就是强引用类型。 软引用(Soft Reference): 如果某个对象是软引用可达,并且内存不足,则该对象会被回收掉,很多缓存系统采用软引用实现。 弱引用(Weak Referance): 对象处于...

2018-08-22 22:04:08 241

原创 ThreadLocal内存泄漏原因以及避免方案

ThreadLocal的原理是操作Thread内部的一个ThreadLocalMap,这个Map的Entry继承了WeakReference,设值完成后map中是(WeakReference,value)这样的数据结构。java中的弱引用在内存不足的时候会被回收掉,回收之后变成(null,value)的形式,key被收回掉了。 如果线程执行完之后销毁,value也会被回收,这样也没问题。但如果是...

2018-08-07 21:37:58 15136 12

原创 秒杀系统设计

限流 秒杀场景短时间内有很高的并发量,秒杀的难点主要是超卖和限流。业务流程分验库存,较少库存,生成订单三个步骤。十几万的用户同时抢十几件商品,可能会达到几十万的qps,这么大的请求量可能会打垮服务器和数据库。而且99.9%的请求是无效的。做的第一件事是限流,在分布式条件下,一个限流方案是采用redis限流,比如限流到100qps,当前秒作为key。每次key自增,如果大于100之后的超...

2018-05-27 22:21:38 340

原创 ClassLoader

java是通过类加载器,将jdk中的类,classpath下的类,或者网络上下载下来的class文件夹在到内存中去。 类加载器分几种,最顶层的是Bootstrap ClassLoader,负责加载rt.jar包中的类,其子类是ExtensionClassLoader,负责加载jdk的ext包中的所有类,ExtensionClassLoader的子类是SystemClassLoader,这个类加载器

2016-05-21 14:04:59 258

原创 java是值传递还是引用传递。

: 值传递是指传递参数的一个拷贝过去,这个拷贝被修改,原来的参数是不会发生变化的,而引用传递是将引用传递过去,如果参数被修改,参数就真的发生了变化。java中的基本数据类型i被传递到另外一个方法中并进行修改,执行完毕后,这个i没有发生变化的,这是值传递的表现。一个对象obj被传递到一个方法中,obj的一个成员变量被修改,方法执行完毕后,这个obj的那个成员变量就真的发生了变化,这好像是引用传递的表

2016-05-04 23:21:54 290

原创 Hashmap和LinkedHashmap的对比

java中很多数据容器都是基于数组实现的,hashmap和linkedhashmap也不例外,都是内部维护一个数组,但是数组存放的元素不是普通的对象,而是经过包装的对象。hashmap中的包装类如下static class Entry<K,V> implements Map.Entry<K,V> { final K key;//存放进去的key V value;//存放的value

2016-05-02 14:50:05 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除