
jvm
文章平均质量分 69
qq_23204557
这个作者很懒,什么都没留下…
展开
-
蓝卓数字科技面试(部分)
更具体的处理思路是让G1收集器去跟踪各个Region里面的垃圾堆积的“价值”大小,价值即回收所获得的空间大小以及回收所需时间的经验值,然后在后台维护一个优先级列表,每次根据用户设定允许的收集停顿时间,优先处理回收价值收益最大的那些Region,这也就是“Garbage First”名字的由来。G1把堆划分为多个大小相等的独立区域(Region),每一个Region都可以根据需要,扮演新生代的Eden空间、Survivor空间,或者老年代空间。面试官:错了,这是通用线程池,tomcat对通用线程池做了改造。原创 2023-07-29 07:52:56 · 159 阅读 · 0 评论 -
达闼面试(部分)(未完全解析)
动态绑定/运行时绑定内存屏障,有序性,可见性,unsafe原创 2023-07-22 05:46:56 · 329 阅读 · 0 评论 -
SPI与Springboot自动装配
引入服务提供者(也即SPI接口的实现者),通过本地的注册发现获取到具体的实现类,轻松可插拔。@lmport导入了一个DeferredlmportSelector(它会SpringBoot的自动配置类的顺序在最后,这样方便我们扩展和覆盖)其中Parent与Son1,Son2相对于Subscribe.java等,只是把接口与实现类换成了类与其子类的关系,也是照样生效的。如上图,在META_INF/services/com.secbro2.Subscribe文件里指定了两个实现类。原创 2023-07-15 02:21:38 · 834 阅读 · 0 评论 -
王力面试(未完全解析)(部分)
对象创建过程分配内存:指针碰撞/空闲列表原创 2023-07-03 21:31:27 · 817 阅读 · 0 评论 -
tomcat与自定义类加载器
一个tomcat中可以部署多个应用,而每个应用中都存在很多类,并且各个应用中的类是独立的,全类名是可以相同的,比如一个博客系统中可能存在com.data.User类,一个库存系统中可能也存在com.data.User类。一个tomcat,不管内部部署了多少应用,Tomcat启动之后就是一个Java进程,也就是一个JVM,所以如果Tomcat中只存在一个类加载器,比如默认的AppClassLoader,那么就只能加载一com.data.User类,这是有问题的 .原创 2023-06-29 04:43:01 · 1848 阅读 · 0 评论 -
达美乐的面试(部分)(未完全解析)
jstackredis AOF fsyncredis list原创 2023-05-25 01:48:54 · 1749 阅读 · 0 评论 -
网易大神后端面试(部分)
你对GC的吞吐量和停顿时间有什么理解吗?以下来自《深入理解Java虚拟机》:停顿时间越短就越适合需要与用户交互或需要保证服务响应质量的程序,良好的响应速度能提升用户体验;而高吞吐量则可以最高效率地利用处理器资源,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的分析任务。垃圾收集停顿时间缩短是以牺牲吞吐量和新生代空间为代价换取的:系统把新生代调得小一些,收集300MB新生代肯定比收集500MB快,但这也直接导致垃圾收集发生得更频繁,原来10秒收集一次、每次停顿100毫秒,现在变成5秒收.原创 2021-05-28 17:32:10 · 490 阅读 · 1 评论 -
政采云架构组面试(部分)
怎样在java程序中使用mysql的乐观锁和悲观锁?mysql的binlog文件的数据格式分几种?答案1:STATMENT 、 ROW 和 MIXED :单表有1亿的数据,先不考虑分库分表和分区,可以如何优化?Kafka性能高的原因?参考答案:page cache2 问:消费者的offset(位点)信息是怎么存储的。可答: 早期版本中offset保存在zookeeper中redis主从同步是怎么实现的3。两种持久化方法,rdb和aof,恢复时谁更快?如果想让对象尽量在新生代被回收,..原创 2021-05-26 17:55:12 · 492 阅读 · 1 评论 -
新奥新智面试(部分)
有问题怎么排查,去哪里看日志?答:ELKJVM栈帧的局部变量表里索引的第一个位置存的什么?标准答案(from《深入理解Java虚拟机》第3版):如果执行的是实例方法(没有被static修饰的方法),那局部变量表中第0位索引的变量槽默认是用于传递方法所属对象实例的引用,在方法中可以通过关键字“this”来访问到这个隐含的参数。问:为什么老年代用标记-清除法,新生代用标记-复制法,有什么好处?《深入理解Java虚拟机》: 标记-复制 :如果内存中多数对象都是存活的,这种算法将会产生大量的内存间复制的.原创 2021-05-21 22:42:21 · 1586 阅读 · 0 评论 -
synchronized在JDK1.6之后的底层优化
主要参考JavaGuide之JDK1.6之后的底层优化.md无锁 -> 偏向锁 -> 轻量级锁 ->(自旋锁)-> 重量级锁偏向锁的加锁当一个线程访问同步块并获取锁时, 会在锁对象的对象头中的Mark Word和栈帧中的锁记录里存储线程ID轻量级锁使用轻量级锁时,不需要申请互斥量。轻量级锁的加锁和解锁都用到了CAS操作。...原创 2021-03-15 05:10:18 · 169 阅读 · 0 评论 -
在centos7上编译openjdk12
参照《深入理解Java虚拟机第三版》1.6节与https://github.com/AdoptOpenJDK/openjdk-jdk12u/blob/master/doc/building.md,步骤如下:获取openjdk12的源码,书中给出的地址实在是太慢了,我在github上找了个镜像,点击下载,获得zip压缩包,解压缩。sudo yum install java-11-openjdk*chmod +x configuresudo ./configure --enable-debug --w原创 2021-02-06 02:27:55 · 216 阅读 · 0 评论 -
一些java命令和JVM参数
-XX:+PrintFlagsFinal 启动时查看参数 -XX:+PrintGC 查看GC原创 2020-10-31 18:56:22 · 154 阅读 · 0 评论 -
《第二节 JVM性能优化实战》
《3.2.1 类加载机制》:双新委派模型:《3.2.2 垃圾回收机制》:《3.2.3 JDK内置命令工具》:jmap,jstack等命令的参考文档原创 2020-06-13 00:09:46 · 115 阅读 · 0 评论 -
jvm调优专题
黄小斜的<深入理解JVM虚拟机>专题其中有个GC调优系列文章,应该来自铁锚的阿里云原创 2019-08-27 01:25:23 · 156 阅读 · 0 评论