0 架构师_橘子

高级软件架构师

我要认证

暂无相关简介

等级
TA的排名 2w+

面试官:说一下HashMap的实现原理?

哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析(JDK8会有所不同,需要了解的可自行阅读JDK8的HashMap源码)。JDK7和JDK8中HashMap的大致变化是(这其实也是一个常被问道的面试题~

2020-07-03 20:55:58

美团架构师从应用、原理、集群、拓展、源码等方面深入解析Redis

全书由:基础篇、应用篇、原理篇、集群篇、拓展篇、源码篇六部分组成总览由于文档的内容太多,所以只截取了部分内容展示,有想获取完整PDF文档的朋友:点赞后,私信【文档资料】即可(一定要记得关注我,不然没办法回复陌生人私信)基础篇Redis基础数据结构应用篇分布式锁延时队列位图HyperLogLog布隆过滤器简单限流漏斗限流...

2020-07-03 20:47:09

点赞!超详细的一份 Spring 异步任务教程

异步任务使用方式Spring 异步任务需要在相关的方法上设置@Async注解,这里为了举例,我们创建一个EmailService类,专用完成邮件服务。代码如下所示:@Slf4j@ServicepublicclassEmailService{/***异步发送任务**@throwsInterruptedException*/@SneakyThrows@Asyncpublicvoid...

2020-07-02 22:22:46

一文详解Java NIO—Buffer的使用

目录Buffer简介 Buffer的核心属性 Buffer的创建与使用(ByteBuffer为例) 总结Buffer简介缓冲区(Buffer):本质上是一个数组,用于临时保存、写入以及读取数据。在Java NIO中,该内存块包含在NIO Buffer对象当中,NIO Buffer对象还提供了一组接口来访问该内存块。根据数据类型的不同,Java为除了boolean类型之外的其余7种基本类型提供了相应类型的缓冲区,分别是ByteBuffer、CharBuffer、ShortBuffer、

2020-07-02 20:18:47

有了这份大佬总结的1000道互联网Java面试题文档,金九银十稳了

由于题目太多只能截取部分展示,有想获取这份Java面试文档的朋友:点赞后,私信【资料】即可(一定要记得关注我,不然没办法回复陌生人私信)MyBatis面试题Redis面试题MySQL面试题Zookeeper面试题Spring面试题SpringBoot面试题SpringCloud面试题RabbitMQ面试题微...

2020-07-01 21:19:32

Java界扫地僧帮你解决大厂必问两大难题:高并发与JVM

高并发:一个小伙伴最近参加某一线互联网公司的面试,被问到了一些并发相关的问题,看看大家能否答出来:(1)synchronized的CPU原语级别是如何实现的?(2)无锁、偏向锁、轻量级锁、重量级锁有什么差别,升级过程如何?(3)线程间通信,同机器进程间通信,跨机器进程间通信,各有什么方法?(4)下列三种业务,应该如何使用线程池:高并发、任务执行时间短的业务 并发不高、任务执行时间长的业务 并发高、业务执行时间长的业务(5)秒杀系统,如何能够撑住100W级别TPS(淘宝最高54万

2020-06-30 19:52:10

你必须要了解的Kubernetes

前言随着容器技术的发展,Docker近几年突然崛起,变得炙手可热,已经成为容器技术的事实标准。然而想要在生成环境中成功部署和操作容器的关键是容器编排技术,市场上有各种各样的容器编排工具(如Docker原生的Swarm),其中谷歌公司开发的Kubernetes得到开源社群的全力支援,IBM、惠普、微软、RedHat等业界巨头纷纷加入,Kubernetes已经成为GitHub上的明星开源解决方案简介Kubernetes这个名字源于希腊语,是舵手的意思,所以它的Logo既像一张渔网,又像一个罗盘。有意

2020-06-30 16:21:27

上周刚面过美团拿到offer的最新面经来了(技术三面+HR)

前言本篇题材来自我朋友的朋友,他在最近的社招中拿到美团的Offer,整体思路和面试题目由面试本人提供由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。一面:自我介绍 HashMap,ConcurrentHashMap与LinkedHashMap的区别 如何在多线程环境下使用Map,ConcurrentHashMap原理,ConcurrentHashMap如何加锁。 多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让

2020-06-29 15:25:42

jdk开发环境的搭建和配置环境变量

首先呢,先说一下JDK、JRE、JVM的区别和联系。我们正常运行程序的话只需安装JRE就行啦,如果要编译运行Java程序就得需要JKD下的bin目录下的编译工具。JDK -- java development kit (Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等 JDK安装目录里真正在运行jav...

2020-06-23 13:57:33

SpringBoot自适应异常处理

我们先来看一下Springboot的默认效果浏览器访问客户端访问划重点!!!但是绝大部分公司的代码,都是没做自适应处理的,很大一部分原因在于,你在网上搜索Springboot全局异常处理,都是搜索到这么一段代码!@ControllerAdvicepublicclassMyControllerAdvice{@ResponseBody@ExceptionHandler(value=Exception.class)publ...

2020-06-23 13:43:01

完美的实现可重入分布式锁

本篇文章将会涉及以下内容: 可重入 基于 ThreadLocal 实现方案 基于 Redis Hash 实现方案 可重入说到可重入锁,首先我们来看看一段来自 wiki 上可重入的解释:“若一个程序或子程序可以“在任意时刻被中断然后操作系统调度执行另外一段代码,这段代码又调用了该子程序不会出错”,则称其为可重入(reentrant或re-entrant)的。即当该子程序正在运行时,执行线程可以再次进入并执行它,仍然获得符合设计时预期的结果。与多线程并发执行的线程安全不同

2020-06-22 21:35:47

一文详解SpringBoot构建Docker镜像的 3 种方式

本文将介绍3种技术,通过 Maven 把 SpringBoot 应用构建成 Docker 镜像。(1)使用 spring-boot-maven-plugin 内置的build-image.(2)使用 Google 的jib-maven-plugin。(3)使用dockerfle-maven-plugin。Spring Boot 应用为了方便实践,需要一个 Spring Boot 项目。Demo 项目地址:https://github.com/davelms/medium-a...

2020-06-20 15:24:54

万字长文只为说明白:一个HTTP请求的曲折经历

从一个经典的面试题说起,输入URL到页面展现的过程: 输入URL后,会先进行域名解析。优先查找本地host文件有无对应的IP地址,没有的话去本地DNS服务器查找,还不行的话,本地DNS服务器会去找根DNS服务器要一个域服务器的地址进行查询,域服务器将要查询的域名的解析服务器地址返回给本地DNS,本地DNS去这里查询就OK了。 浏览器拿到服务器的IP地址后,会向它发送HTTP请求。HTTP请求经由一层层的处理、封装、发出之后,最终经由网络到达服务器,建立TCP/IP连接,服务器接收到请求并开始

2020-06-19 15:34:33

面试又挂了,只因被问:TCP三次握手和四次挥手

推荐阅读:TCP/IP协议族终于更新(第4版)了,世界著名计算机精选PDF美滋滋面试官:跟我讲讲TCP的三次握手和四次挥手流程,为什么是三次握手或四次挥手?面试者:额......不太记得了.....gg..那么接下来就是TCP的核心了,即TCP的可靠性依赖其:三次握手和四次挥手。先思考下这三个面试题:1、TCP 为什么三次握手而不是两次握手?2、为什么连接的时候是三次握手,关闭的时候却是四次握手?3、为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间).

2020-06-18 16:41:54

左手MongoDB,右手Redis!阿里架构师带你从入门到实战

本书针对MongoDB和Redis这两个,采用“理论+实践”的形式编写,共计45个实例。全书分为4篇:第1篇,介绍了什么是NoSQL、MongoDB和Redis相对于传统关系型数据库的优势;第1章:进入MongoDB与Redis的世界 第2章:数据存储方式的演进因为文档内容过多,所以只截取了目录部分展示。有想获取这份完整PDF文档的朋友,关注后帮忙转发一下,私信【文档资料】即可(一定要记得关注我,不然没办法回复陌生人私信)第2篇,介绍了MongoDB与Redis的安装方.

2020-06-17 19:43:30

面试官:为什么选择B+树作为数据库索引结构?谈谈你的理解

背景首先,来谈谈B树。为什么要使用B树?我们需要明白以下两个事实:【事实1】不同容量的存储器,访问速度差异悬殊。以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的。有个形象的比喻,若一次内存访问需要1秒,则一次外存访问需要1天。所以,现在的存储系统,都是分级组织的。最常用的数据尽可能放在更高层、更小的存储器中,只有在当前层找不到,才向更低层、更大的存储器中寻找。这也就解释了,当处理大规模数据的时候(指无法将数据一次性存入内存),算法的实际运行时间,往往取决于数据在不

2020-06-17 19:02:47

看完这篇,数据同步还不会,能怪谁

应用开发中,为了提升查询性能或者做服务降级方案时,我们会使用缓存作为解决方案,像分布式缓存方案,比如 Redis、Memcache等;本地缓存方案,比如 Guava、Caffeine等。如果仅仅对当前服务的执行结果的缓存,用于下次相同查询时加快查询效率来说,还相对简单一点。只需要将查询条件作为key,返回的结果作为 value 即可实现,复杂一点会加上缓存失效机制等。但还有一种可能缓存,可能是需要进行数据的同步的操作的。比如笔者之前做过的用户权限中心,由于对响应实时性方面有很大的要求,虽然使用了异步非阻

2020-06-16 20:52:09

在处理亿级数据的“定时任务”的时候,该如何缩短执行时间?

问题抽象:(1)用户会员系统;(2)用户会有分数流水,每个月要做一次分数统计,对不同分数等级的会员做不同业务处理;数据假设:(1)假设用户在100w级别;(2)假设用户日均1条流水,也就是说日增流水数据量在100W级别,月新增流水在3kW级别,3个月流水数据量在亿级别;常见解决方案:用一个定时任务,每个月的第一天计算一次。//(1)查询出所有用户uids[] = select uid from t_user;//(2)遍历每个用户foreach $..

2020-06-16 15:56:00

TCP/IP协议族终于更新(第4版)了,世界著名计算机精选PDF美滋滋

《世界著名计算机教材精选·TCP/IP协议族(第4版)》最新版进行了扩充,以体现计算机网络技术的最新发展,全书含有七大部分共30章和7个附录:第一部分介绍一些基本概念和基础底层技术;第二部分介绍网络层协议;第三部分介绍运输层协议;第四部分介绍应用层协议;第五部分介绍下一代协议,即IPv6协议;第六部分介绍网络安全问题;第七部分给出了7个附录。每章的最后都有实践安排,其中的第一部分是习题,第二部分是研究活动,要求学生或读者再查找以下课外的阅读资料。想要获取这份《世界著名.

2020-06-15 16:18:56

温故而知新,最全面的Redis面试总结

1、什么是Redis?Redis是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)2、Reids有哪些特点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大.

2020-06-15 15:19:36

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 原力突破
    原力突破
    参与《原力计划【第二季】— 打卡挑战》的文章入选【打卡挑战周榜】的博主,即可获得此勋章。
  • 原力王者
    原力王者
    在《原力计划【第二季】》活动中,入选本季总榜的博主,即可获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取