- 博客(16)
- 收藏
- 关注
原创 synchronized锁
参考于黑马的视频和文档对象头格式重量级锁Thread2进入到临界区中的时候,会把object的对象头中的MarkWord设置为指向Monitor对象的指针开始的时候Monitor的owner为nullThread2执行到临界区的时候,就会会把Monitor的owner设置为Thread2,Monitor只能有一个ownerThread2上锁的过程中,如果Thread2和Thread3也进入到临界区执行,就会进入EntryList中阻塞(BLOCKING)注意:轻量级锁的时候,obj
2021-10-11 19:17:52
210
原创 把sychronized改为volatile为什么会线程不安全?
参考:https://www.cnblogs.com/gaojunguangblog/p/4949114.html因为这个地方的 i++ 不是原子操作,所以volatile没用用sychronizedpublic class synchronizedTest implements Runnable{ //共享资源(临界资源) static int i=0; /** * synchronized 修饰实例方法 */ public synchroniz
2021-09-14 18:39:51
101
原创 Java可重入锁
java的可重入锁用在哪些场合? - 知乎用户的回答 - 知乎https://www.zhihu.com/question/23284564/answer/1709892488茅塞顿开,总有人说“获取一个锁之后可以再次获取”,一直想不通,看到这句话突然想通,如果有两个不同的方法用到同一个锁,其中方法A里面又调用了方法B,那就不会死锁了“可重入锁” 指的是自己可以再次获取自己的内部锁。比如一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁的时候还是可以获取的,如果不可
2021-09-14 18:00:24
98
原创 JAVA内存模型学习
为什么要重排序https://blog.youkuaiyun.com/weixin_34037977/article/details/88024601深入理解JMMhttps://www.infoq.cn/profile/1C70A577591245/publish/all
2021-09-13 23:30:55
127
原创 JVM部分知识
JVM内存结构方法区和堆:线程共享Java栈,本地方法栈,程序计数器:线程隔离https://blog.youkuaiyun.com/weixin_42762133/article/details/95735737
2021-09-12 20:15:29
87
原创 ArrayList在for循环中为什么不能使用remove?
参考:https://www.cnblogs.com/leizzige/p/14685275.htmlArrayList在for和foreach循环中使用remove会发生什么public class mytest { @Test public void t(){ List<String> list = new ArrayList<String>(); list.add("3"); list.add("3");
2021-09-03 00:51:00
451
原创 为什么重写equals的时候要重写hashCode方法
逼站:https://www.bilibili.com/video/BV11A411q7UK?from=search&seid=17733376642165343271博客:https://www.cnblogs.com/skywang12345/p/3324958.htmlopenJdk8是如何计算hashcode的:https://www.jianshu.com/p/be943b4958f4正常情况下,equals和hascode方法没什么联系,但是当我们使用Set假设Person类有n
2021-08-22 17:16:06
132
原创 java快速排序QuickSort
逼站链接:https://www.bilibili.com/video/BV1it41167v2感觉讲的比马士兵的好,马士兵后面debug奇奇怪怪的,不好理解,不好理解就算了,换人!下面的代码是跟着逼站的写的,自己加了很多注释,测试了几组数据,都没问题,复制粘贴就能跑package sort;public class QuickSort_b2 { public static void main(String[] args) { int[] arr = {4,6};
2021-08-19 21:45:07
98
原创 java归并排序MergeSort
package sort;//java中的归并排序是改进的归并排序 TimSort,小于分组的用二分插入排序binarySortpublic class merge { public static void main(String[] args) { int[] arr = {1,4,7,8,3,6,9}; print(arr); System.out.println(""); sort(arr,0,arr.length-1);
2021-08-19 21:37:33
183
原创 java泛型
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型擦除:Java 的泛型是伪泛型,这是因为 Java 在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型擦除 。具体参考:https://blog.youkuaiyun.com/mi_zhi_lu/article/details/90727006List<T>,无论T是stri
2021-08-19 21:01:55
89
原创 mysql事务的隔离级别
lost update:两个事务更新同一行,而最后提交的事务覆盖了先前所做的更改dirty read:事务A更新数据,不提交;事务B读到了事务A未提交的数据Non-repeating reads:在事务中相同的数据读两次,但得到了不同的结果phantom reads:事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据 称为幻读...
2021-08-18 21:51:10
69
原创 在阿里云从0开始部署vue+springboot项目
我很生气服务器被黑了,top ps命令被修改,top下面的进程基本都是0占用率,控制台看到的cpu是100,找不到原因,一开始我还以为是显示错了,后来仔细看,top查看到ni(nice cpu time)的百分比是100!!我百度了很久都找不到ni占有100的情况,最后谷歌搜到了国内的博客才发现是自己的命令被修改了,在被修改的前一分钟,被一个ip在上海的阿里云攻击入口,我服了!我好累,我睡觉了,今天起来继续弄redis端口真是万恶之源!这次redis要设置连接密码重装首先要停止服务器,然后初始化云盘
2021-08-15 01:06:16
240
原创 希尔排序理解
static void sort(int []arr){ for (int gap =arr.length/2; gap> 0 ; gap/=2) { for (int i = gap; i < arr.length; i++) { for (int j = i; j >= gap; j -= gap) { if (arr[j - gap] > arr[j]) {...
2021-08-09 14:32:02
85
原创 插入排序和冒泡排序的不同点
刚复习完插入排序和冒泡排序,感觉这两个好像是一样的,今天回头看代码,发现我代码都写错了,无语子,又重新看视频和其他人的博客理解了一下冒泡排序不太会判断循环条件 static void sort(int arr[]){ //冒泡排序每一轮下来,都会找到一个最大的数字往后移动 //所以arr.length-1 i--,每次少判断一个数,后面的已经排好了 for (int i = arr.length-1; i < 0; i--) {
2021-08-09 12:36:15
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人