摘要:
最小栈 Deque<Integer> stack1; Deque<Integer> stack2; public void pop() { //这里如果用==比较是比较两个Integer对象的地址,Integer能缓存(-128,127)这个范围的值,用==比较这个范围的值会返回true,超过这个范 阅读全文
摘要:
数组: 6 1 2 7 9 3 4 5 10 8 以6为基准数 先从右边开始扫描,到5退出循环 再从左边开始扫描,到7退出循环 交换5和7: 6 1 2 5 9 3 4 7 10 8 继续从7开始向右边扫描,到4退出循环 再从5开始向左边扫描,到9退出循环 交换4和9: 6 1 2 5 4 3 9 阅读全文
摘要:
04. 二维数组中的查找 最左下角开始找,一个数右边的数比当前数大,上边的数比当前数小,目标数比当前数大上移,比当前数小就右移 [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 阅读全文
摘要:
只出现一次的数字 使用异或,因为两个相同的数异或结果为0,Java中的异或:^ 环形链表 使用快慢指针,因为有环的话快指针一定会追上慢指针 public boolean hasCycle(ListNode head) { if (head == null || head.next == null) 阅读全文
摘要:
HTTP 是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我),就必须主动的去 阅读全文
摘要:
//获取注解对象 public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { return super.getAnnotation(annotationClass); } public <T extends An 阅读全文
摘要:
Spring监听器机制: 产生Spring事件的时候会默认使用SimpleApplicationEventMulticaster的multicastEvent来广播事件,遍历所有监听器:并使用监听器中的onApplicationEvent方法来进行事件的处理 广播事件:把一个事件发送给所有的监听器, 阅读全文
摘要:
SpringBoot应用启动运行run方法,然后一直来到这个Run方法 public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start 阅读全文
摘要:
第一章 减少上下文切换: 无锁并发编程,CAS,使用最少线程,协程 避免死锁: 避免一个线程同时获取多个锁,避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源,尝试使用定时锁,数据库锁加锁和解锁要在一个数据库连接里不然的话会解锁失败 第二章 volatile: 0x01a3de24:l 阅读全文
摘要:
SpringBoot中的自动配置类有很多ConditionalOnClass注解,@ConditionalOnClass 在注解值中所有的类都存在时(通过尝试使用类加载器加载指定的类的方式判断)才会匹配, 那这些ConditionalOnClass注解的原理是什么呢,了解ConditionalOnC 阅读全文