java
文章平均质量分 77
牧竹子
且行且珍惜
展开
-
ArrayList ,AbstractList和iterator在remove时会抛出异常ConcurrentModificationException
/修改次数,替换,删除,排序都算修改 listIterator(final int index);} //ArrayList继承AbstractList ArrayList extends AbstractList {//list.remvove(e)实际调用方法 fastRemove(e) {//不执行checkForComodification } private class Itr implements Iterator < E > {原创 2023-03-23 13:01:39 · 493 阅读 · 0 评论 -
TransmittableThreadLocal实现原理
InheritableThreadLocal只会在线程池中的线程初次创建的时候,从父线程拷贝属性,而父线程再次修改这个属性时,线程池中的这个线程是无法再次感知到的。我们在日常的开发中,很少主动new线程,都是使用线程池,而线程池中,不会频繁的创建线程,更多的场景是线程创建一次,重复使用。如果线程中的属性在上次使用后被修改,下次使用后,子线程中保存的属性值依然是首次使用时的值TransmittableThreadLocal实现父线程值传递变更值给线程池子线程可以看到,使用TransmittableThrea原创 2022-07-06 14:23:30 · 1429 阅读 · 0 评论 -
ThreadLocal和InheritableThreadLocal实现原理
可见threadLocals为Thread的内部变量,每个Thread类的实例,都有自己的threadLocals变量总结ThreadLocal属性保存在每个线程实例中,线程实例通过Map结构管理所有的ThreadLocal属性,Map的key为ThreadLocal属性。ThreadLocal属性是Thread的内部变量,父子线程是不同的线程实例,显然在子线程中无法获取父线程设置的属性:ThreadLocal属性是Thread的内部变量,父子线程是不同的线程实例,显然在子线程中无法获取父线程设置的属原创 2022-07-04 17:05:52 · 238 阅读 · 0 评论 -
ThreadLocal父子线程数据传递
ThreadLocal父子线程数据传递?(面试题:如何在子线程拿到父线程threadLocal的值)2、使用InheritableThreadLocal解决3、带来的问题:在线程池中只能获取初始化线程时父线程的值4、解决:使用阿里开源工具类transmittable-thread-local通过装饰类调用前重新将父线程的值进行赋值5、解决2:通过线程池包装类解决POM依赖...转载 2022-07-04 15:29:28 · 642 阅读 · 0 评论 -
java代理Proxy以及实际PRC场景中的使用
代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法定义:给目标对象提供一个代理对象,并且由代理对象控制对目标对象的引用目的:java当中有三种方式来创建代理对象:创建一个 Image 接口和实现了 Image 接口的实现类。ProxyImage 是一个代理类,屏蔽具体原创 2022-06-24 13:11:55 · 816 阅读 · 0 评论 -
Stream将List转为Map,Set汇总拼接key以及分组groupingBy用法
Stream将List转为Map,Set汇总拼接key以及分组groupingBy用法原创 2022-03-11 13:03:23 · 12708 阅读 · 1 评论 -
常用的缓存机制
文章目录1. LRU (Least Recently Used)最近最少使用2. LFU (Least Frequently Used)最近最不常用使用页面置换3.比较LRU 和 LFU 的缺点TinyLFU统计频率Count–Min Sketch 算法保新机制Window特性淘汰策略(eviction policy)异步的高性能读写总结1. LRU (Least Recently Used)最近最少使用核心思想:如果数据最近被访问过,那么将来被访问的可能性也更高。实现:1) 新数据插入链表头原创 2021-02-16 09:31:51 · 1252 阅读 · 0 评论 -
Java后台phantomjs导出复杂图表PDF
当前导出PDF工具java后端如何导出像前端用echarts那么漂亮而且还有带有图表的PDF呢,或者图片。目前后端导出word或者excel都是有县城的jar,导出简单的图表也有的简单的jfreechart总结一下用java生成PDF的方法:A、itext-PdfStamper pdfStamper(俗称抠模板):代码简单 模板要先提供,且字段长度固定、不灵活B、itext-Document document(正常代码撰写):模板可根据代码调整、但样式不如C灵活 要维护的后台代码较多,整个过程全手工原创 2021-01-08 12:05:35 · 2247 阅读 · 0 评论 -
java对mysql查询特殊字符转义
日在使用mysql的like查询用户时,当用户姓名中含有" ’ “,”%","_",,""等特殊符号时,按以往的查询方式,并不能得出想要的结果。查阅资料得知:在遇到这些特殊字符时,需要对字符进行转义。‘:用于包裹搜索条件,需转为’;%:用于代替任意数目的任意字符,需转换为%;_:用于代替一个任意字符,需转换为_;\:转义符号,需转换为\\。 public class RequstUtils { /** * special char handle * ':用于原创 2020-12-28 14:22:57 · 3630 阅读 · 0 评论 -
sigar在Centos和Windows下使用java系统软硬件配置信息
背景本来这个网上一大堆实在没什么想写的,但是好像大多数都是互相抄袭的,在centos根本上用不了,因此我整理下自己具体实现的步骤。使用环境sigar版本:hyperic-sigar-1.6.4 依赖的链接库: libsigar-amd64-linux.so,sigar-amd64-winnt.dll操作系统: window10 64位,cetos7 64位windowsigar-amd64-w原创 2017-07-01 17:25:41 · 2402 阅读 · 2 评论 -
java web 中判断方法是否运行超时以及运行超时后的再次调用(用到了线程相关的知识)
在java web中有些时候我们的任务并不都是统一的而有点像是定制的,即不确定的临时任务场景说明:在调用其他平台的接口时,并不知道该平台是否突然运行异常缓慢导致我们的方法长时间停留此处无法返回以至于客户端一直停留在当前页面无任何反应出现假死的现象。解决办法:判断当前的调用方法是否超过了我们预想的运行时长,出现了则停止该方法的运行并及时返回运行超时的状态,以便于启动任务在预定时间后再次调用该原创 2015-12-25 19:26:11 · 1396 阅读 · 0 评论 -
Tomcat7+eclipse+ JRebel 破解实现热部署
一 下载JRebel6.0.3的破解文件首先从网上下载:jrebel_6.0.3-agent-crack.zip,并解压。下载地址: http://pan.baidu.com/s/1eQnJmvw , 提取密码: c9gt安装eclipse的JRebel6.0.3的插件我使用的是eclipse4.4.2,安装插件跟安装其它插件无异。插件更新地址为:http://upd原创 2015-06-18 10:01:25 · 3959 阅读 · 0 评论 -
Android内置的Pull解析器解析XML文件
/*除了可以使用 SAX和DOM解析XML文件,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextTe原创 2011-11-28 13:18:33 · 765 阅读 · 0 评论 -
Hibernate一对一,一对多懒加载的要求
懒加载要求Domain对象不能是final的,因为Hibernate需要生成一个继承自该Domain对象的类来实现懒加载。懒加载主要有三种:1. 对象的懒加载2. 关联集合的懒加载3. 对象属性的懒加载对象的懒加载对象的懒加载就是在映射文件的class标签中设原创 2011-10-06 18:51:14 · 1434 阅读 · 0 评论