- 博客(18)
- 收藏
- 关注
原创 ConcurrentHashMap
1.8 https://processon.com/view/60cc62685653bb3c31f06a22 jdk 1.7中是基于segment数组然后通过ReentrantLock对每一个segment元素加锁,来保证每一个segment内线程操作的安全性,从而保证了所有线程的操作安全; 其中:默认的segment数组长度是16,也就是说concurrenthashmap1.7默认的并发度是16; 1.8中直接取消segment数组,采用和hashmap相同的结构 :Node数组+链表+红黑树;每
2021-11-21 11:26:24
610
原创 MVCC机制
MVCC机制 Mysql默认的隔离级别是RR 可重复读。但是在多并发的情况下,如何保证每次查询到的数据都是满足RR的隔离级别嘞? 比如,下面这个情况下: 其中表结构为: mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; insert into t(id, k) values(1,1),(2,2); 首先阐
2021-10-10 15:06:16
132
原创 jvm笔记:
JVM笔记: 图片加载不出来就打开链接查看即可 1.类加载过程 多个java文件经过编译打包生成可运行的jar包,最终由命令运行某个主类的main函数启动程序,这里首先通过类加载器把主类加载到JVM。主类在运行过程中如果使用到其他类,会逐步加载这些类。需要注意的是:jar包里的类不是一次性全部加载的,是使用时才加载。 类加载整个过程有如下几步, 加载->验证->准备->解析->初始化->使用->卸载 加载: 在硬盘上加载并通过IO读入字节码文件,使用到该类时才会加载,比如
2021-03-15 11:37:45
205
原创 计网笔记:
计网笔记: 第一章:概述 互联网发展的三个阶段 第一阶段:从单个网络 ARPANET 向互联网发展的过程。 1983 年, TCP/IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP/IP 协议的计算机都能利用互连网相互通信。 人们把 1983 年作为互联网的诞生时间。 1990年,ARPANET 正式宣布关闭。 第二阶段:建成了三级结构的互联网。 它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。 第三阶段:逐渐形成了多层次 ISP 结构的互联网。 出现了互联网服务
2021-03-04 21:11:16
563
3
原创 Condition源码分析
Condition 主要方法: await():把当前线程阻塞挂起 signal():唤醒阻塞的线程 await() void await() throws InterruptedException; signal() void signalAll();类似地唤醒全部线程 void signal(); 在AQS中的实现类为: public class ConditionObject implements Condition, java.io.Serializable ConditionObject
2020-11-15 10:17:55
204
原创 本周学习的内容:
周报: 本周学习的内容: 复习知识点(类的创建方式、文件夹的复制、反射和注解,) 刷题 继续学习了Servlet 重定向和转发的比较-----https://blog.youkuaiyun.com/kuaileky/article/details/85884553 本周遇到的问题: 在练习tomcat时,复制了一个类(当时不知道是这里出错),然后导致整个项目部署不了tomcat。后来发现是复制文件时虚拟路径没改。。。 有时不知道下一个要学习的知识点,从而没安排好进度!、 本周没有注重刷题,同时以后刷题也要注意复习
2020-09-20 18:53:57
256
原创 第十四周:
第十四周: 代码: 16.18Pattern Matching package cn.kobe; public class Solution { /* * 都是暴力搜索啊。。。 * */ public boolean patternMatching(String pattern, String value) { //特殊情况 if(pattern.equals("a")||pattern.equals("b")){ r
2020-06-28 20:35:51
121
原创 第十二周:
第十二周: 代码:、 leetcode:1014 /* * 读题就知道显然是dp * 首先定义一个性价比是A[i]-i * 定义dp[i]是到i时前面最大的性价比 * * 注意题目里的i和j有顺序要求,不然就会做错。。 * */ /* 然后本题 关系是只与上一项有关,可以空间优化 * */ public static int maxScoreSightseeingPair(int[] A) { int len =
2020-06-21 20:08:38
117
原创 滑动窗口:
滑动窗口: 框架: /* 滑动窗口算法框架 */ void slidingWindow(string s, string t) { //自己创建两个有映射关系的数组 //HashMap<Character,Integer> needs = new HashMap<>(); //HashMap<Character,Integer> windows = new HashMap<>(); //可以选择性讲s和t转换成字符串 //,会
2020-06-14 19:46:10
143
原创 滑动窗口:
滑动窗口: 框架: /* 滑动窗口算法框架 */ void slidingWindow(string s, string t) { //自己创建两个有映射关系的数组 //HashMap<Character,Integer> needs = new HashMap<>(); //HashMap<Character,Integer> windows = new HashMap<>(); //可以选择性讲s和t转换成字符串 //,会
2020-06-14 12:35:44
226
原创 滑动窗口:
滑动窗口: /* 滑动窗口算法框架 */ void slidingWindow(string s, string t) { //自己创建两个有映射关系的数组 //HashMap<Character,Integer> needs = new HashMap<>(); //HashMap<Character,Integer> windows = new HashMap<>(); //可以选择性讲s和t转换成字符串 //,会方便一些
2020-06-14 12:31:14
198
原创 第十一周:
第十一周: 题解: leetcode:4 public double findMedianSortedArrays(int[] nums1, int[] nums2) { //我们规定第一个数组的长度较小! if(nums1.length>nums2.length){ return findMedianSortedArrays(nums2,nums1); } int m=nums1.length,n=nums2.l
2020-06-14 11:33:37
131
原创 第十周
第十周 代码: leetcode:48 public class Solution { /* * 旋转两次,一次对折,一次对角线对折 * */ public void rotate(int[][] matrix) { int len=matrix.length; //上下对折 for (int i = 0; i < len/2; i++) { int[] temp=matrix[i];
2020-06-07 21:19:35
163
原创 第九周
第九周 博弈论: leetcode:1025: public class Solution { public boolean divisorGame(int N) { //博弈论,最终是偶数的话就会赢 return (N&1)==0; } } leetcode:319: public class Solution2 { public static int bulbSwitch(int n) { //最后发现规律:结果为开根号
2020-05-31 17:14:59
129
原创 第八周:
第八周: 代码: leetcode:154 public static int findMin(int[] nums) { int left=0; int right=nums.length-1; while(left<right){//规律:最右边<最左边 int mid=(left+right)/2; if(nums[mid]>nums[right]){//在小的部分
2020-05-24 21:43:11
112
原创 分享20.4.26
分享 分享动态规划学习种的一点感觉: 首先,官方一点的概念:我们把要解决的一个大问题转换成若干个规模较小的同类型问题,当我们求解出这些小问题的答案,大问题便不攻自破。同时,在求解这些小问题的过程中,我们把需要重复计算的答案记录下来放在数组中,下次如果遇到同样的小问题需要计算,便直接查询出结果。这就是动态规划。 其中重复的过程可以用一个状态转移方程来表示,所以最重要的是求状态转移方程。语雀里面有学长...
2020-04-26 16:24:55
148
原创 10
String notes 字符串 定义: char a[10]; 初始化:char a[n]={‘a’,‘b’,‘c’,‘d’};//n只要不越界就行 或者:直接用"" a[20]=“i love China!”; String 函数: 头文件:#include<string.h> 几个函数: 函数 描述 1.memcpy() 把后b前n个给a,返回a 2.mem...
2019-10-16 16:46:04
122
原创 note
0 +***123*** 帮助 Ctrl + / 同步文档 Ctrl + S 创建文档 Ctrl + Alt + N 最大化编辑器 Ctrl + Enter 预览文档 Ctrl + Alt + Enter 文档管理 Ctrl + O 系统菜单 Ctrl + M 加粗 Ctrl + B 插入图片 Ctrl + G 插入链接 Ctrl + L ...
2019-10-05 23:22:01
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人