Debian安装Redis Linux发行版:Debian 11 安装过程在Redis官网[https://redis.io/docs/getting-started/]有详...
Debian安装Redis Linux发行版:Debian 11 安装过程在Redis官网[https://redis.io/docs/getting-started/]有详...
Debian安装MySQL Linux发行版:Debian 11 MySQL官网下载deb文件[https://dev.mysql.com/downloads/repo/ap...
Debian安装Oracle JDK8 Oracle官网下载jdk8的tar包(命令行模式jdk8已无法安装) 解压tar包至/usr/lib/java路径,tar -zxv...
username is not in the sudoers file 引发的,无法执行sudo命令问题 Linux发行版:Debian 11 执行sudo命令报错,user...
1. JCL JCL,Apache Commons Logging,它提供了统一的日志接口,实现了对其他日志工具的抽象,便于开发者在不同的日志工具间切换。 JCL支持的实现有...
1. JUL JUL,java.util.logging,JDK自带的日志框架。 使用样例, 执行过程, 初始化LogManagerLogManager加载logging.p...
并发工具-JUC线程安全集合类 遗留的线程安全集合,如HashTable(map实现),Vector(list实现),出现在早期,方法都用synchronized修饰 使用C...
ThreadLocal ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问时,能保证各个线程的变量相对独立。ThreadLocal实例通常都是pr...
并发工具-JUC中的并发 Lock Semaphore CountdownLatch CyclicBarrier 1. AQS原理 AQS,AbstractQueuedSyn...
并发工具-线程池 1. 自定义线程池 为什么要用线程池?线程池是池化技术的典型场景,线程池的优点主要有:1.复用线程,降低了资源消耗;2.提高响应速度;3.提供了管理线程数和...
不可变类 不可变(immutable)类,指这个类被创建后,就不能改变成员变量值,它是线程安全的。 不可变类的使用 不可变类的设计 无状态类的设计 问题:SimpleDate...
共享模型之无锁 使用乐观锁的方式实现并发 CAS与volatile 原子整数 原子引用 原子累加器 Unsafe 1. 无锁实现取款的并发 AtomicInteger内部并没...
线程状态转换 调用start()方法 wait()/notify()/notifyAll() join() park()/unpark() wait(long time)/n...
共享模型之内存 Java内存模型(Java Memory Model,JMM),它定义了主存(共享数据)和工作内存(私有数据)的抽象概念,底层对应着CPU寄存器、缓存、硬件内...
学习的视频地址见01。 共享问题 synchronized 线程安全分析 Monitor wait/notify 线程状态转换 活跃性 Lock 1. 共享问题 输出 自增和...
学习视频地址见01。 常见方法 start(),启动新线程,在新的线程中运行run方法中的代码 run() join(),join(long n),等待线程运行结束 getS...
学习JUC的相关内容,学习的视频来自B站BV16J411h7Rd。 1. 进程与线程 进程是资源分配的最小单位,java中,线程是作为最小的调度单位。 2. 多线程 实现多线...
推荐阿里开源调优工具Arthas[https://arthas.aliyun.com/] 调优的真正目的时减少GC带来的STW(stop the world,全局暂停),尤其...
1. 算法 判断一个对象是否存活,有两种算法,引用计数法和可达性分析算法 。 1.1 引用计数法 给每一个对象设置一个引用计数器,当一个地方引用该对象时,计数器加1,引用失效...
对JVM的简单学习,文章里的图片来自B站的一个视频,具体视频地址给忘记了hhhh 可以使用命令javap -c SOURCE.class > TARGET对字节码文件进行反编...