T5大牛带你解析:如何实现分布式技术

2019-04-24
阅读 6 分钟
743
1.分布式事务 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案。 分布式锁的解决方案大致有以下几种: 基于数据库实现基于缓存(redis,memcached 等)实现基于 Zookeeper 实现2.1. 基于数据库实现分布式锁实现 创建表 CREATE TABLE methodLock (id int(11) ...

Dubbo 支持哪些序列化协议?

2019-04-22
阅读 2 分钟
1.6k
面试官心理分析上一个问题,说说 dubbo 的基本工作原理,那是你必须知道的,至少要知道 dubbo 分成哪些层,然后平时怎么发起 rpc 请求的,注册、发现、调用,这些是基本的。

说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?

2019-04-20
阅读 2 分钟
1.4k
面试官心理分析MQ、ES、Redis、Dubbo,上来先问你一些思考性的问题、原理,比如 kafka 高可用架构原理、es 分布式架构原理、redis 线程模型原理、Dubbo 工作原理;之后就是生产环境里可能会碰到的一些问题,因为每种技术引入之后生产环境都可能会碰到一些问题;再来点综合的,就是系统设计,比如让你设计一个 MQ、设计一...

Git让你从入门到精通,看这一篇就够了!

2019-04-19
阅读 22 分钟
6.1k
集中化的版本控制系统,诸如 CVS,Subversion 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

49个Spring经典面试题总结,附带答案,赶紧收藏

2019-04-18
阅读 12 分钟
1k
1.2. 什么是 Spring Framework?Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。1.3. 列举 Spring Framew...

阿里面试题,深入理解Java类加载机制

2019-04-16
阅读 8 分钟
3.1k
加载(Loading)验证(Verification)准备(Preparation)解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading)其中解析过程在某些情况下可以在初始化阶段之后再开始,这是为了支持 Java 的动态绑定。

深入理解JVM垃圾收集机制,下次面试你准备好了吗

2019-04-15
阅读 9 分钟
1.1k
程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。垃圾回收主要是针对 Java 堆和方法区进行。

阿里面试100%问到,JVM性能调优篇

2019-04-13
阅读 15 分钟
2.1k
JVM 调优概述性能定义吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动。内存占用 - 垃圾收集器流畅运行所需要的内存数量。调优原则GC 优化的两个目标:

缓存与数据库双写,不一致问题及解决方案

2019-04-12
阅读 4 分钟
1.2k
面试题剖析一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。

当面试官问线程池时,你应该知道些什么?

2019-04-11
阅读 9 分钟
1.1k
为什么要用线程池?降低资源消耗通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到...

Java高并发缓存架构,缓存雪崩、缓存穿透之谜

2019-04-10
阅读 2 分钟
1.4k
面试官心理分析其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。

Java并发编程之原子变量

2019-04-09
阅读 7 分钟
1.1k
原子更新基本类型AtomicBoolean - 原子更新布尔类型。AtomicInteger - 原子更新整型。AtomicLong - 原子更新长整型。示例:

分门别类总结Java中的各种锁,让你彻底记住

2019-04-08
阅读 15 分钟
871
对于Synchronized而言,也是一种非公平锁。由于其并不像ReentrantLock是通过 AQS 的来实现线程调度,所以并没有任何办法使其变成公平锁。

Java同步容器和并发容器

2019-04-04
阅读 10 分钟
1.8k
Vector、Stack、HashTableVector 实现了 List 接口,Vector 实际上就是一个数组,和 ArrayList 类似,但是 Vector 中的方法都是 synchronized 方法,即进行了同步措施。Stack 也是一个同步容器,它的方法也用 synchronized 进行了同步,它实际上是继承于 Vector 类。HashTable 实现了 Map 接口,它和 HashMap 很相似,但...

终于有人把Java内存模型说清楚了

2019-04-03
阅读 4 分钟
910
内部原理JVM 中试图定义一种 JMM 来屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。

并发机制的底层实现

2019-04-02
阅读 7 分钟
737
concurrent 包的实现由于 Java 的 CAS 同时具有 volatile 读和 volatile 写的内存语义,因此 Java 线程之间的通信现在有了下面四种方式:

Java线程小刀牛试

2019-04-01
阅读 17 分钟
841
线程简介什么是线程现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。

透彻讲解,Java线程的6种状态及切换

2019-03-28
阅读 3 分钟
1.6k
线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。

Java进程和线程关系及区别

2019-03-27
阅读 1 分钟
1.3k
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

ElasticSearch写入数据的工作原理是什么?

2019-03-26
阅读 5 分钟
855
面试官心理分析问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理,因为用 es 无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es 在干什么,那你真的是......

ElasticSearch是如何实现分布式的?

2019-03-25
阅读 3 分钟
1.5k
面试官心理分析在搜索这块,lucene 是最流行的搜索库。几年前业内一般都问,你了解 lucene 吗?你知道倒排索引的原理吗?现在早已经 out 了,因为现在很多项目都是直接用基于 lucene 的分布式搜索引擎—— ElasticSearch,简称为 es。

如果让你写一个消息队列,该如何进行架构设计啊?

2019-03-23
阅读 1 分钟
1.6k
你有没有对某一个消息队列做过较为深入的原理的了解,或者从整体了解把握住一个消息队列的架构原理。看看你的设计能力,给你一个常见的系统,就是消息队列系统,看看你能不能从全局把握一下整体架构设计,给出一些关键点出来。说实话,问类似问题的时候,大部分人基本都会蒙,因为平时从来没有思考过类似的问题,大多数...

如何解决消息队列的延时以及过期失效问题?

2019-03-22
阅读 2 分钟
1.7k
面试官心理分析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是这整个就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,导致比如 RabbitMQ 设置了消息过期...

如何保证消息队列的顺序性?

2019-03-21
阅读 2 分钟
2.4k
面试官心理分析其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。

如何保证消息队列的可靠性传输?

2019-03-20
阅读 4 分钟
1.7k
面试官心理分析这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。

阿里面试题剖析,如何保证消息不被重复消费?

2019-03-19
阅读 2 分钟
2.2k
面试官心理分析其实这是很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。

面试题剖析,如何保证消息队列的高可用?

2019-03-18
阅读 4 分钟
830
面试官心理分析如果有人问到你 MQ 的知识,高可用是必问的。上一讲提到,MQ 会导致系统可用性降低。所以只要你用了 MQ,接下来问的一些要点肯定就是围绕着 MQ 的那些缺点怎么来解决了。

Redlock:Redis分布式锁最牛逼的实现

2019-03-14
阅读 5 分钟
2.9k
普通实现说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下:

面试官问我,Redis分布式锁如何续期?懵了。

2019-03-13
阅读 3 分钟
2k
前言上一篇[面试官问我,使用Dubbo有没有遇到一些坑?我笑了。]之后,又有一位粉丝和我说在面试过程中被虐了.鉴于这位粉丝是之前肥朝的粉丝,而且周一又要开启新一轮的面试,为了回馈他长期以来的支持,所以连夜写了本篇,希望能对他接下来的面试有所帮助.

Java程序员,你的简历到底问题在哪?

2019-03-12
阅读 2 分钟
1.6k
引言自从帮人修改简历这个业务拓展以后,找我改简历的人,已经预约到2个月以后了,有些朋友我没有回复是因为,根本没按帖子里的要求发信息,我实在没那么多时间一个个问过去!