- 博客(11)
- 资源 (6)
- 问答 (10)
- 收藏
- 关注
原创 【java】JUC中几个辅助类
CountDownLatch适用场景: 一个线程需要等待其他多个线程执行完以后才执行 CountDownLatch latch = new CountDownLatch(2); Runnable r = ()->{ System.out.println(Thread.currentThread().getId()+":exe task...");...
2018-04-07 12:21:57
614
原创 【JAVA】死锁检测
Object lock = new Object(); Object lock2 = new Object(); Runnable r = ()->{ synchronized (lock){ System.out.println(Thread.currentThread().getId...
2018-03-19 21:53:22
584
原创 【JAVA】对JDK动态代理的一点补充
public interface IFuck { void fuck();}public interface IFuck2 { void fuck2();}public class MyFuck implements IFuck,IFuck2{ @Override public void fuck2() { // TODO A...
2018-03-08 16:16:06
274
原创 java中的泛型擦除
众所周知,java中泛型是 “编译时擦除” 的,但并不总是会被擦出。例如spring4中的泛型依赖注入就是通过动态获取泛型参数,对依赖进行匹配的。Class类 对泛型参数的获取提供了两个API return method desc Type getGenericSuperclass 获取直接父类的(带泛型参数)的类型 Type[] getG...
2018-03-05 16:00:05
356
原创 【娱乐】使用ForkJoin实现快速排序/二分查找
快排package p18.juc;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.RecursiveAction;public class ForkJoinDemo { class FKQS extends RecursiveAction{ int [] ar...
2018-02-16 09:31:03
1074
原创 【JAVA】实现线程轮替执行
需求A\B\C三个线程轮执行3次,A退出,之后BC轮替执行2次,B退出,C执行2次退出,整个过程A执行3次,B执行5次,C执行7次执行效果A第1次执行 B第1次执行 C第1次执行 A第2次执行 B第2次执行 C第2次执行 A第3次执行 ==>A次数达到,退出 B第3次执行 C第3次执行 B第4次执行 C第4次执行 B第5次执行 ==>B次数达到,退...
2018-02-13 06:07:26
466
原创 【JAVA】简单实现一个阻塞任务队列
package p18.juc;import java.util.Queue;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch;import java.util.concurrent.locks.Condition;import java.util.c...
2018-02-12 07:20:57
3056
原创 【JAVA】NIO总结
Socket/ServerSocket一次性连接 socket 用完在两端close 即可长连接 socket端 发送:在每次write到OutputStream时,使用flush();接收:用一个线程专门监听socket对象的inputStream,如果available>0,则读取里面的数据ServerSocket端 接收: 用一个(或多个)线程监听已连接的sock...
2018-02-09 00:47:09
234
原创 【java】关于为什么局部内部类/匿名内部类只能访问final修饰的局部变量
public class AAa{ public void fun(){ int i =123; Object obj = new Object(); // i++; class LocalClass{ public void localFun() { Sy
2018-01-27 15:33:18
3641
1
原创 【?】使用位运算符实现自然数转二进制
public static String toBinary(int num) { LinkedList binary = new LinkedList<>(); if(num>=0) { while(num>1) { int remainder = num&1; num=num>>1; binary.addFirst((char)(remainder+48))
2018-01-26 12:08:31
427
原创 【?】位运算符
/* 注:以下出现的abc都按16位计算二进制 & 与 对应位都为1才为1,否则为0 例: a =00000000 10001101 =141 b =00000000 00111000 =56 a&b =00000000 00001000 =8 | 或
2018-01-25 19:08:57
196
js实现的音乐播放器插件
2018-01-26
idea如何添加tomcat库?
2018-02-26
【java】关于web文件上传commons-fileupload的问题
2018-02-24
调用rt.jar的类出现访问限制是怎么回事
2018-02-22
junit4 是不是有bug???
2018-02-08
JAVA中Socket对象如何重用多次?
2018-02-03
JAVA 中InputStream的问题
2018-02-03
关于JAVA 多线程 与 反射的问题
2018-02-02
Java 接口中定义抽象方法有什么意义
2018-01-26
Java中 非泛型类 定义泛型方法有什么用?
2018-01-20
Java中关于 Arrays.asList() 的问题
2018-01-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人