
javaee
文章平均质量分 55
every__day
这个作者很懒,什么都没留下…
展开
-
BUG探究 ConCurrentHashMap 源码中的 bug
ConCurrentHashMap 源码的 bug 分析,为什么源码错了,也能正常使用!原创 2022-03-17 23:58:11 · 1143 阅读 · 0 评论 -
为什么for循环中删除元素会报错
有时会遇到这样的业务需要,在 for 循环中删除列表元素,比如下面的例子。 List<User> userList = userDao.getUserList(); for(int i = 0; i < userList.size(); i++){ User user = userList.get(i); // 进行退款操作,若退款失败,从列表中删除 boolean withdraw原创 2020-10-25 11:25:05 · 1776 阅读 · 2 评论 -
PDF生成(三)freemarker 的list 处理
freemarker 处理 list 其实是很方便的。用 “&lt;#list as &gt; 这里用JSON数据作一个演示。具体生成步骤请参看PDF(一),这里仅仅贴出有关例子。java 中参数组装如下: Map&lt;String, Object&gt; paraMap = new HashMap&lt;String, Object&gt;(); J...原创 2018-05-09 18:38:41 · 1317 阅读 · 0 评论 -
PDF生成(二)freemarker 的空值处理
freemarker对空值处理原创 2018-05-08 12:40:37 · 885 阅读 · 0 评论 -
HTML 模板+freemarker渲染 生成PDF(一)
最近项目中要把相关数据导出为PDF文件,总结下自己写这个功能遇到的种种问题 先给出个大概的框架package com.xsm;import java.util.HashMap;import java.util.Map;import org.junit.Test;import com.sectechio.fintech.common.utils.PDFUtil;public c...原创 2018-05-03 19:18:18 · 15666 阅读 · 11 评论 -
Assingment 引用、赋值相关问题
《Thinking in Java》 Assignment对象和引用 赋值相关问题原创 2018-03-18 09:36:39 · 248 阅读 · 0 评论 -
i++与++i 、i--与--i 自增和自减
《Thinking in Java》++i与i++原创 2018-04-02 22:03:29 · 2456 阅读 · 0 评论 -
spring boot 配置文件里的中文处理 (发送短信)
最近做项目,要把发送短信的相关参数,抽取到配置文件中,遇到了中文乱码的问题。试了网上的一些方法,没解决。最后在看配置文件时,无意间看到拉取的配置文件里,注释都变成了ASCII码。我突发其想,把中文的配置文件,全部转成ASCII码写在配置文件里,居然解决了问题!!其中的原由还没去深究。这里只做些展示。这是配置文件里的中文及运行时打印的日志 这里也贴出发送短信的方法pub...原创 2018-07-04 12:29:35 · 660 阅读 · 0 评论 -
Spring Cloud项目中单数据源改为多数据源
Spring Boot, Spring Cloud项目,变单数据源为多数据源配置问题原创 2017-12-05 16:31:44 · 17552 阅读 · 3 评论 -
彻底弄懂ReentrantLock —— 超详细的原码分析
java1.6 之前, synchronized效率很低,AQS框架就是解决并发问题的首选。我们从 ReentrantLock入手,看下AQS怎么解决并发问题的。如下代码,存在多线程并发问题// TODO用 ReentrantLock 加锁,来看下效果,这里我们用公平锁ReentrantLock lock = new ReentrantLock(true); lock.lock();...原创 2020-10-07 00:15:33 · 3224 阅读 · 16 评论 -
LockSupport.park()被唤醒——unpark()与interrupt()有何不同
背景ReentrantLock 在阻塞线程,用的是LockSupport.park(),(ReentrantLock源码解析)与这对应,唤醒线程,调用LockSupport.unpark()。可看源码时,会发现,调用LockSupport.park(),紧接着会调用Thread.interrupted(),Why? private final boolean parkAndCheckInterrupt() { LockSupport.park(this); // 阻塞线程原创 2020-10-07 23:44:45 · 2259 阅读 · 6 评论 -
HashMap源码解析(2)—— hash & (n - 1)
本篇详细解析下 HashMap 中使用的哈希函数 —— hash & (n - 1)。如果对哈希函数这个概念不理解,可以参看之前的博客——哈希函数 上、哈希函数 下哈希函数用一句话通俗的讲,就是 将 key 值转化为数组下标,结合下图比如数组长度是15, 给一个最简单的哈希函数,key的hashcode,对15取余。 String key = "050306"; int code = key.hashCode(); // code:1424626382原创 2020-07-16 23:19:10 · 1792 阅读 · 2 评论 -
HashMap源码解析(1)—— tableSizeFor
本文主要介绍,HashMap源码解析中的一小部分。 构造函数里使用的tableSizeFor函数从这个构造函数说起——Map<String, String> map = new HashMap<>(20, 0.75f); public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgume原创 2020-07-14 22:24:40 · 365 阅读 · 0 评论 -
XLSTransformer+模板 导出 Excel
java快速导出Excel 利用XLSTransformer+模板原创 2018-01-08 20:36:20 · 6873 阅读 · 4 评论 -
mybatis <if test=""></if>标签0为null
<if test="state != null and state != ''">state = #{state}</if>里面的坑,关于0值处理的问题原创 2018-01-03 18:26:09 · 8505 阅读 · 0 评论 -
JAVA 反射机制(Java Reflection)总结(一)
利用Java Reflection 获取类、字段、构造方法、方法原创 2017-08-13 22:59:49 · 327 阅读 · 0 评论 -
TreeMap小应用
今天看到一个小的题目,人家实现的很好,写出来大家共享需要如下: 实现字符串“thinkinginjavaisaveryusefullbook”输出字母次数统计 想要的结果:a(3)b(1)e(2)……String str ="thinkinginjavaisaveryusefullbook"; char[] ch = str.toCharArray(); // 转数组原创 2017-08-04 21:45:10 · 302 阅读 · 0 评论 -
JAVA 反射机制(Java Reflection)总结(二)
Java反射的应用Demo原创 2017-08-26 17:50:09 · 310 阅读 · 0 评论