
面试
manDD_HH
加油,谁不会遇到点挫折呢。
展开
-
必须知道的Redis的过期策略和内存淘汰机制
目录过期策略内存淘汰常见的缓存算法过期策略对于过期的key,redis有两种方式进行删除:惰性删除:redis不会主动的删除过期的key,而是当访问此key的时候回判断它是否过期,过期就删除并返回空。不会扫描过期key,但是占用内存资源。定期删除:redis每隔一段时间就随机扫描部分过期key(20个),是过期的key就删除,过期key占比大于25%则再次扫描,默认每秒10次。redis配置文件hz默认是10。为了防止redis因为过期策略卡死,过期扫描的最大时间是25S。内存淘汰下图是re原创 2020-10-10 19:28:02 · 146 阅读 · 0 评论 -
(一)jvm,代码是怎么被运行起来的(类加载器,双亲委派)
有这样一个问题:我们都是知道java代码是通过javac 将.java文件编译成.class字节码文件,然后jvm在加载这些字节码文件到内存中。java的运行模式是混合模式,解释执行和及时编译(JIT)。非热代码是解释执行,执行的是字节码,将字节码编译为机器码执行一次编译一次。及时编译是将热代码编译成机器码存放在方法区中。如果程序在执行非热代码A 的a方法 输出的是 ”hello“,如果我们将A的.class文件删除,他还会执行吗?答案肯定是会的。非热代码不是执行一次解析一次字节码吗?为什么还会运行呢?j原创 2020-09-05 16:51:13 · 298 阅读 · 0 评论 -
(三)jvm,面试必考的jvm内存划分
垃圾回收算法1、线程私有1.1、虚拟机栈1.2、本地方法栈1.3、程序计数器2、线程共享2.1、堆2.2、方法区开篇前先说下,不要说成了java的内存模型,内存模型是主存、线程内存的实现,jvm的内存划分如下图:分为两大类:线程私用,线程共享1、线程私有1.1、虚拟机栈它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的线程内存模型:每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧用于存储局部变量表、操作数栈、动态连接、方法出口等信息。每一个方法被调用直至执行完毕的过程,就对应着.原创 2020-09-07 08:24:26 · 289 阅读 · 0 评论 -
(二)jvm,java的引用类型和GC Roots
java四大引用类型强引用 Strong reference当虚拟机内存不足时,jvm就会抛出oom。即使异常也不会被垃圾收集器回收了。只有和GC Root没有联系才可以时,才回被回收。软应用 Soft reference软引用是维护的对象是可有可无的。在内存充足时,是不会被垃圾回收器回收的,只有在内存不足时才回被回收。在Guava的Cach中就有对软应用和弱应用的设置方法,软应用可以被应用在缓存上。可软应用可以和引用队列组合使用,如果该引用对象被回收,jvm会将引用加入到该队列中。原创 2020-09-05 17:38:51 · 313 阅读 · 0 评论 -
要尝尝我的糖吗?(java语法糖)
语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身的功能来说没有什么影响,只是为了方便程序员进行开发,提高开发效率,使用这种语法写出来的程序可读性也更高。说白了,语法糖就是对现有语法的一个封装。但其实,Java虚拟机是并不支持语法糖的,语法糖在程序编译阶段就会被还原成简单的基础语法结构,这个过程就是解语法糖。所以在Java中真正支持语法糖的是Java编译器。Java中的语法糖Java编程语言提供了很多语法糖,整理了下,主要有下面几种常用的语法糖。原创 2020-08-12 11:01:23 · 245 阅读 · 0 评论 -
2020一月京东数科宣讲会面试
记一次2020年一月的京东数科的校园招聘2020年了,在水滴实习的我被鹅心到了,就出来找校招了。总体面试下来感觉还比较好,挺基础的。hr收完简历就是各个部门大佬的业务介绍,就开始分简历面试了。一面二面差不多,这里就一起总结了:1、java为什么跨平台?2、jvm的组成3、垃圾回收机制、算法、垃圾回收器4、java集合,hashMap和ConcurrentHashMap为主这里详细一...原创 2020-01-03 23:13:06 · 1041 阅读 · 0 评论