自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。 1 智能提示 Intell...

2020-03-31 22:33:13

阅读数 1356

评论数 1

转载 IDEA设置eclipse一样的方法自动显示参数提示

https://blog.nancheung.com/archives/6102543 我的博客有更多更详细的操作。 相信很多小伙伴和我一样找了很久的IDEA上自动参数提示,然而每次敲了方法看着空空的括号都很无奈啊,我在装了汉化包之后,成功找到了设置的地方: File-Settings打开设置 ...

2020-03-31 21:37:37

阅读数 1362

评论数 0

原创 windows git push报错: ! [rejected] master -> master (non-fast-forward)

文章目录问题追踪解决 问题 最近用windows,git push总是有一个问题,嫌麻烦,毕竟是自己写东西玩,直接通过 git push -f ,今天又出现了,烦人~ ! [rejected] master -> master (non-fast-forward)...

2020-03-30 15:41:35

阅读数 1322

评论数 0

原创 Maven明明已经install成功,添加依赖:Failed to read artifact descriptor for com.leesin:rpc-server-api:jar:1.0-SNA

Failed to read artifact descriptor for com.leesin:rpc-server-api:jar:1.0-SNA 不要用默认的settings.xml

2020-03-30 10:13:20

阅读数 1107

评论数 0

原创 Cannot resolve symbol 'UnusedPrivateParameter'

protoc生成的序列化文件报错 Cannot resolve symbol 'UnusedPrivateParameter' Cannot resolve method 'internalBuildGeneratedFileFrom(java.lang.Strin...

2020-03-29 18:05:26

阅读数 862

评论数 0

原创 让你比别人聪明10倍的哈佛学习力课 你想要的学习力。

文章目录总结第1课:【反战毒鸡汤】破解三大谣言,帮你轻松拆解哈佛学习力!第2课:【时间管理】摆脱假勤奋,相同时间内效率可以更高!第3课:【统筹管理】向精英看齐,他们如何在纷乱中保持精进?第4课:【积极心理】做个“开放心态”的人,让目标离你更近一些!第5课:【心理博弈】变压力为动力,风雨浇不灭你的学...

2020-03-25 22:50:17

阅读数 1390

评论数 0

原创 ConcurrentHashMap扩容?lastRun到底是个啥?(普通链表)我真是个呆瓜!

文章目录问题一:第一个for循环什么意思?问题二:第二个for循环中为什么以lastRun作为结束标志?问题三:lastRun到底十个什么?为什么不用在第二个循环里放?我不放的话,在哪里把lastRun后面的放到低位链或者高位链?总结连接 这一小段看了两个小时!CHM看到如下这段代码给我干蒙了,...

2020-03-24 09:15:51

阅读数 1270

评论数 0

转载 并发编程——ConcurrentHashMap#transfer() 扩容逐行分析

前言 ConcurrentHashMap 是并发中的重中之重,也是最常用的数据结果,之前的文章中,我们介绍了 putVal 方法。并发编程之 ConcurrentHashMap(JDK 1.8) putVal 源码分析。其中分析了 initTable 方法和 putVal 方法,但也留下了一句话:...

2020-03-23 22:18:20

阅读数 1074

评论数 0

转载 java中的移位运算符总结

java中的移位运算符:<<,>>,>>>总结 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >>...

2020-03-23 15:53:29

阅读数 1109

评论数 0

转载 解决intellij idea卡顿的方法

使用idea越用越卡,即使是16G内存也是卡,多开几个微服务卡死了!! 解决方案 参考网路资源整理如下几条 1. 卸载不需要用的插件 我是Java开发,对于一些默认安装的什么安卓的google的app,前端的js框架 等插件可以卸载掉 项目中根本不用不到的一些框架,Struts,Hiberna...

2020-03-23 12:52:59

阅读数 1244

评论数 0

转载 使用ReentrantLock和Condition配合实现阻塞队列

