摘要:
前言 看了一圈,发现Redis的面试题主要问的是如下几块: 原理 用处(缓存/队列 包括Pub、Sub/计数器/排行榜等) 基本操作与数据类型 消息队列 且与其它消息队列的区别 主从备份 宕机如何处理 持久化及原理(原生持久化 & 结合Mysql等数据库持久化) 是否可以作为数据库?作为数据库有哪些 阅读全文
摘要:
实时操作系统 实时操作系统 英文称Real Time Operating System,简称RTOS。 1.实时操作系统定义 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任 阅读全文
摘要:
目的 主要介绍ThreadPoolExecutor的用法,和较浅显的认识,场景的使用方案等等,比较忙碌,如果有错误还请大家指出 ThreadPoolExecutor介绍 ThreadPoolExecutor的完整构造方法的签名如下 1 2 workQueue任务队列):用于保存等待执行的任务的阻塞队 阅读全文
摘要:
一、Haproxy概念 Haproxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。Haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会保持或七层处理。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接。 阅读全文
摘要:
jps -- 查看进程号 jmap -histo pid 查看堆内存中的对象数目、大小统计直方图, 如果带上live则表示先进行一次fullgc 再统计内存使用情况,如下: jmap -histo:live pid | more 阅读全文
摘要:
在高并发的情况下采用线程池,有效的降低了线程创建释放的时间花销及资源开销,如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。(在JVM中采用的处理机制为时间片轮转,减少了线程间的相互切换) 那么在高并发的情况下,我们怎么选择最优的线程数量呢?选择原则又是什么呢?这个问题 阅读全文
摘要:
每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一个原生的类加载器AppClassLoader,它只加载Java API等可信类,通常只是在本地磁盘中 阅读全文
摘要:
什么时候类加载 第一次需要使用类信息时加载。 类加载的原则:延迟加载,能不加载就不加载。 触发类加载的几种情况: (1)、调用静态成员时,会加载静态成员真正所在的类及其父类。 通过子类调用父类的静态成员时,只会加载父类而不会加载子类。 (2)、第一次 new 对象的时候 加载(第二次再 new 同一 阅读全文
摘要:
一,有两个术语,一个叫“定义类加载器”,一个叫“初始类加载器”。 比如有如下的类加载器结构: bootstrap ExtClassloader AppClassloader -自定义clsloadr1 -自定义clsloadr2 如果用“自定义clsloadr1”加载java.lang.String 阅读全文
摘要:
package com.nio; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channe... 阅读全文