
JVM和JDK学习
java中JVM和JDK相关学习的总结
小小她爹
If you are stuck,you have to work your own way out(如果你陷入困境,就要自己找解决办法)。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一次现网java服务的故障处理
接到报警,发现已经不能从redis读取数据,后台日志发现线程池占满,然后进行处理,现网重启,重启脚本dump出相关的现场日志。 分析: 1、查看free的输出信息,发现正常 2、查看gc的输出和heap的输出,也很正常 3、查看netstat的tcp连接,发现连接一个服务地址A连接特别多,怀疑这个上面有问题 4、查看jstack的输出,发现服务地址A上请求的线程都处于RUNNABL原创 2017-04-05 17:53:44 · 555 阅读 · 0 评论 -
重温jvm中的happen-before
jvm中happen-before的8条规则总结性解析原创 2017-02-23 23:15:48 · 1025 阅读 · 0 评论 -
google的Guava库的callback使用分析
google的Guava库中的callback实现分析原创 2016-04-18 15:40:50 · 2019 阅读 · 1 评论 -
Java 理论与实践: 正确使用 Volatile 变量
转 http://www.ibm.com/developerworks/cn/java/j-jtp06197.html Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种转载 2016-04-02 23:38:10 · 444 阅读 · 1 评论 -
RestTemplate深入浅出
springboot RestTemplate深入浅出原创 2022-01-16 11:31:35 · 2191 阅读 · 0 评论 -
spring二次开发能力指的是什么
一些比较大的公司要求有spring二次开发能力,到底要求的什么能力呢,其实也很简单,就是基于spring的核心功能实现一个框架,类同:spring mvc,或者比较牛的springboot其实核心的要求是,你要熟悉容器的生命周期和bean的生命周期,在生命周期初始化整个过程做一些框架的工作。比如:spring mvc上将url请求映射到对应bean上,并且接收对应的web请求,这个本身是无法通过注解配置出来的,需要将相关的映射关系,拦截器处理等都接管过来。...原创 2021-10-19 17:59:21 · 850 阅读 · 0 评论 -
jvm中的栈
java中的线程栈分析原创 2017-05-01 22:50:24 · 943 阅读 · 0 评论 -
linux上jni调用注意事项
jni开发中调用第三方linux下so的注意事项原创 2017-04-24 18:37:02 · 734 阅读 · 0 评论 -
Future方式中断线程实现
java future方式实现线程中断原创 2016-04-13 17:26:46 · 4601 阅读 · 1 评论 -
JAVA的锁总结
观点1引用:http://www.majin163.com/2014/03/17/synchronized2/Q1: synchronized到底有多大开销?与CAS这样的乐观并发控制相比如何?从上述四个锁的原理以及加速顺序我们不难发现,synchronzied在没有锁冲突的前提下最小开销为一个CAS+栈变量维护(lock record)+一个赋值指令,有锁冲突时需要维护一个Montor对象,通过M原创 2016-04-05 13:41:05 · 851 阅读 · 1 评论 -
JAVA守护线程 daemon thread
守护线程守护线程, 是指在程序运行的时候在后台提供一种通用服务的线程, 比如垃圾回收线程就是一个很称职的守护者, 并且这种线程并不属于程序中不可或缺的部分. 因此, 当所有的非守护线程结束时, 程序也就终止了, 同时会杀死进程中的所有守护线程. 反过来说, 只要任何非守护线程还在运行, 程序就不会终止.用户线程和守护线程两者几乎没有区别, 唯一的不同之处就在于虚拟机的离开: 如果用户线程已经全部原创 2016-04-02 23:04:12 · 1018 阅读 · 1 评论 -
JAVA的ReentrantLock与synchronized 的区别
实现原理1.synchronized是虚拟机实现的,主要通过JVM中定义的监视器模型来实现。 JVM的指令: Opcode Operand(s) Description monitorenter none pop objectref, acquire the lock associated with objectref monitorexit none pop o原创 2016-04-01 17:39:53 · 1047 阅读 · 1 评论 -
JVM简单比较
GC Roots在Java语言中,GC Roots包括: 虚拟机栈中引用的对象。 方法区中类静态属性实体引用的对象。 方法区中常量引用的对象。 本地方法栈中JNI引用的对象。Sun JVM典型内存分配 年轻代(young) 年轻代分三个区。一个Eden区,两个Survivor区。大部分对象在Eden区中生成。 年老代(tenured) 持久代(perm)sun jdk垃圾回收过程:原创 2016-03-31 16:38:06 · 573 阅读 · 1 评论 -
关于协程的一些个人理解
用了这么多年java,觉得java不支持协程就是无脑的行为,必须为go支持协程点个赞,最近在优化性能,对过了这么多年java仍然没在语言级提供协程感觉痛心,刚好看到一篇文章:https://www.jianshu.com/p/837bb161793aC++ 协程的近况、设计与实现中的细节和决策,做个总结1、需要协程的理由:线程切换也非常重量级,不能无限增加线程,操作系统调度不过...原创 2019-08-27 14:20:48 · 330 阅读 · 0 评论