240 发简信
IP属地:北京
  • adb push permission denied

    Android 手机上,将文件推到手机里,之前常命令为 adb push xxx.txt mnt/sdcard/, 但在android 11后,...

  • Resize,w 360,h 240
    线程池的基本用法

    1.为什么要用线程池在java中,开启线程的方式一般分为两种:a.继承Thread,实现其run方法b.实现Runnabler接口,通过Thre...

  • Resize,w 360,h 240
    synchronized原理

    1.作用synchronized是java提供的一种最基本的锁,可重入的非公平锁,主要用在多线程并发中,当要求某种操作在同一时间只能由一个线程处...

  • AQS的原理

    AQS: AbstractQueuedSynchronizer的简称,在jdk中,我们可以发现,这是一个抽象类,需要我们实现tryAcquire...

  • Resize,w 360,h 240
    CAS的原理

    1.什么是CASCAS: CompareAndSwap,是一种实现锁的机制。我们知道,在jdk 1.5之前,一般我们都会用synchronize...

  • Resize,w 360,h 240
    为什么wait和notify要和Synchronized一起使用

    1.正确的使用方式线程间进行相互协作时,不可避免的会用到wait和notify。如下例子: 结果: 上述代码可正常运行,但我们也发现了,在使用w...

  • volatile的代码验证

    volatile的作用,相信大家已经不陌生了,总体来说,有两个作用: 有序性:禁止代码重排序。这个在单例模式中用的比较多 可见性:多个线程访问同...

  • Resize,w 360,h 240
    LeakCanary浅析

    前提:LeakCanary 版本v2.4; Android 8.0LeakCanary相信很多开发者都用过,也是目前为止我看到的一款最简单方便的...

  • Resize,w 360,h 240
    AspectJ在Android中的使用

    一、AOP 全称“Aspect Oriented Programming”,面向切面编程,由于面向对象的思想要求高内聚,低耦合的风格,使模块代码...