
Java
深圳市热心市民市民
我是快乐国贸
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一致性Hash的简单实现(java demo)
一致性Hash算法Java实现原创 2022-07-28 00:39:39 · 460 阅读 · 1 评论 -
AES加解密工具类(JDK)
AES加解密工具类的使用原创 2022-07-27 23:54:57 · 986 阅读 · 0 评论 -
sun.misc.BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
maven 打包的时候如果引入了对应的类 import sun.misc.BASE64Encoder;就会报这个warning ,凡是以sun开头的jdk包都是不建议使用的 ,Classes from "sun.*" packages should not be used ,不过JDK已经给我们提供了对应的工具类 import java.util.Base64; @Test public void testBASE64Encoder(){ String s .原创 2021-04-19 10:28:12 · 8781 阅读 · 1 评论 -
Spring整合POI导出100W excel数据(简单、简洁、原生POI)
excel2007格式的单sheet,最高支持1048576 条记录 约100W+条 1024*1024=1048576引入POI依赖,只要这个一个就OK了<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version></depen..原创 2021-02-08 17:24:43 · 328 阅读 · 0 评论 -
设置Spring Boot 单元测试自动提交事务(不回滚)
在编写单元测试时,如下代码发现数据库更改没有成功@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.NONE)class UserMapperTest { @Autowired private UserMapper userMapper; @Test @Transactional void updateUser(){ User user = new User();原创 2020-09-30 18:00:11 · 4983 阅读 · 0 评论 -
Spring Boot 创建单元测试类
在spring boot 项目中我们希望快速测试一个方法,这里举例DAO层 一个 UserMapper的查询方法,希望快速测试一下在 UserMapper 类上 alt+enter 快捷键 Create Test ,生成代码,再稍微改一下@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.NONE)class UserMapperTest { @Autowired private UserMapper us原创 2020-09-30 17:35:07 · 975 阅读 · 0 评论 -
Java8 获取上一个月
Java8 中有丰富的时间处理API,示例:获取上一个月public class LocalDateTest { public static void main(String[] args) { LocalDate date1 = LocalDate.now().minusMonths(1); LocalDate date2 = LocalDate.of(2020, 3, 31).minusMonths(1); System.out.print原创 2020-09-30 16:07:44 · 1494 阅读 · 0 评论 -
java 实现LRU算法(精简)
1. 继承LinkedHashMap ,LinkedHashMap 的构造方法中 可选参数accessOrder 设置为true 即可实现LRU逻辑,2.重写removeEldestEntry 方法逻辑,实现删除逻辑。public class LinkedHashMapTest2 extends LinkedHashMap<Integer, Integer> { private final int capacity; @Override protected原创 2020-09-30 15:59:06 · 490 阅读 · 0 评论 -
java.sql.SQLException: Access denied for user ‘‘@‘localhost‘
在IDEA 中配置mysql ,结果连接报错,配置如下:spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.data-username=rootspring.datasour原创 2020-08-25 20:55:37 · 532 阅读 · 0 评论 -
线程的六种状态
线程一共有六种状态。就是六种,1.NEW 2.RUNNABLE 3.BLOCKED 4.WAITING 5.TIMED_WAITING 6.TERMINATED 下面分别说明下各种状态情况1.NEW 线程创建完但未调用 start方法2.RUNNABLE 可细分两种情况 1. 线程正在Java虚拟机中执行 2. 等待操作系统分配资源(例如CPU时间片)3.BLOCKED 可细分两种情况: 1. 进入synchronized修饰的代码块或方法等待...原创 2020-08-10 23:18:56 · 3102 阅读 · 0 评论 -
java集合体系(List Set Queue Map)
java 集合体系下分为两大类 collection 和 mapcollection 下有三大接口 list set queueList 下的实现类有ArrayList 数组结构,实现了RandomAccess随机访问, 使用上注意扩容和数据迁移LinkedList 双链表结构,实现了Deque接口Vector 线程安全的集合Stack 继承Vector, 栈(FILO)CopyOnWriteArrayList 线程安全的集合Set 下的实现类有HashSet 基于key的equals方法原创 2020-08-10 19:22:20 · 218 阅读 · 0 评论 -
RedisTemplate 实现最近浏览、最近访问,最近使用功能。
需求:例如用户浏览商品需要保存用户最近浏览的N条记录,同一个商品浏览多次只保存最近一条。实现思路:使用redis 的 zSet 有序集合,zSet.add(String k,String v,Double score),k : 为用户浏览商品在redis中的标识 例如 "recent_browse_list:" + userIdv : 为商品idscore : score为一个分...原创 2020-03-20 19:49:11 · 3049 阅读 · 2 评论 -
ArrayList 的初始容量多少?
List<Integer> list = new ArrayList<>(); list 的初始容量到底是多少在 JDK 8 中 查看 ArrayList 源码 /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList(...原创 2019-04-24 16:50:38 · 7082 阅读 · 2 评论 -
防止 java.lang.NullPointerException 的几条建议
假设变量 status 定义为 Integer 类型 一般在比较的时候 通常会 使用如下:if(status == 1){ // do something}但是 status 如果为 null 就会报空指针异常,可以改为 status != null && status == 1 ,或者 Objects.equals(status ,1) 建议第二种,第一种写...原创 2019-04-24 15:55:26 · 676 阅读 · 0 评论 -
Java 使用Base64编码
使用apache commons 下的包import org.apache.commons.codec.binary.Base64;public class Test { public static void main(String[] args){ String text= "中国"; String s = Base64.encodeBase6...原创 2019-03-26 14:59:04 · 638 阅读 · 0 评论 -
Java8 List 转 String
public static void main(String[] args){ List<String> list = new ArrayList<>(); list.add("abc"); list.add("df"); System.out.println(String.join(",",lis...原创 2019-03-18 11:44:24 · 3246 阅读 · 0 评论 -
处理IOS,Safafi浏览器 无法展示webp格式图片
前提条件:图片服务器是阿里云OSS问题原因: 安卓端上传了一张webp 格式图片,格式是webp(安卓特有的格式) , 安卓手机/ chrome 等访问都没问题,但是 IOS,Safari 确访问不了。解决办法:1. 在阿里云上传图片完成后,图片URL拼接参数 ?x-oss-process=image/info类似:http://图片路径?x-oss-process=i...原创 2019-03-11 19:34:02 · 6145 阅读 · 0 评论 -
使用Integer -128 ~127 可能导致的线程问题。
对Integer有过了解的可能知道,Integer i = 0 其中 i 的值 在 [-128,127] 是缓存起来的,在JVM中的只有一份。那就是说 [-128,127] 的值 其实都是共享变量,而在多线程中,只有共享变量才有多线程安全问题。对一个共享变量加锁的话就会导致访问访问该变量的多线程竞争。看下面例子:import java.util.concurrent.TimeUn...原创 2018-08-26 01:27:54 · 284 阅读 · 0 评论 -
一次小开发,不设置Redis key 的Bug
在一次开发中,有个redis key 用于统计参数人数,代码大概是这么写的,1.参与活动,逻辑里有类似如下,每次参与,redis 记录参与人数+1ValueOperations<String,Integer> valueOperations = redisTemplate.opsForValue();Integer count = valueOperations.get("xxxxxx...原创 2018-07-02 17:01:55 · 490 阅读 · 0 评论 -
java8 无限流
参考java8 in action public class TestInfiniteFlow { public static void main(String[] args){ Stream.generate(Math::random).limit(5).forEach(System.out::print);// 1 List<Integer>...原创 2018-07-02 16:10:47 · 1579 阅读 · 0 评论 -
Hello级别的Servlet
自从用了Spring 就再也没写过原生的Servlet了,现在要测试JSP的一些东西 ,还是写原生的Servlet 来测试 ,主要简单方便Servlet 版本 3.1, 现在使用eclipse j2ee 版本 新建 Dynamic Web project, 默认是不创建 web.xml 文件的 可见已经不推荐使用web.xml了 直接使用注解就能配置 Servlet,Filter原创 2017-09-28 11:55:03 · 422 阅读 · 0 评论 -
Java 打包 jar 运行
新建一个project , 其中就一个类 import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.channels.FileChannel;public class Test { @SuppressWarnings("resource") public static void原创 2017-09-30 10:59:21 · 364 阅读 · 0 评论 -
java8 parallel()方法可能导致OutOfMemoryError
先看代码public class TestPerformance2 { public static void main(String[] args){ Instant instant = Instant.now(); Long reduce = Stream.iterate(1L, i -> i + 1).limit(10000000L).par...原创 2018-07-02 15:47:26 · 1473 阅读 · 0 评论