• 欢迎访问马东东的博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

一线公司笔试面试题

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更……

高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较

高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较

数据主从同步的由来互联网的很多业务,特别是在高并发的场景下,基本都是读远远大于写,如果数据库读和写的压力都同在一台主机上,这显然不太合理。于是,把一台数据库主机分为单独的一台写主库(主要负责写操作),而把读的数据库压力分配给读的从库,而且读从库可以变为多台,这就是读写分离的典型场景如下:为了进一步的降低数据库端的压力(高并……

阿里P8架构师谈:分布式数据库数据一致性的原理、与技术实现方案

阿里P8架构师谈:分布式数据库数据一致性的原理、与技术实现方案

背景可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越Paxos。在大数据场景下,分布式数据库的数据一致性管理是……

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll……

分布式消息系列:详解RocketMQ的架构设计、关键特性、与应用场景

分布式消息系列:详解RocketMQ的架构设计、关键特性、与应用场景

内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景RocketMQ的简介RocketMQ一个纯java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会……

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

谈到并发编程就不得不提到NIO,以及相关的Java NIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及Java NIO框架选型。高并发编程系列高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK……

高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解

高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解

通常我们所说的并发包也就是java.util.concurrent,Java并发编程集中在这个并发包种,主要包含:Java并发工具类和并发容器等。今天主要介绍concurrent包的内容以及4大并发工具类。并发工具包1.并发工具类提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、Cyc……

高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景

高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景

并发容器的由来在Java并发编程中,经常听到Java集合类,同步容器、并发容器,那么他们有哪些具体分类,以及各自之间的区别和优劣呢?只有把这些梳理清楚了,你才能真正掌握在高并发的环境下,正确使用好并发容器,我们先从Java集合类,同步容器谈起。1.什么是同步容器Java的集合容器框架中,主要有四大类别:List、Set、Qu……

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类:公平锁/非公平锁可重入锁独享锁/共享锁乐观锁/悲观锁分段锁自旋锁乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用。1.乐观锁顾名思义,就是很……

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支……

并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项

并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项

并发编程系列:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景线程池的缘由java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定的时间内由系统统一管理,而不是在执行时创……

高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

多线程的缘由在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更”节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段……

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

JVM系列直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置JVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full ……

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT之JVM系列直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。常见的垃圾收集器有3类:1.新生代的收集器包括:……

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

BAT必考JVM系列专题 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除……

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核。BAT必考JVM系列专题1.JVM内存模型2.JVM垃圾回收算法3.JVM垃圾回收器4.JVM参数详解5.JVM性能调优JVM内存结构由上图可以清楚的看到JVM的内存空间分为3……

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM垃圾收集器。我先从JVM收集器的发展过程谈起,然后再聚焦在G1收集器,从G1的内存模型,再到G1的回收流程,最后再谈谈G1……

阿里蚂蚁金服中间件(Java 4轮面试题含答案):Redis缓存+线程锁+微服务等

阿里蚂蚁金服中间件(Java 4轮面试题含答案):Redis缓存+线程锁+微服务等

第一轮 说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 讲讲jdk1.7和1.8的区别? 几种内置的线程池 MySQL事务隔离级别以及MVCC机制 Redis缓存雪崩、缓存穿透以及如何解决? 分布式架构简单介绍&nbs……

阿里余额宝团队(Java 4面含答案):G1+二叉树+线上调优+MQ+Redis

阿里余额宝团队(Java 4面含答案):G1+二叉树+线上调优+MQ+Redis

Java一面 hashmap源码问题 HashMap底层结构 put操作讲一下 HashMap、HashMap如何保证线程安全、ConcurrentHashMap JVM有哪些回收算法,对应的收集器有哪些? jvm g1的内存模型讲一下,G1和CMS收集器的区别?以及G1收集器对CMS的改进?&nb……

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制

摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介……

高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈CurrentHashMap的实现原理,以及在JDK1.7和1.8的区别。内容目录:1.哈希表2.ConcurrentHash……

最新蚂蚁花呗三面题目:红黑树+并发容器+CAS+Solr+分布式+大数据

最新蚂蚁花呗三面题目:红黑树+并发容器+CAS+Solr+分布式+大数据

蚂蚁花呗一面(一个小时): Java容器有哪些?哪些是同步容器,哪些是并发容器? ArrayList和LinkedList的插入和访问的时间复杂度? java反射原理, 注解原理? 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法? HashMap在什么情况下会扩容,或者有哪些操作会导……

史上最强多线程面试44题和答案:线程锁+线程池+线程同步等

史上最强多线程面试44题和答案:线程锁+线程池+线程同步等

1、并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。实现可见性的方法:synchronized或者Lock:保证同一个时刻只有……

京东4面(Java研发):事务隔离+乐观锁+HashMap+秒杀设计+微服务

京东4面(Java研发):事务隔离+乐观锁+HashMap+秒杀设计+微服务

一面(基础面:约1个小时) 自我介绍,主要讲讲做了什么和擅长什么 springmvc和spring-boot区别 @Autowired的实现原理 Bean的默认作用范围是什么?其他的作用范围? 索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较? Java线……

天猫研发团队(4面全题目):并发压测+Mina+事务+集群+秒杀架构

天猫研发团队(4面全题目):并发压测+Mina+事务+集群+秒杀架构

天猫高级Java一面 常见集合类的区别和适用场景 并发容器了解哪些? 如何判断链表是否有环 concurrentHashMap如何实现 集群服务器 如何application 共享 JAVA网络编程中:BIO、NIO、AIO的区别和联系 jvm内存模型jmm 知道的全讲讲&nbs……

阿里集团中间件4面:并发类+RocketMQ+Java锁+分布式架构

阿里集团中间件4面:并发类+RocketMQ+Java锁+分布式架构

一面: 自我介绍 擅长哪方面的技术? Java有哪些锁种类?(乐观锁&悲观锁、可重入锁&Synchronize等) 比较重要的数据结构,如链表,队列,栈的基本理解及大致实现 J.U.C下的常见类的使用。 ThreadPool的深入考察; BlockingQueue的使用 J……

史上最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等

史上最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等

1.Dubbo是什么?Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。RPC 指的是远程调用协议,也就是说两个服务器交互数据。2.Dubbo的由来?互联网的快速发展,Web应用程序的规模不断扩大,一般会经历如下四个发展阶段。……

最新拼多多技术部面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀

最新拼多多技术部面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀

拼多多Java一面 简短自我介绍 事务的ACID,其中把事务的隔离性详细解释一遍 脏读、幻影读、不可重复读 红黑树、二叉树的算法 平常用到哪些集合类?ArrayList和LinkedList区别?HashMap内部数据结构?ConcurrentHashMap分段锁? jdk1.8中,对ha……

Java程序员从阿里拿到offer回来,这些面试题你会吗?

Java程序员从阿里拿到offer回来,这些面试题你会吗?

前不久刚从阿里面试回来,为了这场面试可以说准备了一个半月,做的准备就是刷题和看视频看书充实自己的技术,话说是真难啊,不过还算顺利拿到了offer,有很多面试题我已经记不起来了,这些是当天回家整理好的,下面我来跟大家一起分享一下。首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过……

蚂蚁金服4轮面经(Java研发):G1收集器+连接池+分布式架构

蚂蚁金服4轮面经(Java研发):G1收集器+连接池+分布式架构

一面 线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少? 数据库连接池介绍下,底层实现说下 hashset底层实现,hashmap的put操作过程 说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点?&……

最新阿里内推高级Java面试题

最新阿里内推高级Java面试题

阿里Java一面题目osi七层网络模型,五层网络模型,每次层分别有哪些协议死锁产生的条件, 以及如何避免死锁,银行家算法,产生死锁后如何解决如何判断链表有环虚拟机类加载机制,双亲委派模型,以及为什么要实现双亲委派模型虚拟机调优参数拆箱装箱的原理JVM垃圾回收算法CMS G1hashset和hashmap的区别,haspmap的底层实现put操作,扩……

头条Java后台3面:事务+List集合+慢查询SQL+Redis+秒杀设计

头条Java后台3面:事务+List集合+慢查询SQL+Redis+秒杀设计

头条一面1.讲讲jvm运行时数据库区2.讲讲你知道的垃圾回收算法3.jvm内存模型jmm4.内存泄漏与内存溢出的区别5. select、epool 的区别?底层的数据结构是什么?6.mysql数据库默认存储引擎,有什么优点7.优化数据库的方法,从sql到缓存到cpu到操作系统,知道多少说多少8……

快手高级Java四面题目:设计模式+红黑树+Java锁+Redis等

快手高级Java四面题目:设计模式+红黑树+Java锁+Redis等

快手Java一面(一个小时十分钟)1.自我介绍2.说说B+树和B树的区别,优缺点等?3聊聊Spring,主要IOC等等4多线程JUC包下的一些常见的类,比如CountDownLatch、Semaphore等5.锁的概念,锁相关的关键字,volatile,synchronized。还比较了ReentrantLock与s……

最新蚂蚁金服4面(Java):CAP+数据强一致性+Lock锁+分布式等

最新蚂蚁金服4面(Java):CAP+数据强一致性+Lock锁+分布式等

蚂蚁金服Java一面1 自我介绍和项目2 Java的内存分区3 Java对象的回收方式,回收算法。4 CMS和G1了解么,CMS解决什么问题,说一下回收的过程。5 CMS回收停顿了几次,为什么要停顿两次。6 Java栈什么时候会发生内存溢出,Java堆呢,说一种场景,我说集合类持有对象。7 那集合类如……

史上最全Spring面试71题与答案

史上最全Spring面试71题与答案

1.什么是spring?Spring是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2.使用Spring框架的好处是什么? 轻量:Spring是轻量的,基本的版本大约2MB。……

蚂蚁三面面经(java开发岗):Java锁机制+JVM+线程池+事务+中间件

蚂蚁三面面经(java开发岗):Java锁机制+JVM+线程池+事务+中间件

 一面1、HashMap底层原理?HashTable和ConcurrentHashMap他们之间的相同点和不同点?2、由上题提到锁的问题3、MySQL的表锁&行锁&乐观锁&悲观锁,各自的使用场景4、Java线程锁有哪些,各自的优劣势5、事务四大特性6、事务的二段提交机制?7、聚簇索引&非聚簇索引8、……

支付宝Java开发四面:Ngnix+MQ队列+集群+并发抢购

支付宝Java开发四面:Ngnix+MQ队列+集群+并发抢购

 一面 介绍项目 java 线程池的实现原理,threadpoolexecutor关键参数解释 hashmap的原理,容量为什么是2的幂次 为什么要同时重写hashcode和equals ConcurrentHashMap如何实现线程安全? 介绍Java多线程的5大状态,以及状态图流转过程 介绍下Synchronized、Vola……

蚂蚁金服高级Java面试题目

蚂蚁金服高级Java面试题目

一面: JVM数据存储模型,新生代、年老代的构造? java GC算法,什么时候会触发minor gc,什么时候会触发full gc? GC 可达性分析中哪些算是GC ROOT? 你熟悉的JVM调优参数,使用过哪些调优工具? Java 有什么锁类型? 描述下线程池的处理流程? 类加载机制,一个类加载到虚拟机中一共有几个步骤,这些步骤的顺序哪些……

史上最全memcached面试26题和答案

史上最全memcached面试26题和答案

 Memcached是什么,有什么作用?Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。Memcached的作用:通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。Me……