4 王磊的博客

尚未进行身份认证

公众号「Java中文社群」

等级
TA的排名 1w+

Redis持久化的几种方式——深入解析RDB

Redis的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。Redis 持久化也是 Redis和 Memcached 的主要区别之一,因为 Memcached是不具备持久化功能的。1.持久化的几种方式Red...

2019-11-17 22:45:54

Redis中的键值过期操作

1.过期设置Redis 中设置过期时间主要通过以下四种方式:expire key seconds:设置 key 在 n 秒后过期;pexpire key milliseconds:设置 key 在 n 毫秒后过期;expireat key timestamp:设置 key 在某个时间戳(精确到秒)之后过期;pexpireat key millisecondsTimestamp:设置 k...

2019-11-12 19:05:27

Redis事务深入解析和使用

作为关系型数据库中一项非常重要的基础功能——事务,在 Redis 中是如何处理并使用的?1.前言事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命令后,才会继续处理此客户端的其他命令。事务也是其他关系型数据库,所必备的一项非常重要的能力。以支付的场景为例,正常情况下只有正常消费完成之后,才会减去账户余额。但如果没有事务的保障,可能会发生消...

2019-10-28 21:06:09

Java面试全解析——505道面试题详解

《Java面试全解析》是我在 GitChat 发布的一门电子书,全书总共有 15 万字和 505 道 Java 面试题解析,目前来说应该是最实用和最全的 Java 面试题解析了。我本人是 2009 年参加编程工作的,一路上在技术公司摸爬滚打,前几年一直在上海,待过的公司有 360 和游久游戏,因为自己家庭的原因,放弃了阿里钉钉团队的 offer 回到了西安。从 2015 年四月开始在一家上市公...

2019-10-23 19:41:05

深浅克隆面试题汇总——附详细答案

