10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  551 随笔 :: 14 文章 :: 86 评论 :: 129万 阅读

随笔分类 -  java 底层

摘要:System.out 和 System.err 的区别, 很基础吧, 但是 仔细观察idea 的后台日志, 你会有新的发现。 测试一段极其简单的代码: public class TestBasic { public static void main(String[] args) { System.o 阅读全文
posted @ 2021-08-28 18:56 CanntBelieve 阅读(984) 评论(0) 推荐(0) 编辑

摘要:其实 ThreadLocal 命名不太好,应当改名叫做 thread-local variable,即线程本地变量。一个ThreadLocal实例就是一个线程本地变量。它的特点是就是 任何时候同一个线程可以通过这个 ThreadLocal实例变量 访问到绑定的值 (其实有点绕);需要注意的是 ini 阅读全文
posted @ 2020-04-09 01:31 CanntBelieve 阅读(367) 评论(0) 推荐(0) 编辑

摘要:可重入读写锁 ReentrantReadWriteLock 其实基本上模拟了文件的读写锁操作。ReentrantReadWriteLock 和ReentrantLock 的差别还是蛮大的; 但是也有很多的相似之处; ReentrantReadWriteLock 的 writerLock 其实就是相当 阅读全文
posted @ 2020-04-08 23:09 CanntBelieve 阅读(457) 评论(0) 推荐(0) 编辑

摘要:LockSupport的主要方法是: LockSupport#LockSupportLockSupport#setBlocker(Thread t, Object arg)LockSupport#unpark(Thread t)LockSupport#park(java.lang.Object)Lo 阅读全文
posted @ 2020-04-07 19:58 CanntBelieve 阅读(308) 评论(0) 推荐(0) 编辑

摘要:ReentrantLock 内部有一个基于AQS的Sync,然后 衍生了 NonfairSync FairSync ... 每次只获取、释放 一个资源; 主要需要理解两个关键点: 可重入锁 、 公平锁和非公平锁 可重入的意思是线程在执行 lock 方法包围起来的临界区的内部代码,还可以调用lock。 阅读全文
posted @ 2020-04-07 13:36 CanntBelieve 阅读(372) 评论(0) 推荐(0) 编辑

摘要:首先我们需要理解一些基本的概念,然后我们对AbstractQueuedSynchronizer 进行详尽的分析。 Cancellation即表示取消的机制,虽然AQS没有提供公开的cancel之类的方法,但是它却真实存在(可能有外包线程调用当前线程的中断方法), Cancellation 包括了中断 阅读全文
posted @ 2020-04-06 18:26 CanntBelieve 阅读(476) 评论(0) 推荐(0) 编辑

摘要:什么情况? 下面的一段简单代码,发现了奇怪的编码问题: 打印出来结果是? default = 正文GBK = 正文UTF-8 = ????ISO-8859-1 = ???? default = ????GBK = ????UTF-8 = ????ISO-8859-1 = ???? 匪夷所思啊! 简直 阅读全文
posted @ 2019-12-29 15:52 CanntBelieve 阅读(2014) 评论(0) 推荐(0) 编辑

摘要:Jdk12 都发布了, 我也下载一个玩一玩吧。刚准备要下载,发现之前已经下载了一个11, 那就11 吧,也不用太新了。安装了jdk11,习惯性的设置了一下环境变量: JAVA_HOME=D:\tool\jdk-11.0.2。JAVA_HOME=D:\Program Files\Java\jdk1.8 阅读全文
posted @ 2019-05-22 20:29 CanntBelieve 阅读(34238) 评论(2) 推荐(2) 编辑

摘要:LocalVariableTable中的 Slot, 是存在复用现象的,这个我早就知道,但是,不太清楚是如何复用的。 Java语言规范与JVM规范都没有对Java语言具体要如何使用JVM的局部变量slot做太多限制,只是规定了参数要从下标为0开始的局部变量区传递而已。作用域不重叠的局部变量之间是否一 阅读全文
posted @ 2019-03-05 12:48 CanntBelieve 阅读(1170) 评论(0) 推荐(1) 编辑

摘要:在运行一个第三方公司交付的项目的时候, 出现: 凭感觉,这是jdk版本问题。 我本机安装的是1.8, 对方要求的也是1.8. 他们运行没问题,我这里怎么就不行了呢? 这就奇怪了。。 跟进源码里面看看吧: org.springframework.context.config.ContextNamesp 阅读全文
posted @ 2019-02-25 15:46 CanntBelieve 阅读(5091) 评论(0) 推荐(1) 编辑

摘要:1.虚拟机栈(本地变量表)引用的对象 2.方法区静态属性引用的对象 3.方法区常量引用的对象 4.本地方法栈JNI(一般指naive方法)中引用的对象 常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC 阅读全文
posted @ 2019-01-08 19:17 CanntBelieve 阅读(3197) 评论(0) 推荐(0) 编辑

摘要:问题是这样的: 有1个生产者生产 产品, 60个消费者消费产品, 产品可以被同时消费,而且需要等到每个消费者都消费一遍后, 才能够把它删除。 问题其实也不难, 只是稍微有点技巧。实现方式其实很多种, 下面的应该是最简单的吧。 阅读全文
posted @ 2018-11-29 15:07 CanntBelieve 阅读(374) 评论(0) 推荐(0) 编辑

摘要:完全 模仿ReentrantLock, 通过继承 java.util.concurrent.locks.Lock , 内置 AbstractQueuedSynchronizer 实现类,限制可以重入次数的锁。 这个其实不难, 只要稍微注意一点就好了 ReenterLimitedLock 关键实现: 阅读全文
posted @ 2018-11-29 14:52 CanntBelieve 阅读(783) 评论(0) 推荐(0) 编辑

摘要:参考: https://www.cnblogs.com/xingzc/p/5778090.html http://www.runoob.com/java/java8-optional-class.html 返回空的 Optional 实例。 判断其他对象是否等于 Optional。 如果值存在,并且 阅读全文
posted @ 2018-07-06 10:17 CanntBelieve 阅读(3000) 评论(0) 推荐(0) 编辑

摘要:关于锁的分类 及 锁的灵活使用: 参见 http://blog.csdn.net/qaz13177_58_/article/details/21543515 有几句话说得相当不错: 锁的分类 : 同步分为类级别和对象级别,分别对应着类锁和对象锁。类锁是每个类只有一个,如果static的方法被sync 阅读全文
posted @ 2014-07-16 01:55 CanntBelieve 阅读(607) 评论(0) 推荐(0) 编辑

摘要:环境: 现有一个独立运行的系统S(有独立的jre,但是没jdk),现想通过jmap导出其内存堆栈信息。于是另外安装一个jdk。可是jdk的版本跟S系统的jre不能对应上。出了很多错误。 总是报错: C:\Program Files\Java\jdk1.7.0_04\bin>jmap -dump:fo 阅读全文
posted @ 2014-03-27 15:38 CanntBelieve 阅读(8478) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示