自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

转载 LinkedHashMap,源码解读就是这么简单

概述 LinkedHashMap是HashMap的子类,它的大部分实现与HashMap相同,两者最大的区别在于,HashMap的对哈希表进行迭代时是无序的,而LinkedHashMap对哈希表迭代是有序的,LinkedHashMap默认的规则是,迭代输出的结果保持和插入key-value ...

2019-09-06 14:47:00 124

转载 HashMap框架源码深入解读,面试不用愁

在Java Collections Framework的体系中中,主要有两个重要的接口,一个是List、Set和Queue所属的Collection,还有一个就是Map接口了。在上一篇文章中介绍了List接口,它适用于按数值索引访问元素的情形。本文中将介绍的Map则提供了一个更通用的元素存储方...

2019-09-05 14:42:00 159

转载 ArrayList、LinkedList和Vector的源码解析,带你走近List的世界

java.util.List接口是Java Collections Framework的一个重要组成部分,List接口的架构图如下: 本文将通过剖析List接口的三个实现类——ArrayList、LinkedList和Vector的源码,带你走近List的世界。 ArrayList ...

2019-09-04 16:16:00 160

转载 面试官常问的Nginx的那几个问题?

什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 目前使用的最多的web服务器或者代理服务器,像淘宝、新浪、网易、迅雷等都在使用...

2019-09-03 14:52:00 133

转载 面试前必须要知道的21道Redis面试题

1、使用redis有哪些好处? 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 支持丰富数据类型,支持string,list,set,sorted set,hash 支持事务,操作都是原子性,所谓的原子性就是对数据...

2019-09-02 20:42:00 72

转载 千万级MySQL数据库建立索引,提高性能的秘诀

实践中如何优化MySQL 实践中,MySQL的优化主要涉及SQL语句及索引的优化、数据表结构的优化、系统配置的优化和硬件的优化四个方面,如下图所示: SQL语句及索引的优化 SQL语句的优化 SQL语句的优化主要包括三个问题,即如何发现有问题的SQL、如何分析SQL的执行计划...

2019-08-31 14:40:00 162

转载 缓存内功心法:缓存基础整理

缓存雪崩 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间。所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 解决方法: 一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。 给每一个...

2019-08-30 21:18:00 88

转载 数据库内功心法:数据库基本理论

