java
文章平均质量分 93
忧忧可乐
这个作者很懒,什么都没留下…
展开
-
JDBC、Tomcat为什么要破坏双亲委派模型?
问题一:双亲委派模型是什么如果一个类加载器收到了加载某个类的请求,则该类加载器并不会去加载该类,而是把这个请求委派给父类加载器,每一个层次的类加载器都是如此,因此所有的类加载请求最终都会传送到顶端的启动类加载器;只有当父类加载器在其搜索范围内无法找到所需的类,并将该结果反馈给子类加载器,子类加载器会尝试去自己加载。![](https://img-blog.csdnimg.cn/img_convert/328f0ca5b24a423e0ebb297ab27202ee.png#align=left&原创 2021-06-30 13:35:16 · 397 阅读 · 0 评论 -
Javaagent使用指南
Javaagent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。javaagent 是什么?javaagent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。Premain-Class 指定的那个类必须实现 premain() 方法。premain原创 2021-06-30 13:34:13 · 901 阅读 · 0 评论 -
ThreadLocal 细节和设计
关键词: 空间换时间、弱引用、开放地址法(线性探测,二次探测,双重探测)简介ThreadLocal 是一个线程的本地变量,也就意味着这个变量是线程独有的,是不能与其他线程共享的,这样就可以避免资源竞争带来的多线程的问题,这种解决多线程的安全问题和lock是有本质的区别的。(这里的lock 指通过synchronized 或者Lock 等实现的锁)Lock资源是多个线程共享的,所以访问的时候需要加锁通过时间换空间的做法ThreadLocal每个线程都有一个副本,是不需要加锁的通过空原创 2021-06-30 11:57:40 · 183 阅读 · 0 评论 -
Unsafe魔术类
[Unsafe解析]简介Unsafe为我们提供了访问底层的机制,这种机制仅供java核心类库使用,而不应该被普通用户使用。获取Unsafe的实例查看Unsafe的源码我们会发现它提供了一个getUnsafe()的静态方法。@CallerSensitivepublic static Unsafe getUnsafe() { Class var0 = Reflection.getCallerClass(); if (!VM.isSystemDomainLoader(var0.getC原创 2021-06-30 13:30:10 · 110 阅读 · 0 评论