Java
文章平均质量分 59
「已注销」
爬坑ing...
展开
-
URLClassLoader
自定义目录标题package com.example.demo;import org.junit.Test;import java.io.*;import java.net.URL;import java.net.URLClassLoader;import java.nio.file.Paths;import java.util.*;import java.util.jar.JarEntry;import java.util.jar.JarFile;public class T原创 2020-05-14 00:21:14 · 177 阅读 · 5 评论 -
ConcurrentModificationException异常分析
什么是ConcurrentModificationException集合如ArrayList在迭代时进行修改则会报出ConcurrentModificationException异常如何实现首先看下modCount,这个值是在ArrayList创建的时候初始化为0,并且对集合进行更新操作(add,remove等)时不断递增,确保每次进行更新操作后modCount的值都是不一样的,下面是remove(原创 2016-11-15 21:26:33 · 219 阅读 · 0 评论 -
Java多线程: CAS
悲观锁与乐观锁悲观锁:悲观锁思想认为如果多个线程中使用共享资源,则它们肯定会同时进行修改从而引起冲突,悲观锁的解决方式是共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程。synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁:乐观锁思想认为如果多个线程使用共享资源,它们修改应该是有先后顺序的,不会同时进行修改,如果真的有冲突则后面修改失败。乐原创 2016-11-16 17:38:05 · 1426 阅读 · 0 评论 -
AtomicInteger源码分析
要解决什么问题最常需要解决的问题是i++ 这个语义在多线程中是不安全的。虽然从语法上看上去是一个操作,实际上分为了三步。取出i的值,i+1,将i+1的计算结果赋值给i。假设i的初始值为5,一种不安全的情况如下: - 1 2 3 4 5 6 线程1 i(5) i+1(6) i(6) 线程2 i(5) i+1(6)原创 2016-11-17 22:21:53 · 234 阅读 · 0 评论 -
String操作符 “+” 原理
public class StringOperator { public static void main(String[] args) { String a = "a"; String b = "b"; String ab = a+b; }}代码如上,很简单,使用javap -c 反编译看下。 本文使用的是JDK 1.8原创 2016-12-05 19:10:59 · 704 阅读 · 2 评论 -
[Java并发] ThreadLocal原理
ThreadLocal内部原理、内存泄漏分析、及弱引用Key的原因分析原创 2017-01-06 09:48:00 · 445 阅读 · 0 评论 -
【Java8】 行为化参数
### 需求 有一个苹果集合appleList ,筛选出红色的苹果 。苹果实体类如下public class Apple { private String color; private int weight; //getter and setter}解决方案一写一个过滤红色苹果的方法即可: public static List<Apple> filterRedAppl原创 2017-06-25 21:13:47 · 363 阅读 · 0 评论