Java
zhihuirensheng123
这个作者很懒,什么都没留下…
展开
-
java 动态代理
涉及到两个类 InvocationHandler Proxy动态代理有以下特点: 1.代理对象,不需要实现接口 2.代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象(需要我们指定创建代理对象/目标对象实现的接口的类型) 3.动态代理也叫做:JDK代理,接口代理 public interface IUserDao { void save(); } 实现这个接口 ...原创 2018-07-31 10:47:56 · 139 阅读 · 0 评论 -
Java:第一章 Shiro简介——《跟我学Shiro》
张开涛 博客地址 :https://jinnianshilongnian.iteye.com/blog/2049092 前言 关于java项目的权限管理,我看到很多人在推荐使用shiro,似乎这个是当前比较流行的一个框架,所以在项目里面引入了shiro,用起来一波三折,特此记录一些学习的笔记。下面是找到的似乎是网上最热门的一个介绍帖–事实上官网讲的,个人感觉不是太清楚–加入一些心得和笔记。 ...转载 2019-05-30 10:08:15 · 220 阅读 · 0 评论 -
Map 工具类
map 工具类 key 是否存在 /** * * key是否存在 * @param map * @param key * @param <K> * @param <V> * @return */ public static <K, V> Boolean isExist...原创 2018-09-13 11:35:58 · 652 阅读 · 0 评论 -
ava Map 按Key排序和按Value排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value)。 1、按键排序 jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator) 传入我们自定义的比较器即可实现按键...转载 2018-09-12 20:53:20 · 140 阅读 · 0 评论 -
BigDecimal 结果保存百分比
public static void main(String[] args) { BigDecimal a = new BigDecimal(10); BigDecimal b = new BigDecimal(3); BigDecimal divide = a.divide(b, 2, BigDecimal.ROUND_HALF_UP); System.out....原创 2018-09-12 15:48:17 · 6710 阅读 · 0 评论 -
java finalize方法总结、GC执行finalize的过程
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的finalize的调用具有不确定性 不建议用finalize方法完成...转载 2018-08-15 19:52:53 · 152 阅读 · 0 评论 -
Java中的正则表达式(详细)
转载说明:此文中正则表达式中所有的正斜杠/均为反斜杠\) 首先介绍下正则表达式: 1.字符 x 字符 x。例如a表示字符a \\ 反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次) \0n 带有八进制值 0的字符 ...转载 2018-08-06 16:48:44 · 409 阅读 · 0 评论 -
集合去重,并保持原来的顺序
在工作中需要对一个集合去重,但是要保留之前的数据,当时想到了 new LinkedHashSet<>(tasks); 很方便的就解决了; LinkedHashSet<Task> newTasks1 = new LinkedHashSet<>(tasks); 但是高兴的太早了,如果存在继承关系,如果只有继承类中的属性不一样,其他的都是一样,这样做任然会丢失...原创 2018-07-31 16:32:07 · 2721 阅读 · 0 评论