摘要: 我们需要的类不一定存放在已经设置好的classPath下(有系统类加载器AppClassLoader加载的路径),对于自定义路径中的class类文件的加载,我们需要自己的ClassLoader 有时我们不一定是从类文件中读取类,可能是从网络的输入流中读取类,这就需要做一些加密和解密操作,这就需要自己 阅读全文
posted @ 2020-05-09 11:32 ShangyiChen 阅读(1227) 评论(0) 推荐(0) 编辑
摘要: Synchronized的四种锁状态:无锁状态,偏向锁,轻量级锁,重量级锁 轻量级级锁的实现原理 轻量级锁的使用场景:如果一个对象虽然有多线程访问,但多线程访问的时间是错开的,也就是说没有竞争,那么完全可以用轻量级锁来优化 假设有两个方法同步块,利用同一个对象加锁 static final Obje 阅读全文
posted @ 2020-04-16 14:23 ShangyiChen 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 会抛出IllegalThreadStateException() 示例代码如下: public class Main{ public static void main(String[] args){ Thread t1 = new Thread(()->{System.out.println("th 阅读全文
posted @ 2020-04-15 21:41 ShangyiChen 阅读(1209) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-03-29 17:08 ShangyiChen 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 乐观锁和悲观锁 悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 阅读全文
posted @ 2020-03-15 20:20 ShangyiChen 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 转载于:https://blog.csdn.net/z69183787/article/details/76208998 在 SPRING 中一共定义了六种事务传播属性 PROPAGATION_REQUIRED 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATIO 阅读全文
posted @ 2020-02-26 21:56 ShangyiChen 阅读(1647) 评论(0) 推荐(0) 编辑
摘要: Leetcode上原题如下: 第一种思路:哈希表 建立两个字符串中字母的映射。由于题目要求两个字符不能映射到同一个字符上,因此,建立两个哈希表,前一个哈希表的键值对和后一个哈希表的键值对刚好相反。 第二种思路:查找索引 阅读全文
posted @ 2019-11-30 11:14 ShangyiChen 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 利用java.io包里的File类,可以实现对文件的操作。 现在有个需求,要求遍历一个文件夹及其子文件夹里的所有文件,并且过滤出txt格式的文件,该如何做呢? 实现方法很简单,首先是通过递归遍历文件,然后对获得的文件,判断其是不是以"txt"结尾就可以了。 代码如下: 1 public static 阅读全文
posted @ 2019-11-06 18:48 ShangyiChen 阅读(173) 评论(0) 推荐(0) 编辑
摘要: Collection是一个接口(Interface),Collections是一个类 注意:Collections并没有实现Collection接口 Collections Collections不能被实例化,它是集合类(ArrayList,HashSet等)的一个工具类。这是因为Collectio 阅读全文
posted @ 2019-11-01 21:11 ShangyiChen 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 对对象的排序,可以通过以下两种方法: Comparable接口 此接口只有一个方法 其中,T是泛型,需要指定具体的对象类型 接口中通过 x.compareTo(y)来比较x和y的大小 x<y,返回负数; x=y,返回0; x>y,返回正数; 如果obj为null,则会抛出空指针异常 实现Compar 阅读全文
posted @ 2019-10-31 19:49 ShangyiChen 阅读(3888) 评论(1) 推荐(1) 编辑