今天学习了 ReentrantLock 和 Condition之后, 发现使用 ReentrantLock 和 Condition 配合使用实现线程间的相互通信比Object的wait和notify方法更灵活。写了一个小例子加深映象:_ package com.jack.jucstudy; im...

2020-03-23 07:39:07

阅读数 861

评论数 0

原创 Condition中的transferForSignal()方法的不解

Node p = enq(node); ··· if (ws > 0 || !compareAndSetWaitStatus(p, ws, Node.SIGNAL)) LockSupport.unpark(node.thread);// 唤醒节点上的线程 ...

2020-03-22 16:03:48

阅读数 778

评论数 0

转载 Java AbstractQueuedSynchronizer源码阅读3-cancelAcquire()

cancelAcquire()的作用 Cancels an ongoing attempt to acquire。 cancelAcquire()的使用场景 调用了cancelAcquire()的接口如下所示。调用了cancelAcquire()的所有接口这些接口的代码的代码结构类似,均是采取_...

2020-03-22 11:08:37

阅读数 816

评论数 0

原创 IDEA构建JDK源码阅读的环境以及遇到的问题

文章目录背景构建缺少com.sun.tools包缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager这两个类导致项目报错阅读源码的时候,点击进入方法关联到了jdk的源码上自身的源码上其他问题debug的时候,误点Alternative source ...

2020-03-21 16:47:33

阅读数 1420

评论数 0

原创 银行家算法

可利用资源向量(Available):系统还可以分配的资源 最大需求矩阵(Max):进程的最大资源需要 分配矩阵(Allocation):进程已经获得的资源 需求矩阵(Need):进程还需要获得的资源 P1、P2、P3、P4是四个贷款人 A、B、C是每个贷款人所需要贷款的项目 比如P1需要A项目...

2020-03-21 07:54:18

阅读数 1126

评论数 0

原创 IDEA中通过hsdis查看Java代码的汇编指令

下载文件 hsdis-amd64.dll 、hsdis-amd64.lib,放到JRE_HOME/bin/server路径下 加入虚拟机参数 -server -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:CompileCo...

2020-03-20 14:53:17

阅读数 970

评论数 0

转载 Java并发之Synchronized源码分析

Java并发之Synchronized源码分析 Java并发之Synchronized源码分析 ** 理论基础 主要通过参考以下文章深入了解源码: 通过分析ByteCodeInterpreter.cpp(在hotspot/src/share/vm/interpreter中)来了解:死磕Sy...

2020-03-20 12:16:45

阅读数 1017

评论数 0

转载 死磕Synchronized底层实现--重量级锁

声明:我是搬运工,万人血书感谢:https://github.com/farmerjohngit/myblog 本文为死磕Synchronized底层实现第三篇文章,内容为重量级锁实现。 本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容包括偏向锁、轻量级锁、重量级锁...

2020-03-20 11:33:38

阅读数 857

评论数 0

转载 死磕Synchronized底层实现--轻量级锁

声明:我是搬运工,万人血书感谢:https://github.com/farmerjohngit/myblog 本文为死磕Synchronized底层实现第三篇文章,内容为轻量级锁实现。 轻量级锁并不复杂,其中很多内容在偏向锁一文中已提及过,与本文内容会有部分重叠。 另外轻量级锁的背景和基本流程...

2020-03-20 11:32:27

阅读数 837

评论数 0

转载 死磕Synchronized底层实现--偏向锁

声明:我是搬运工,万人血书感谢:https://github.com/farmerjohngit/myblog 本文为synchronized系列第二篇。主要内容为分析偏向锁的实现。 偏向锁的诞生背景和基本原理在上文中已经讲过了,强烈建议在有看过上篇文章的基础下阅读本文。 本系列文章将对HotS...

2020-03-20 11:31:15

阅读数 738

评论数 0

转载 死磕Synchronized底层实现--概论