在开始学习深克隆和浅克隆之前,我们先来看下面代码,有什么问题?class CloneTest { public static void main(String[] args) throws CloneNotSupportedException { // 等号赋值( 基本类型) int number = 6; int number2 = n...

2019-09-18 09:37:45

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我2015年做了TeamLeader之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在Java技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从2009年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢?说回面试的事,这份面试...

2019-07-10 17:41:50

RocketMQ 可视化环境搭建和基础代码使用

RocketMQ 是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在 2016 年底捐赠给 Apache 开源基金会成为孵化项目,经过不到一年时间正式成为了 Apache 顶级项目。早期阿里曾经基于 ActiveMQ 研发消息系统, 随着业务消息的规模增大,瓶颈逐渐显现,后来也考虑过Kafka,但因为在低延迟和高可靠性方面没有选择,最...

2019-07-03 19:26:04

解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案

如果使用的是 SpringBoot 多模块的项目,在发布的时候可能遇到各种各样的问题。本文归纳了以下 8 个原则和发布时经常出现的 4 个问题的解决方案,掌握了这些原则和解决方案,几乎可以解决绝大数 SpringBoot 发布问题。SpringBoot 多模块发布的 8 大原则1 在发布模块打包,而不是父模块上打包比如,以下项目目录:如果要发布 api 就直接在它的模块上打包,而不是在...

2019-06-20 15:54:57

经典面试题|讲一讲JVM的组成

JVM(Java 虚拟机)算是面试必问的问题的了,而但凡问 JVM 一定会问的第一个问题就是:讲一讲 JVM 的组成?那本文就注重讲一下 JVM 的组成。首先来说 JVM 的组成分为,整体组成部分和运行时数据区组成部分,一般开发者关注的和面试官问的都是后者,但本文会详细讲解以上两个组成部分。一、JVM 整体组成JVM 整体组成可分为以下四个部分:类加载器(ClassLoader)...

2019-04-10 09:23:05

阿里面试题BIO和NIO数量问题附答案和代码

一、问题BIO 和 NIO 作为 Server 端,当建立了 10 个连接时,分别产生多少个线程?答案: 因为传统的 IO 也就是 BIO 是同步线程堵塞的,所以每个连接都要分配一个专用线程来处理请求,这样 10 个连接就会创建 10 个线程去处理。而 NIO 是一种同步非阻塞的 I/O 模型,它的核心技术是多路复用,可以使用一个链接上的不同通道来处理不同的请求,所以即使有 10 个连接,对于...

2019-03-16 15:44:02

Java 200+ 面试题补充③ Dubbo 模块

昨天在我的 Java 面试粉丝群里,有一个只有一年开发经验的小伙伴只用了三天时间,就找到了一个年薪 20 万的工作,真是替他感到开心。他的经历告诉我们:除了加强自我实战经验之外,还要努力积累自己的理论知识。人生没有白走的路,也没有白吃的苦。你学的某一种知识,在将来某一天一定会给你惊喜!高兴之余,让我们来看,今天的内容。本文是 Java 最常见的 200+ 面试题 的第三个补充模块...

2019-03-12 09:22:14

Java 200+ 面试题补充② Netty 模块

让我们每天都能看到自己的进步。老王带你打造最全的 Java 面试清单,认真把一件事做到最好。本文是前文《Java 最常见的 200+ 面试题》的第二个补充模块,第一模块为:《Java 200+ 面试题补充 ThreadLocal 模块》。1.Netty 是什么?Netty 是一款基于 NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking...

2019-03-08 09:12:40

你真的知道 == 和 equals 的区别吗?

在 Java 中 == 和 equals 的区别,感觉只有很少的人能才完全说正确。常见的错误回答就是:== 基础类型对比的是值是否相同,引用类型对比的是引用是否相同;而 equals 则是比较的值是否相同。至于为什么说它是错的,看完本文对 == 和 equals 的解读,你就知道了。1、== 解读对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;...

2019-03-07 08:38:47

Java 200+ 面试题补充 ThreadLocal 模块

本文是前文《Java 最常见的 200+ 面试题》的第一个补充模块。让我们每天都有进步,老王带你打造最全的 Java 面试清单,认真把一件事做到极致。1.ThreadLocal 是什么?ThreadLocal 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,适用于各个线程不共享变量值的操...

2019-03-07 08:22:03

Java 208 道面试题:Java 基础模块答案

目前市面上的面试题存在两大问题:第一,题目太旧好久没有更新了,还都停留在2010年之前的状态;第二,近几年JDK更新和发布都很快,Java的用法也变了不少,加上Java技术栈也加入了很多新的框架,比如SpringBoot、SpringCloud等,但类似的面试题却极少。相比与这些问题,我的这208道面试题,包含了以下4个特点:披沙拣金提炼出每个Java模块中...

2019-03-05 11:39:29

JVM(六)为什么新生代有两个Survivor分区?

本文会使用排除法的手段,来讲解新生代的区域划分,从而让读者能够更清晰的理解分代回收器的原理,在开始之前我们先来整体认识一下分代收集器。分代收集器会把内存空间分为:老生代和新生代两个区域,而新生代又会分为:Eden 区和两个 Survivor区(From Survivor、To Survivor),来看内存空间分布图,如下:*(图片来自 fancydeepin)*可以看出 Eden 和 Surviv...

2019-02-22 09:25:36

程序员精美简历Top榜—面试必备

听说你最近打算换工作?听说你和好工作之间,只差一个漂亮的简历模板?人们常说“金三银四”,一年之际在于春。不管你是主动离职,还是“被离职”(稳住,我们能赢!),趁着大好时光和对新年的憧憬,再找一个更好的工作吧。凡事预则立,不预则废。面试也是一样,除了腻害的编程技术以外,要怎么在茫茫的竞争者中脱颖而出呢?或许你需要一个漂亮的简历,让面试官眼前一亮的Surprise,第一印象往往是成功开端,所以下来...

2019-02-14 14:33:22

JVM(五)垃圾回收器的前世今生

全文共 2195 个字,读完大约需要 8 分钟。如果垃圾回收的算法属于内存回收的方法论的话,那本文讨论的垃圾回收器就属于内存回收的具体实现。因为不同的厂商(IBM、Oracle),实现的垃圾回收器各不相同,而本文要讨论的是 Oracle 的 HotSpot 虚拟机所使用的垃圾回收器。常用垃圾回收器,如下图所示:- 新生代回收器:Serial、ParNew、Parallel Scavenge- 老...

2019-02-13 09:53:37

JVM(四)垃圾回收的实现算法和执行细节

全文共 1890 个字,读完大约需要 6 分钟。上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点和安全区域等。因为各个平台的虚拟机操作内存的方法各不相同,且牵扯大量的程序实现细节,所以本文不会过多的讨论算法的具体实现,只会介绍几种算法思想及发展过程。垃圾回收算法1、标记-清除算法标记...

2019-01-25 09:30:03

JVM(三)对象的生死判定和算法详解

好的文章是能把各个知识点,通过逻辑关系串连起来,让人豁然开朗的同时又记忆深刻。导读:对象除了生死之外,还有其他状态吗?对象真正的死亡,难道只经历一次简单的判定?如何在垂死的边缘“拯救”一个将死对象?判断对象的生死存活都有那些算法?本文带你一起找到这些答案。在正式开始之前,我们先来了解一下垃圾回收。GC介绍**GC:**Garbage Collection,中文翻译为垃圾回收。GC的历...

2019-01-21 09:30:08

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 图书勋章
    图书勋章
    CSDN技术图书作者专属勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。