1、数据库范式 第一范式:列不可分,eg:【联系人】(姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF; 第二范式:有主键,保证完全依赖。eg:订单明细表【OrderDetail】(OrderID,ProductID,UnitPrice,Disco...

2019-08-29 16:44:00 72

转载 MyBatis面试题集合,90%会遇到这些问题

1、#{}和${}的区别是什么? ${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在...

2019-08-28 16:04:00 68

转载 Spring面试题总结的很全面,附带超详细答案

1、什么是Spring? Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促...

2019-08-27 15:05:00 72

转载 Jsp和Servlet有什么区别?

Servlet接口中有哪些方法? Servlet接口定义了5个方法,其中前三个方法与Servlet生命周期相关: void init(ServletConfig config) throws ServletException void service(ServletReques...

2019-08-26 16:38:00 100

转载 今日头条3面,被泄露的Java最新面试题

一、面试第 1 轮 1. linux 网络模型 2. b+树 3. 阻塞队列 4. redis 和 MongoDB 的区别。几个概念对比,还有底层实现。 5. 算法题: merge k sorted list,时间复杂度如何? 6. HashMap 如果一直 put 元素会怎...

2019-08-24 14:18:00 75

转载 NIO你真正了解多少?

解释一下java.io.Serializable接口 类通过实现 Java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。 IO操作最佳实践 使用有缓冲的IO类,不要单独读取字节或字符 使用NIO和NIO 2或者A...

2019-08-23 15:52:00 60

转载 2019年JVM最新面试题,必须收藏它

1、JVN内存结构 方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。 Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯...

2019-08-22 15:54:00 920

转载 最全面的阿里多线程面试题,你能回答几个?

1、什么是进程,什么是线程,为什么需要多线程编程? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位; 线程是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位。线程的划分尺度小于进程,这使得多线程程序...

2019-08-21 17:06:00 1941

转载 Java面试题:Java中的集合及其继承关系

关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此.这里我们看这张图即可: 1、List、Set、Map是否继承自Collection接口? List、Set 是,Map 不是。Map是键值对映射容器,与List和Set有明显的区...

2019-08-20 17:37:00 81

转载 花了近十年的时间,整理出史上最全面Java面试题

1、String 是最基本的数据类型吗? 不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(re...

2019-08-19 16:41:00 285

转载 Java内功心法,深入解析面向对象

什么是对象 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。 类的实例化可生成对象,一个对象的生命周期包括三个阶段:生成、使用、消除。 当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动...

2019-08-17 17:28:00 49

转载 Kafka Network层解析,还是有人把它说清楚了

我们知道kafka是基于TCP连接的。其并没有像很多中间件使用netty作为TCP服务器。而是自己基于Java NIO写了一套。 几个重要类 先看下Kafka Client的网络层架构。 本文主要分析的是Network层。 Network层有两个重要的类:Select...

2019-08-16 15:15:00 135

转载 避免HBase PageFilter踩坑,这几点你必须要清楚

有这样一个场景,在HBase中需要分页查询,同时根据某一列的值进行过滤。 不同于RDBMS天然支持分页查询,HBase要进行分页必须由自己实现。据我了解的,目前有两种方案, 一是《HBase权威指南》中提到的用PageFilter加循环动态设置startRow实现,详细见这里。但这种方法效率...

2019-08-15 16:10:00 211

转载 我是如何拿下阿里、头条、滴滴的,最终还是选择去了阿里巴巴。(上)

本人两年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、滴滴等公司offer,岗位是Java后端开发,最终选择去了阿里巴巴。 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。另外,目前在阿...

2019-08-14 17:17:00 47

转载 面试官:来谈谈限流-RateLimiter源码分析

RateLimiter有两个实现类:SmoothBursty和SmoothWarmingUp,其都是令牌桶算法的变种实现,区别在于SmoothBursty加令牌的速度是恒定的,而SmoothWarmingUp会有个预热期,在预热期内加令牌的速度是慢慢增加的,直到达到固定速度为止。其适用场景是,...

2019-08-13 16:55:00 93

转载 面试官说:来谈谈限流-从概念到实现,一问你就懵逼了?

后端服务的接口都是有访问上限的,如果外部QPS或并发量超过了访问上限会导致应用瘫痪。所以一般都会对接口调用加上限流保护,防止超出预期的请求导致系统故障。 从限流类型来说一般来说分为两种:并发数限流和qps限流,并发数限流就是限制同一时刻的最大并发请求数量,qps限流指的是限制一段时间内发生的...

2019-08-12 14:42:00 213

转载 Spring Boot @EnableAutoConfiguration解析

刚做后端开发的时候,最早接触的是基础的spring,为了引用二方包提供bean,还需要在xml中增加对应的包<context:component-scan base-package="xxx" />或者增加注解@ComponentScan({ "xxx"})。当时觉得挺urgly...

2019-08-10 15:19:00 89

转载 Java引用类型原理深度剖析,看完文章,90%的人都收藏了

Java中一共有4种引用类型(其实还有一些其他的引用类型比如FinalReference):强引用、软引用、弱引用、虚引用。其中强引用就是我们经常使用的Object a = new Object();这样的形式,在Java中并没有对应的Reference类。 本篇文章主要是分析软引用、弱引...

2019-08-09 14:26:00 79

转载 死磕Synchronized底层实现--重量级锁

本文为死磕Synchronized底层实现第三篇文章,内容为重量级锁实现。 本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容包括偏向锁、轻量级锁、重量级锁的加锁、解锁、锁升级流程的原理及源码分析,希望给在研究synchronized路上的同学一些帮助。 ...

2019-08-08 15:14:00 166

转载 一文让你读懂Synchronized底层实现,秒杀面试官

本文为死磕Synchronized底层实现第三篇文章,内容为轻量级锁实现。 轻量级锁并不复杂,其中很多内容在偏向锁一文中已提及过,与本文内容会有部分重叠。 另外轻量级锁的背景和基本流程在概论中已有讲解。强烈建议在看过两篇文章的基础下阅读本文。 本系列文章将对HotSpot的synchro...

2019-08-07 15:33:00 43

转载 面试题深入解析:Synchronized底层实现

本文为synchronized系列第二篇。主要内容为分析偏向锁的实现。 偏向锁的诞生背景和基本原理在上文中已经讲过了,强烈建议在有看过上篇文章的基础下阅读本文。 本文将分为几块内容: 1.偏向锁的入口 2.偏向锁的获取流程 3.偏向锁的撤销流程 4.偏向锁的释放流程 5.偏...

2019-08-06 17:19:00 106

转载 死磕Synchronized底层实现,面试你还怕什么?

关于synchronized的底层实现,网上有很多文章了。但是很多文章要么作者根本没看代码,仅仅是根据网上其他文章总结、照搬而成,难免有些错误;要么很多点都是一笔带过,对于为什么这样实现没有一个说法,让像我这样的读者意犹未尽。 本系列文章将对HotSpot的synchronized锁实现进行...

2019-08-05 17:28:00 42

转载 面试必问:读写一致性,你需要思考的问题

先说明下,本文要讨论的多线程读写是指一个线程写,一个或多个线程读,不包括多线程同时写的情况。 试想下这样一个场景:一个线程往hashmap中写数据,一个线程往hashmap中读数据。 这样会有问题吗?如果有,那是什么问题? 相信大家都知道是有问题的,但至于到底是什么问题,可能就不是那么显而...

2019-07-30 15:11:00 62

转载 linux内核级同步机制--futex

在面试中关于多线程同步,你必须要思考的问题 一文中,我们知道glibc的pthread_cond_timedwait底层是用linux futex机制实现的。 理想的同步机制应该是没有锁冲突时在用户态利用原子指令就解决问题,而需要挂起等待时再使用内核提供的系统调用进行睡眠与唤醒。换句话说,在...

2019-07-29 17:44:00 142

转载 面试中关于多线程同步,你必须要思考的问题

ReentrantLock的实现网上有很多文章了,本篇文章会简单介绍下其java层实现,重点放在分析竞争锁失败后如何阻塞线程。 因篇幅有限,synchronized的内容将会放到下篇文章。 Java Lock的实现 ReentrantLock是jdk中常用的锁实现,其实现逻辑主语基于AQ...

2019-07-24 17:41:00 165

转载 面试官问:多线程同步内部如何实现的,你知道怎么回答吗?

线程同步可以说在日常开发中是用的很多, 但对于其内部如何实现的,一般人可能知道的并不多。 本篇文章将从如何实现简单的锁开始,介绍linux中的锁实现futex的优点及原理,最后分析java中同步机制如wait/notify, synchronized, ReentrantLock。 自己实...

2019-07-23 17:33:00 65

转载 分布式Redis深度历险-Cluster

本文为分布式Redis深度历险系列的第三篇,主要内容为Redis的Cluster,也就是Redis集群功能。 Redis集群是Redis官方提供的分布式方案,整个集群通过将所有数据分成16384个槽来进行数据共享。 集群基础实现 一个集群由多个Redis节点组成,不同的节点通过...

2019-07-22 15:52:00 56

转载 分布式Redis深度历险-Sentinel

上一篇介绍了Redis的主从服务器之间是如何同步数据的。试想下,在一主一从或一主多从的结构下,如果主服务器挂了,整个集群就不可用了,单点问题并没有解决。Redis使用Sentinel解决该问题,保障集群的高可用。 如何保障集群高可用 保障集群高可用,要具备如下能力: 能监...

2019-07-20 14:35:00 53

转载 分布式Redis深度历险-复制

Redis深度历险分为两个部分,单机Redis和分布式Redis。 本文为分布式Redis深度历险系列的第一篇,主要内容为Redis的复制功能。 Redis的复制功能的作用和大多数分布式存储系统一样,就是为了支持主从设计,主从设计的好处有以下几点: 读写分离,提高读写性能 数据...

2019-07-19 15:02:00 44

转载 用 Hystrix 构建高可用服务架构

1.Hystrix 是什么? 在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的。 Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。 Hystrix 通过将依赖...

2019-07-18 17:43:00 39

转载 基于Spring Cloud Netflix的TCC柔性事务和EDA事件驱动示例

Solar Spring Cloud为开发者提供了快速构建分布式系统中的一些常见工具,如分布式配置中心,服务发现与注册中心,智能路由,服务熔断及降级,消息总线,分布式追踪的解决方案等。 本次实战以模拟下单流程为背景,结合Spring Cloud Netflix和分布式事务解决方案中Try...

2019-07-17 15:44:00 66

转载 spring boot入门,看这篇文章就够了

一、SpringBoot入门 1、基本介绍 简化Spring应用开发的一个框架、整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 优点: 快速创建独立运行的Spring项目以及与主流框架集成; 使用嵌入式的Servlet容器,应用无需打成...

2019-07-16 16:09:00 47

转载 面试官常问的Nginx的几个问题

1.什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 目前使用的最多的web服务器或者代理服务器,像淘宝、新浪、网易、迅雷等都在...

2019-07-15 15:14:00 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除