声明:我是搬运工,万人血书感谢:https://github.com/farmerjohngit/myblog 关于synchronized的底层实现,网上有很多文章了。但是很多文章要么作者根本没看代码,仅仅是根据网上其他文章总结、照搬而成,难免有些错误;要么很多点都是一笔带过,对于为什么这样实现...

2020-03-20 11:29:04

阅读数 607

评论数 0

原创 宝藏图,引起的一堆问题,轻量级锁的不解(Synchronized锁的升级)~

文章目录背景遗憾的是线程1释放的时候,为什么失败的时候,是唤醒被挂起的那些线程?膨胀流程图为什么要拷贝mark word?疑问?轻量级锁到底是两条以上的线程还是两条线程争抢同一个锁会膨胀为重量级锁?到底什么时候膨胀为重量级锁?什么是全局安全点?拾遗 背景 看一看synchronized的升级原理...

2020-03-19 23:29:51

阅读数 641

评论数 0

原创 Epoch的作用?如何解决解决大量线程竞争偏向锁的问题?

Epoch的作用?如何解决解决大量线程竞争偏向锁的问题? Epoch的作用?如何解决解决大量线程解决偏向锁的问题? epoch是一个时间戳,用来表明偏向的合法性https://juejin.im/post/5c17964df265da6157056588每个class对象会有一个对应的epoch...

2020-03-19 18:05:42

阅读数 618

评论数 0

原创 Join()会不会释放锁?

文章目录答案Demo分析拾遗 答案 会 不过不能确切的说 Demo 网上找了很久没有找到答案,从书中找答案,《Java并发编程艺术》、《Java并发编程实战》均没有找到,在《Java多线程编程核心技术》中找到了答案,这个Demo来自这本书的268页: package com.leesin.hei...

2020-03-18 23:22:48

阅读数 806

评论数 0

转载 Idea总是自动导入Apache的string,怎么设置?

设置不自动倒入: 打开设置 > Editor > Code Style > Java > Scheme Default > Imports① 将 Class count to use import with “" 改为 99 (导入同一个包的类超过这个数值自...

2020-03-18 23:08:41

阅读数 638

评论数 0

转载 Java线程的6种状态及切换(透彻讲解)

Java中线程的状态分为6种。 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的sta...

2020-03-18 18:51:24

阅读数 740

评论数 0

原创 git bash 中无法使用java命令(idea terminal 、第三方命令行工具同样),只要cmd可以

问题: git bash 的环境变量需要在/etc/profile中配置 vi /etc/profile # 添加 export JAVA_HOME='C:\Program Files\Java\jdk1.8.0_221' export PATH=$JAVA_HOME/bi...

2020-03-18 16:32:06

阅读数 789

评论数 0

原创 park/unpark 拾遗

文章目录背景概览坑总结源码parkThreadBlockInVM tbivm(jt) (就是阻塞)unpark简要park 过程unpark 过程源码总结:parkunpark源码博文只要记住parkunpark再简洁(最终): 背景 看condition源码的时候,park这里没有明白,到底...

2020-03-17 22:15:47

阅读数 842

评论数 0

原创 关于AQS中的enq方法的理解

