240 发简信
  • 120
    类加载器

    自低向上检查该类是否已经加载 自顶向下进行实际查找和加载 这里用双亲委派,主要出于安全来考虑,不会让随意的class加载进去 自定义的类加载器 ...

  • 120
    线程池

    ThreadPoolExecutor 当有任务进入线程池时,如果核心线程数没满,则创建去运行, 当核心线程数满了,会放入等待队列等待, 这时候,...

  • 120
    弱引用,软引用

    强引用,只要有引用指向一个对象,对象就不会被回收 软引用,一个对象只有一个软引用指向它,当系统内存不够用的时候,会回收软引用指向的对象,内存够用...

  • ThreadLocal

    ThreadLocal,线程之间隔绝。 输出: 上面代码,在一个线程中设置 tl.set(new Person()),在另一个线程中tl.get...

  • LockSupport

    示例用法: LockSupport.park() 对应一个LockSupport.unpark(),类似于一个计数 上面这样的话,线程就不会阻塞。

  • Object的wait(),notify()

    wait() 阻塞,释放锁 notify() 通知阻塞的那个线程到就绪状态,但不是让出锁给他,被唤醒的线程要运行必须得获得锁。 示例:

  • Semaphore

    示例用法:

  • Java 变量参数传入方法,修改后是否影响外面的值

    今天在公司做的一个订购成功后发送给用户的邮件时,见到了之前别人留下来的一个问题。类似于下面这样的代码: main函数中外部有一个persons对...

  • 经典生产者和消费者

    实现一个同步容器,有2个生产者线程,10个消费者线程。 这里是用了notifyAll();会存在一个问题,比如此时容器满了,消费者notifyA...