10分钟带你了解并发性能指标
你真的了解QPS,RT这些并发性能指标吗?10分钟学会它!
redis 持久化
Redis的两种持久化策略(优缺点)
CAP定理
使用最简单的话描述CAP定理
Raft算法详解及脑裂
几句话就讲明白什么是Raft算法
高并发下的redis场景面试题
以下几个面试题是突出在高并发环境下redis的高性能特性
1.redis的大问题即解决方法
详细描述了Redis的缓存穿透,缓存雪崩和缓存击穿及对于的解决方法
两分钟搞懂泛型和泛型擦除
首先,我们要先理解什么是泛型泛型是JDK5引入的一种机制,它主要作用于编译阶段约束集合或者类,接口,方法的元素类型。其主要作用是为了避免在运行阶段的类型转换异常,同时提高代码的复用性。(一句话,就是编译阶段起作用,影响到运行阶段)三大作用: 类型安全:将运行阶段的错误提前到编译阶段。 代码重用:一次定义到处使用。 消除强转:使代码更加优雅 其次,我们来解释为什么会发生泛型的类型擦除泛型擦除是发生在编译阶段,编译完成后,字节码中会移除泛型的类型信息参数。本质上,类型擦除是一种对JDK5以前老代码的兼容妥协。同时泛型不能使用基本数据类型,因为在运行阶段会转为Object类型,如果使用基本数据类型会报错。 代码中的T extends T和T super T是什么意思?PECS:Producer Extands Consumer SuperProducer Extands:生产者使用Extands,Extands代表上界,主要用来读数据。Consumer Super:消费者使用Super,Extands代表下界,主要用来写数据。(读用extends,写用super) 面试题来了:1....
双亲委派机制
提问:什么是双亲委派?首先,我们先引入类加载模式在java中有4中类加载器,他们分别是(最顶层到最底层): 启动类加载器:这个加载器是最顶层的类加载器,由C++编写,负责加载JDK的核心类库。 扩展类加载器:这个加载器是用于加载Java的扩展类库(如jre/lib/ext目录下的类)。 应用程序类加载器:这个类加载器用于加载用户类路径下的类,是默认的类加载器。 用户自定义加载器:这个加载器是用于加载特定路径的类,由用户继承ClassLoader实现。 然后解释什么是双亲委派机制双亲委派机制的核心就是:当一个类加载器收到加载请求时,先委托给它的上一层级的类加载器(父亲)依次类推。只有上一层级的加载器无法加载时,才会自己进行类的加载。这种机制保证了类的唯一性和安全性(不能进行类的伪造及避免类被篡改)。 最后,理解类加载的完整过程类加载分为5步: 加载:通过类的全限定类名获取字节流,将其转为方法区的运行时的数据结构,主要生成Class对象。 验证:校验字节流的合法性(比如格式,语义,字节码等),确保安全。 准备:为类的静态变量分配内存并设置默认初始值。(比如i...
Javase面试知识
1. 什么是面向对象?面向对象是一种编程思想,它同面向过程相对。面向过程主要着重与事件的每个步骤和顺序;而面向对象跟注重事情有哪些参与者或者是对象,及各自需要做什么。然后面向对象有三个重要的特性: 封装:将对象的属性和操作数据的方法(行为)捆绑在一个类中,并对外隐藏内部实现细节,只通过公开的接口与外界交互。 继承:子类可以自动拥有父类的非私有属性和非私有方法,并可对其进行扩展或重写。 多态:同一个方法调用在不同对象上表现出不同行为,具体来说就是父类型引用指向子类型对象。 2. JDk,JRE,JVM的三者的关系?JDK是一个Java的开发者工具。JRE是一个Java运行时的环境。JVM是Java虚拟机(解释java文件,编译为机器可以识别的字节码文件)。 3. ==和equals()的区别?==对比的栈中的值,如果对比的值是基本数据类型,那是值比较;如果对比的值是引用数据类型,那就是地址比较。equals()默认的比较是和==一样的,不过通常会对equals进行重写,将其变为值比较。比如String就对equals进...
How to use crypto?
crypto learning









