java-Collections
摘要:colletions1. set(不允许重复,通过 hashcode&&equal方法实现去重)1.1 HashSet--哈希表结构, hashMap(不允许重复、允许插入null值,无序,线程不安全)1.2 LinkedHashSet--继承 HashSet, 是哈希表和双向链表的的结合 (插入的
阅读全文
posted @
2021-03-31 20:21
wangsong412
java-gc
摘要:GC: Garbage Collection, 垃圾收集 java堆内存分: 新生代(1个Eden区, 2个Survivor区,比例:8:1:1)、老年代 GC要做的事情: 针对有限内存,将不用的对象清除,达到内存释放目的 GC机制递进理解: GC的区域在哪里, GC的对象是什么,GC的时机是什么?
阅读全文
posted @
2021-03-16 20:49
wangsong412
阅读(68)
推荐(0)
大数据JSON流解析(转)
摘要:大数据JSON流解析 背景 最近在做一个需求,需要每月从一个别的数据系统同步一次数据过来。数据量大概90W条左右,数据接口只提供了一个JSON接口,接口返回报文为JSON,并且没有任何分页。这个数据量如果直接使用普通方式解析的话,肯定内存溢出。 解决思路 我们要保证内存溢出,那么就不能把得的数据全部
阅读全文
posted @
2021-01-20 12:11
wangsong412
阅读(820)
推荐(0)
java8新特性-reduce
摘要:reduce是用来执行聚合操作的 reduce方法有三个override的方法: Optional<T> reduce(BinaryOperator<T> accumulator); T reduce(T identity, BinaryOperator<T> accumulator); <U> U
阅读全文
posted @
2020-12-02 21:26
wangsong412
阅读(1143)
推荐(0)
java8新特性-lambda匿名函数(转)
摘要:Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。 没有使用Lambda的老方法: button.addActionLis
阅读全文
posted @
2020-12-02 21:14
wangsong412
阅读(844)
推荐(0)
4种JSON技术对比
摘要:json-lib(net.sf) 早期json产品, 依赖jar包较多,针对复杂类型转换,json 到 bean过程有缺陷, 比如一个类里出现另一个类的list 或map,转换就会出现问题,另外性能较差,尤其在大数据量的parse上 jackson 依赖jar包较少,简单易用,性能相对较高 同样对于
阅读全文
posted @
2020-09-18 12:11
wangsong412
阅读(651)
推荐(0)
java注解相关汇总
摘要:@Data注解时生成的getter,setter方法在有些属性会有问题 现象: SpringMVC 会返回 cMc和cmc两个字段,即新增一个cmc字段,如果在bean里自定义getcMc() 和 setcMc()方法,则仅返回cMc字段 eg:private String cMc; @DaTa时:
阅读全文
posted @
2020-08-25 14:53
wangsong412
阅读(126)
推荐(0)
Java-int 中加下划线
摘要:java1.7 新规范, 可以在数值内加下划线,以增强可读性 1. 不能在数值的前和后加下划线 2. 不能在小数点前后加下划线 3. 不能在多个连续非数值数字间加下划线(避免在非数值数字前后加下划线) float pi1 = 3_.1415F; // 无效的; 不能在小数点之前有下划线 float
阅读全文
posted @
2020-05-14 14:31
wangsong412
阅读(2304)
推荐(0)
List removeAll详解
摘要:list.removeAll 会随着数量的增加,性能变得很差,原因为: list.contains 需要进行两次遍历 private boolean batchRemove(Collection<?> c, boolean complement) { final Object[] elementDa
阅读全文
posted @
2020-04-13 20:30
wangsong412
阅读(3440)
推荐(0)
java-本地缓存实现
摘要:Java-ConcurrentHashMap实现缓存,(缓存数量,过期时间,过期缓存清理) public class ConcurrentHashMapCacheUtils { private static Logger LOGGER = LoggerFactory.getLogger(Concur
阅读全文
posted @
2020-04-10 15:58
wangsong412
阅读(1580)
推荐(0)
各种Map的比较
摘要:HashMap LinkedHashMap ConcurrentHashMap SynchronizedMap ConcurrentLinkedHashMap 比较 HashMap 线程不安全,无序HashMap implement Map非线程安全: 同时修改key值,会覆盖; map扩容,值转移
阅读全文
posted @
2020-04-09 17:45
wangsong412
阅读(747)
推荐(0)
HashMap死循环问题分析(转)
摘要:之前参加阿里的性能挑战大赛,需要使用缓存,我就采用了HashMap对数据进行缓存,可运行了一段时间电脑爆卡,我查了一下,可能是死循环问题,就用 jstack dump 了当时的线程快照,发现这次死循环问题的起源是 HashMap 的 get()方法。今天总结一下。 这次事故的原因是因为开发时没有注意
阅读全文
posted @
2020-04-07 20:34
wangsong412
阅读(734)
推荐(0)
关于spring配置文件xml文档的schema约束
摘要:1. 配置文件示例 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchem
阅读全文
posted @
2020-03-25 15:18
wangsong412
阅读(557)
推荐(0)
spring事务管理&transactional实战
摘要:spring framework对事务管理提供了一致的抽象-为不同的事务API提供了一致的编程模型-支持声明式事务,特别是基于注解的声明式事务管理,简单易用-提供其他事务API更简单的事务管理API-与spring数据访问完美集成 事务管理支持编程式事务管理和声明式事务管理编程式事务管理你使用tra
阅读全文
posted @
2020-03-24 17:52
wangsong412
阅读(261)
推荐(0)
mybatis执行insert返回主键
摘要:第一种方式(推介): <!-- 所有数据库通用,插入成功返回最近一次插入的id它会将id直接赋值到对应的实体当中TStudent stu = new TStudent(); studentMapper.add(TStudent ); int pk = stu.getId(); // 这就是我们的主键
阅读全文
posted @
2020-01-21 15:21
wangsong412
阅读(312)
推荐(0)
java垃圾回收-G1
摘要:为什么分代算法: 90%对象熬不过第一次回收;而老对象有98%的概率会一直存活下来 分代好处:把复杂的大问题,分成两类不同的小问题,针对不同的小问题,针对性的分而治之--年轻代,对象来去频繁,执行时间一定要短、效率要高,采用标记-整理、copy算法,以空间换时间, 默认比例:8:1--老年代,对象不
阅读全文
posted @
2020-01-13 20:30
wangsong412
阅读(312)
推荐(0)
Random伪随机
摘要:Random生成的随机数都是伪随机数,有一定的规律。 1. 不带种子参数 系统默认指定参数(成员变量为static类型,通过compareAndSet, 实现不同Random, 种子不一样,更具有随机性): 其中System.nanoTime() 是与系统时间无关的纳米维度时间,和CPU和线程有关
阅读全文
posted @
2019-11-25 11:06
wangsong412
阅读(1577)
推荐(0)
抽象类&接口
摘要:抽象类和抽象接口 抽象类是把相同的但不确定的东西提取出来,并要求在其子类中实现中 (例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。) 用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽
阅读全文
posted @
2019-11-13 22:04
wangsong412
阅读(164)
推荐(0)