04 2021 档案
摘要:LeetCode1011.https://leetcode-cn.com/problems/capacity-to-ship-packages-within-d-days/ 暴力解法: 复杂写法,一次一次尝试,超时!!! // // 超时 // class Solution { // int[] s
阅读全文
摘要:思路: 刚开始理解错了题目:以为求每一层的节点个数,然后求最大值。 于是有了:所有层中的最大节点数(声明了一个class包含了每个节点的层数,然后用Deque 模拟队列进行一次层次遍历,每次插入新的节点时,将父节点的layer+1赋值给子节点,然后将当前层的节点数+1,这里用了一个数组layers记
阅读全文
摘要:final 和 String public static void main(String[] args) { String a1 = "a"; String a2 = "b"; // 非final串相加,指向堆中new的对象 String a3 = a1+a2; String a4 = "ab";
阅读全文
摘要:选择题 算法题 1.括号匹配问题: 给定字符串s,s只包含 '[' '{' '(' ')' '}' ']' 六种字符 判断s的是否合法。 类似这种 s="[{]}"不合法 思路:遇到左括号入栈,遇到右括号则出栈, 判断出栈的左括号,与当前的右括号是否匹配? 匹配则继续直到结束,字符串遍历完了就返回t
阅读全文
摘要:Semaphore 相当于一个信号灯,对自己创建的线程或者线程池创建的线程进行限流的作用。 需要手动acquire() 和 release() 使得同时进行的thread的数量保证在一定的范围内(Semaphore创建对象的初始大小) ThreadPool 创建线程,已经线程的复用。 控制线程的总量
阅读全文
摘要:概念和意义 尝试获取锁的线程不会立即阻塞(no wait),而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环消耗cpu unsafe中的源码 //unsafe.getAndAddInt putlic final int getAndAddInt(Object var1
阅读全文
摘要:ReentrantLock和synchronized默认都是非公平锁 顾名思义: 公平锁就是根据先来后到的顺序,给予申请的线程权力,不能插队 非公平锁就是不完全按照申请锁的顺序,给予每个线程相同的对待。 根据线程的优先级安排情况,也就是会出现插队现象 公平锁:ReentrantLock(true)
阅读全文
摘要:ReentrantLock和synchronized都是可重入锁 通俗来说就是拿着外层的锁,可以进入内部拥有相同锁的其他代码块。 可以拿多把锁,但是必须都解锁才能完全解开。 递归性质的上锁开锁,因此也叫递归锁。
阅读全文
摘要:读写锁 ReentrantReadWriteLock 读,可多线程读 写,只允许一个写 读读共存 读写不共存 写写不共存 写操作:原子+独占,整个过程必须是一个完整的统一体,中间不需被分割打断 // 资源类 class Mycache{ // 缓存的一般加volatile private volat
阅读全文
摘要:CountDownLatch 每次当线程调用countDownLatch.countDown()方法时,会对计数器减1,减到0,countDownLatch.await()放行 public class CountDownLatchTest { public static void main(Str
阅读全文
摘要:String的两种创建方式: 1.String s1 = "abc" 首先去常量池找"abc",如果不存在,就在常量池创建"abc",然后在栈中开辟s1,存放"abc"的内存地址 2.String s2=new String("abc") 首先去常量池找"abc",如果不存在,就创建"abc",然后
阅读全文
摘要:/** * 生产者(Productor)将产品交给店员(Clerk),消费者(Customer)从店员取走产品 * 店员只能持有固定的数目产品(例如:20) * 如果店员的产品满了,会通知生产者停一下。 * 如果店员的产品没了,会通知消费者等一下。 * 是多线程问题,多个消费者,多个生产者,共享数据
阅读全文
摘要:一、程序进程和线程 程序:一段静态的代码。由某种计算机语言编写,为完成特定的任务 进程:运行中的程序,或者程序的一次运行。完成内存分配任务 线程:进程中的一个执行路径。cpu调度最小单位 二、创建方式 1.继承Thread类,重写run方法,调用对象的start方法 2.实现Runnable接口,实
阅读全文
摘要:@Autowired 注释static 变量会失败。 应该注释set方式,在set方法里赋值才能成功。
阅读全文
摘要:1.开通防火墙端口 https://blog.csdn.net/yw_1207/article/details/90746899 或者关闭防火墙: 2.注释配置文件中的bind=127.0.0.1(默认) 3.将protected-mode yes 改为 no
阅读全文

浙公网安备 33010602011771号