自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(18)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 AQS(AbstractQueuedSynchronizer) 的具体应用

AQS(AbstractQueuedSynchronizer) 是java.util.concurrent的基础,其他同步工具类内部,都包含一个AbstractQueuedSynchronizer的实现.AQS维护了一个CLH queue:CLH lock queue其实就是一个FIFO的队列,队列中的每个结点对象中维护了当前等待的线程,各个实现类有不同的用法。java.util.conc...

2020-03-13 15:27:43 132

原创 【深入理解JVM】垃圾收集算法

标记-清除算法普通的标记-清除算法是最基础的垃圾收集算法。分为“标记和收集两个阶段”标记:标记出需要回收的对象,在标记完成后统一回收。标记靠的是前一文所讲的判断对象存活算法进行标记的。清除:清除内存区域。缺点:效率低,标记和清除效率都不高。空间问题: 清除后内存区域不连续,产生过多垃圾碎片,导致后续分配大对象时容易发生内存不足而触发另一次垃圾收集动作。后续的收集算法都是标记-清除...

2020-03-05 22:22:13 122

原创 【深入理解JVM】强引用,软引用,弱引用,虚引用的区别

为何要使用多种引用方式JDK2.0 之前 ,只有强引用一种,当一个对象被引用时,此对象就永远无法被回收。但是实际业务过程中,有些对象是不那么重要的,我们希望在内存紧张的时候,被引用的情况下,也可以被回收,比如 缓存对象。JDK2.0 后。JAVA 对引用的概念进行了扩充,将引用分为强引用,软引用,弱引用,虚引用4种,这4种引用强度逐渐减弱。强引用强引用是指在程序代码里普遍存在的,类似“A ...

2020-03-01 12:00:41 325

原创 【深入理解JVM】 判断对象存活算法

概要JVM 垃圾收集之前需要判断哪些对象需要回收,下面介绍几种常用的判断对象是否存活算法。引用计数法(Reference Counting)顾名思义,引用计数法就是对引用进行计数,引用对象+1计数,引用失效时-1,当计数为0时,就是对象没有被使用,可以被回收。优点:实现简单,并且判定效率也高。缺点:无法解决互相引用的问题。目前没有一款JVM采用此种算法。例如 A 对象持有 B 对象的引...

2020-02-26 20:42:46 153

原创 10进制-任意进制转化方法

/** * description: 十进制转特殊进制 * @author yingww * @date 2019-11-25 * @param value 需要转化的值 * @param binary 进制 int 类型 * @param format 进制对应位数的格式 format的length必须>binary ...

2019-11-27 09:47:02 455

原创 mysql 唯一索引区分大小写

这取决于字段的排序规则-如果是ci(不区分大小写)或cs(区分大小写)。唯一索引将相应地应用。

2019-11-27 09:20:50 4060

原创 feign接口动态代理源码解析

@FeignClinet 代理类注册@FeignClinet 通过动态代理实现的底层http调用,既然是动态代理,必然存在创建代理类的过程。如Proxy.newProxyInstance或者 CGliborg.springframework.cloud.openfeign 的代理类注册实现如下。首先,org.springframework.cloud.openfeign.FeignClien...

2019-09-10 14:40:24 1545

原创 HashMap的hash函数

hashmap的hash函数原理hashmap数组下标方法static int indexFor(int h, int length) { return h & (length-1);}返回的就是数组下标,hashmap的length是2的整次幂, 那么length-1 就生成一个低位掩码,和hash值与操作后,去掉了全部高位数字,只保留后四位 11000...

2018-11-15 12:37:18 380

原创 在feign接口中返回泛型类(Generic response support for feign client)

@RequestMapping("/api/productInfo/getPrimaryByCode") <T extends BaseEntity> ObjectRestResponse<T> getPrimaryByCode(@Requ

2018-11-14 22:28:32 12493 5

原创 POI excel导出的通用util

基于Apache POI实现excel的通用util,通过反射和泛型实现,使用方法: @Test public void exportExcel(){ List<Model> models = new ArrayList<Model>(); Model model = new Model("value1",1,1.1,new Date(), Calenda

2017-04-05 18:04:14 299

转载 spring mvc 服务端跨域,返回参数自动拼接.

找到一个服务端自动判别是否跨域请求并返回 jsonback({}) 这种类型的参数,而不是直接返回{},还是google好,百度了半天全是复制粘贴一个版本http://www.concretepage.com/spring-4/spring-4-mvc-jsonp-example-with-rest-responsebody-responseentity 这篇文章已经很清楚了,

2017-03-10 16:46:53 150

原创 设计模式之适配器模式

适配器模式(Adapter):将一个类的接口转换成客户端(client)希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 Convert the interface of a class into another interface the clients expect. Adapter lets classes work together tha

2017-02-08 12:04:29 117

原创 tomcat 防xss 的一种实现

我的解决方法, 通过Servlet 过滤器 过滤请求 关键在于是如何在Filter取到post里的内容通过继承javax.servlet.http.HttpServletRequestWrapper;类替换post里的非法字符1:FormDataXssRequest类import javax.servlet.http.HttpServletRequest;import javax.servlet.

2016-12-21 16:06:09 3897

原创 websocket点对点聊天java实例

项目中有个实时聊天的需求,查看很多资料,主要是实现从服务端发送信息到客户端,实现方法有长轮询,长连接,websocket等,还是websocket最简单,不过需要浏览器支持。需要的支持需要jdk7以上,tomcat7以上,反正我的7.0.55是不行,7.0.64可以,,引入javax.websocket api地址socket.javaimport bo.MessageChat;import

2016-04-28 10:40:01 2039

原创 request payload 和 form data 过滤器filter设置,防xss

今天做了一个防xss攻击的filter,原理是利用继承HttpServletRequestWrapper类,来替换http请求的参数,, 因为项目中需要上传文件,所以涉及到了payload和formdata的区别,这两者的区别就不多说了,用Content-Type属性可用区分出,,,需要两个类继承自HttpServletRequestWrapperFormDataXssRequest.java

2016-03-10 16:01:50 1968

原创 java webapp 几种文件上传和下载方式

java webapp 几种文件上传和下载方式下载方式:第一种:<a href="文件地址",download="文件名"></a>1 测试pc端chorme,safari,ie11,edge,可用,,移动端,,ios可直接开打pdf,word等文件,android上只有qq浏览器可直接查看,其他均要下载.第二种:springmvc实现@RequestMapping("/download")

2016-02-18 17:00:50 1545

原创 mysqldump:Got error: 1045: Access denied for user 'root'@'

mysqldump命令怎么都报密码错误,但是用navicat可以连接上,密码是对的,stackOverflow都是说加各种参数,但没有用原因:用了navicat修改了远程mysql的密码,导致用navicat可以连接,但是用相同的密码在服务器上不可用,一直报mysqldump:Got error: 1045: Access denied for user 'root'@',具体原因未知

2016-02-18 16:48:35 10790 1

原创 abstract-factory 抽像工厂模式

抽象工厂模式是普通工厂模式的扩展,普通工厂模式只生产一种产品,而抽象工厂模式支持多种具有相关联系的产品线,如下图Orc (兽人)和Elf (精灵) 都具有相同组成,由King ,Castle,Army组成.源码学习 java-design-patternsgithub 地址 https://github.com/keygod/java-design-patterns/tree/master/abstract-factory/src/main/java/com/iluwatar/abstractfacto

2015-09-24 22:34:41 126

异步上传文件图片js ajaxupload

异步上传文件图片js http://www.cnblogs.com/kissdodog/archive/2012/12/15/2819025.html

2017-01-22

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

TA关注的人

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