自己太笨了,总感觉有点绕,就整理下吧~ private Node enq(final Node node) { for (;;) { //tail默认就是null Node t = tail; if (t == null) { // Must...

2020-03-15 16:47:58

阅读数 830

评论数 0

原创 IDEA maven项目右侧的maven小窗口框模块不见了

文章目录 奇怪的是其他的项目是有的。 上网查阅资料解决方法三步: 方法1.你点击一下你idea界面最左下角的那个小框,maven应该从里面找到 方法2.点击菜单栏View->Tool Windows->Maven projects 方法3.点击菜单栏Help->Find A...

2020-03-14 11:23:35

阅读数 1041

评论数 0

转载 什么是HotSpot VM

提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。 但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小...

2020-03-14 10:02:09

阅读数 1080

评论数 0

转载 JDK、CGLIB、Javassist和ASM的动态代理使用对比

动态代理是指在运行时,动态生成代理类。正如标题所示,能够提供动态代理的方式有很多。既然选择这么有很多,那么如何选择会更好呢? 带着这个疑问,我找到了Dubbo的作者——梁飞大神的一篇文章。文章中对四种方式都做了性能测试,从当时测试的结果来看,Javassist成了最好的选择。 不过时间过了那么久,...

2020-03-13 21:08:50

阅读数 1082

评论数 0

原创 Mybatis懒加载

因为通过javassist和cglib代理实现的,所以说到底最主要的就是JavasisstProxyFactory类中的invoke方法和里面的load方法。 其实读一读,里面的逻辑就是跟配置中定义的规则一样的 设置参数 描述 有效值 默认值 lazyLoadingEnabled ...

2020-03-13 20:53:19

阅读数 1071

评论数 0

原创 Cannot resolve method 'toUpperCase' in 'String' 、 Cannot resolve method 'substring' in 'String'

文章目录背景尝试解决一尝试解决二:尝试解决三:尝试解决四:尝试解决五: 背景 因为某些问题重装了idea,导致出现下面的问题 Cannot resolve method 'toUpperCase' in 'String' 还有很多其他的String相...

2020-03-13 15:10:54

阅读数 1123

评论数 0

转载 【IntelliJ IDEA】设置启动时不自动打开项目

启动IntelliJ IDEA时,默认进入上次最后打开的项目。将图1-1中划线部分的配置取消打钩。 图1-1 设置 下次启动IntelliJ IDEA时,会进入图1-2所示界面。 图1-2 启动界面 ...

2020-03-13 12:33:47

阅读数 893

评论数 0

转载 MobaXterm软件中复制和粘贴的快捷方式

复制和粘贴是敲命令、写程序过程中常用的功能。复制和粘贴的方法是否方便、快捷,往往是人们选择终端软件的标准之一。比如 putty 软件复制的方式是“划取”,粘贴的方式是“单击右键”,就广受喜爱。 因MobaXterm在功能较多,其并未选择单击右键粘贴这种方式。单击右键会弹出包括拷贝、粘贴在内的多个功...

2020-03-13 11:26:35

阅读数 693

评论数 0

原创 idea自动补全返回值的几种方法

文章目录背景方法一方法二方法三 背景 就像这样 new String(""); 变成 String s = new String(""); 今天大早上起来之前一直用的alt+enter这种方式不行了,最终没有找到好的解决办法,不过找到了更好的接种方法。 还...

2020-03-13 10:52:06

阅读数 712

评论数 0

转载 Intellij IDEA 智能补全的 10 个姿势,简直不能太牛逼!

一年多前,栈长那时候刚从 Eclipse 转型 IDEA 成功,前面转了好多次,都是失败史,都是泪。。 后面我就在微信公众号 “Java技术栈” 写了这篇文章:Intellij IDEA非常6的10个姿势!,感叹 IDEA 智能提示的强大,也对 IDEA 略表尊敬。 关于智能提示,这次我再分享一篇...

2020-03-13 10:04:49

阅读数 617

评论数 0

转载 mybatis核心数据结构详解——CacheKey

CacheKey(org.apache.ibatis.cache.CacheKey),缓存键。目的是为若干个被缓存对象的组合(有顺序)生成一个key,来唯一标识这个组合。一般用作HashMap<CacheKey,Object>,作为Map对象的key存在。 CacheKey还可以在对象...

2020-03-12 21:10:13

阅读数 495

评论数 0

转载 《Mybatis技术内幕--缓存的Key,CacheKey》

疑问: 为什么需要一个复杂的对象表示缓存项的key?通常来说表示一个对象的key可以用一个String对象,为什么不可以吗? 在cache中唯一确定一个缓存项需要使用缓存项的key,Mybatis中因为涉及到动态SQL等多方面因素,其缓存项的key不等仅仅通过一个String表示,所以MyBa...

2020-03-12 21:09:10

阅读数 509

评论数 0

提示
确定要删除当前文章?
取消 删除