- 博客(18)
- 收藏
- 关注
原创 ConcurrentHashMap
1.8https://processon.com/view/60cc62685653bb3c31f06a22jdk 1.7中是基于segment数组然后通过ReentrantLock对每一个segment元素加锁,来保证每一个segment内线程操作的安全性,从而保证了所有线程的操作安全;其中:默认的segment数组长度是16,也就是说concurrenthashmap1.7默认的并发度是16;1.8中直接取消segment数组,采用和hashmap相同的结构 :Node数组+链表+红黑树;每
2021-11-21 11:26:24 598
原创 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 121
原创 jvm笔记:
JVM笔记:图片加载不出来就打开链接查看即可1.类加载过程多个java文件经过编译打包生成可运行的jar包,最终由命令运行某个主类的main函数启动程序,这里首先通过类加载器把主类加载到JVM。主类在运行过程中如果使用到其他类,会逐步加载这些类。需要注意的是:jar包里的类不是一次性全部加载的,是使用时才加载。类加载整个过程有如下几步,加载->验证->准备->解析->初始化->使用->卸载加载: 在硬盘上加载并通过IO读入字节码文件,使用到该类时才会加载,比如
2021-03-15 11:37:45 193
原创 计网笔记:
计网笔记:第一章:概述互联网发展的三个阶段第一阶段:从单个网络 ARPANET 向互联网发展的过程。 1983 年, TCP/IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP/IP 协议的计算机都能利用互连网相互通信。人们把 1983 年作为互联网的诞生时间。1990年,ARPANET 正式宣布关闭。第二阶段:建成了三级结构的互联网。 它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。第三阶段:逐渐形成了多层次 ISP 结构的互联网。 出现了互联网服务
2021-03-04 21:11:16 536 3
原创 Condition源码分析
Condition主要方法:await():把当前线程阻塞挂起signal():唤醒阻塞的线程await()void await() throws InterruptedException;signal()void signalAll();类似地唤醒全部线程void signal();在AQS中的实现类为:public class ConditionObject implements Condition, java.io.SerializableConditionObject
2020-11-15 10:17:55 191
原创 本周学习的内容:
周报:本周学习的内容:复习知识点(类的创建方式、文件夹的复制、反射和注解,)刷题继续学习了Servlet重定向和转发的比较-----https://blog.csdn.net/kuaileky/article/details/85884553本周遇到的问题:在练习tomcat时,复制了一个类(当时不知道是这里出错),然后导致整个项目部署不了tomcat。后来发现是复制文件时虚拟路径没改。。。有时不知道下一个要学习的知识点,从而没安排好进度!、本周没有注重刷题,同时以后刷题也要注意复习
2020-09-20 18:53:57 239
原创 第十四周:
第十四周:代码:16.18Pattern Matchingpackage 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 112
原创 第十二周:
第十二周:代码:、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 110
原创 滑动窗口:
滑动窗口:框架:/* 滑动窗口算法框架 */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 134
原创 滑动窗口:
滑动窗口:框架:/* 滑动窗口算法框架 */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 217
原创 滑动窗口:
滑动窗口:/* 滑动窗口算法框架 */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 188
原创 第十一周:
第十一周:题解:leetcode:4public 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 123
原创 第十周
第十周代码:leetcode:48public 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 154
原创 第九周
第九周博弈论: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 122
原创 第八周:
第八周:代码:leetcode:154public 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 103
原创 分享20.4.26
分享分享动态规划学习种的一点感觉:首先,官方一点的概念:我们把要解决的一个大问题转换成若干个规模较小的同类型问题,当我们求解出这些小问题的答案,大问题便不攻自破。同时,在求解这些小问题的过程中,我们把需要重复计算的答案记录下来放在数组中,下次如果遇到同样的小问题需要计算,便直接查询出结果。这就是动态规划。其中重复的过程可以用一个状态转移方程来表示,所以最重要的是求状态转移方程。语雀里面有学长...
2020-04-26 16:24:55 139
原创 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,返回a2.mem...
2019-10-16 16:46:04 114
原创 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 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人