10年 Java程序员,硬核人生!勇往直前,永不退缩!欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185 |
|
随笔分类 - java 底层
摘要:System.out 和 System.err 的区别, 很基础吧, 但是 仔细观察idea 的后台日志, 你会有新的发现。 测试一段极其简单的代码: public class TestBasic { public static void main(String[] args) { System.o
阅读全文
摘要:其实 ThreadLocal 命名不太好,应当改名叫做 thread-local variable,即线程本地变量。一个ThreadLocal实例就是一个线程本地变量。它的特点是就是 任何时候同一个线程可以通过这个 ThreadLocal实例变量 访问到绑定的值 (其实有点绕);需要注意的是 ini
阅读全文
摘要:可重入读写锁 ReentrantReadWriteLock 其实基本上模拟了文件的读写锁操作。ReentrantReadWriteLock 和ReentrantLock 的差别还是蛮大的; 但是也有很多的相似之处; ReentrantReadWriteLock 的 writerLock 其实就是相当
阅读全文
摘要:LockSupport的主要方法是: LockSupport#LockSupportLockSupport#setBlocker(Thread t, Object arg)LockSupport#unpark(Thread t)LockSupport#park(java.lang.Object)Lo
阅读全文
摘要:ReentrantLock 内部有一个基于AQS的Sync,然后 衍生了 NonfairSync FairSync ... 每次只获取、释放 一个资源; 主要需要理解两个关键点: 可重入锁 、 公平锁和非公平锁 可重入的意思是线程在执行 lock 方法包围起来的临界区的内部代码,还可以调用lock。
阅读全文
摘要:首先我们需要理解一些基本的概念,然后我们对AbstractQueuedSynchronizer 进行详尽的分析。 Cancellation即表示取消的机制,虽然AQS没有提供公开的cancel之类的方法,但是它却真实存在(可能有外包线程调用当前线程的中断方法), Cancellation 包括了中断
阅读全文
摘要:什么情况? 下面的一段简单代码,发现了奇怪的编码问题: 打印出来结果是? default = 正文GBK = 正文UTF-8 = ????ISO-8859-1 = ???? default = ????GBK = ????UTF-8 = ????ISO-8859-1 = ???? 匪夷所思啊! 简直
阅读全文
摘要:Jdk12 都发布了, 我也下载一个玩一玩吧。刚准备要下载,发现之前已经下载了一个11, 那就11 吧,也不用太新了。安装了jdk11,习惯性的设置了一下环境变量: JAVA_HOME=D:\tool\jdk-11.0.2。JAVA_HOME=D:\Program Files\Java\jdk1.8
阅读全文
摘要:LocalVariableTable中的 Slot, 是存在复用现象的,这个我早就知道,但是,不太清楚是如何复用的。 Java语言规范与JVM规范都没有对Java语言具体要如何使用JVM的局部变量slot做太多限制,只是规定了参数要从下标为0开始的局部变量区传递而已。作用域不重叠的局部变量之间是否一
阅读全文
摘要:在运行一个第三方公司交付的项目的时候, 出现: 凭感觉,这是jdk版本问题。 我本机安装的是1.8, 对方要求的也是1.8. 他们运行没问题,我这里怎么就不行了呢? 这就奇怪了。。 跟进源码里面看看吧: org.springframework.context.config.ContextNamesp
阅读全文
摘要:1.虚拟机栈(本地变量表)引用的对象 2.方法区静态属性引用的对象 3.方法区常量引用的对象 4.本地方法栈JNI(一般指naive方法)中引用的对象 常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC
阅读全文
摘要:问题是这样的: 有1个生产者生产 产品, 60个消费者消费产品, 产品可以被同时消费,而且需要等到每个消费者都消费一遍后, 才能够把它删除。 问题其实也不难, 只是稍微有点技巧。实现方式其实很多种, 下面的应该是最简单的吧。
阅读全文
摘要:完全 模仿ReentrantLock, 通过继承 java.util.concurrent.locks.Lock , 内置 AbstractQueuedSynchronizer 实现类,限制可以重入次数的锁。 这个其实不难, 只要稍微注意一点就好了 ReenterLimitedLock 关键实现:
阅读全文
摘要:参考: https://www.cnblogs.com/xingzc/p/5778090.html http://www.runoob.com/java/java8-optional-class.html 返回空的 Optional 实例。 判断其他对象是否等于 Optional。 如果值存在,并且
阅读全文
摘要:关于锁的分类 及 锁的灵活使用: 参见 http://blog.csdn.net/qaz13177_58_/article/details/21543515 有几句话说得相当不错: 锁的分类 : 同步分为类级别和对象级别,分别对应着类锁和对象锁。类锁是每个类只有一个,如果static的方法被sync
阅读全文
摘要:环境: 现有一个独立运行的系统S(有独立的jre,但是没jdk),现想通过jmap导出其内存堆栈信息。于是另外安装一个jdk。可是jdk的版本跟S系统的jre不能对应上。出了很多错误。 总是报错: C:\Program Files\Java\jdk1.7.0_04\bin>jmap -dump:fo
阅读全文
|