• 欢迎访问 优知学院 请加入我们的架构交流分享群优知学院-架构师进阶
  • 如果您觉得这个博客非常有看点,那么赶紧使用Ctrl+D 收藏 :优知学院 吧!

Java工程师,如何晋升为阿里P6/P7技术专家?

Java工程师,如何晋升为阿里P6/P7技术专家?
2020帮你搞定高薪工作 在竞争日益激烈的今天,掌握普通技能的Java工程师已经很难加薪升职了。 很多同学随着工作经验的增长,但是技术其实根本没有什么进展,还是局限于业务型的增删改查。问点并发以及复杂的业务场景,基本就懵逼了,连熟悉都谈不上。 这样的情况,坦率的讲,特别是在今年疫情的情况下,没有竞争力的很容易就会被裁员,更谈不上涨薪了。 原因很简单:你的工作可替代性太强。 ……继续阅读 »

陈睿 3周前 (05-18) 600浏览 0评论 4个赞

最全二叉树:完整详解二叉树的遍历以及完全二叉树等6种二叉树

最全二叉树:完整详解二叉树的遍历以及完全二叉树等6种二叉树
树在数据结构中占据了非常重要的位置,尤其是二叉树。经常是在java面试中必问的一个环节,而且二叉树的应用场景真的非常普遍,需要重点掌握好。 但是一直以来,很多同学对于二叉树的掌握都是不太全面。今天我就来谈谈二叉树,希望你喜欢这个Java数据结构与算法这个专题,认真看完后你会对二叉树会有一个比较完整的了解。 本文作者:陈睿|mikechen 优知学院创始人 重点会谈到以下几……继续阅读 »

陈睿 1个月前 (04-24) 439浏览 0评论 3个赞

Java核心技术面试宝典:深入81个大厂Java面试必考点精讲(内含面试资料包)

Java核心技术面试宝典:深入81个大厂Java面试必考点精讲(内含面试资料包)
大家好,我是陈睿,英文名mikechen,优知学院创始人 BAT架构技术500+期作者,10年+大厂技术经验 曾于阿里里巴巴作为核心技术人员,参与了淘宝最为重要的服务化拆分(也就是从垂直架构到分布式架构的演变过程),以及淘宝店铺装修、淘宝关联营销等多个关键重点项目。 曾于盛大品聚作为架构师,从0到1用时8个月打造支撑数亿级访问量的B2C商城"盛大品聚网",对标当时……继续阅读 »

陈睿 2个月前 (04-09) 2454浏览 7评论 8个赞

Java多线程与并发系列从0到1全部合集,强烈建议收藏!

Java多线程与并发系列从0到1全部合集,强烈建议收藏!
在过去的时间中,我写过Java多线程与并发的整个系列。 为了方便大家的阅读,也为了让知识更系统化,这里我单独把Java多线程与并发的整个系列一并罗列于此,希望对有用的人有用,也希望能帮助到更多的人。   以下为整个目录,希望大家喜欢!   1:最全面的Java多线程学习概述 这一篇文章呢,我认为比较重要,学习任何一个东西,首先你得学会建立完整的技能框架,建……继续阅读 »

陈睿 3个月前 (03-18) 1167浏览 0评论 4个赞

ReentrantReadWriteLock的实现原理与锁获取详解

ReentrantReadWriteLock的实现原理与锁获取详解
我们继续Java多线程与并发系列之旅,之前我们分享了Synchronized 和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。 然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如果仍使用独占锁,效率将及其低下。 针对这种情况,Java提供了读写锁——ReentrantReadWriteLock。 有点……继续阅读 »

陈睿 5个月前 (01-15) 1067浏览 0评论 2个赞

深度源码剖析AQS的实现原理

深度源码剖析AQS的实现原理
在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS。 本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程,让你对AQS的整体设计有清晰了解,让你迈出高并发编程的第一步。 AQS AQS(AbstractQueuedSynchronizer)就是一个抽象的队列同步器……继续阅读 »

陈睿 5个月前 (12-31) 1258浏览 0评论 3个赞

线程的五大状态,以及线程之间的通信与协作

线程的五大状态,以及线程之间的通信与协作
在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如: Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项 Java并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 Java并发编程系列:CountDownLatch、Semaphore等4大并发工……继续阅读 »

陈睿 11个月前 (07-03) 2220浏览 0评论 0个赞

直通BAT JVM必考题:Minor GC、Major GC、Full GC的区别

直通BAT JVM必考题:Minor GC、Major GC、Full GC的区别
Java面试过程,JVM属于必考题系列: 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景 直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参……继续阅读 »

陈睿 1年前 (2019-02-27) 3796浏览 0评论 6个赞

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

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

陈睿 1年前 (2019-02-25) 4219浏览 1评论 14个赞

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

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁
在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁……继续阅读 »

陈睿 2年前 (2018-12-04) 4509浏览 0评论 13个赞

4大JVM性能分析工具详解,及内存泄漏分析方案

4大JVM性能分析工具详解,及内存泄漏分析方案
谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表、慢查询、长事务的优化等 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结 阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则(数据库分库分表) 常用的后……继续阅读 »

陈睿 2年前 (2018-11-24) 5517浏览 0评论 5个赞

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

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

陈睿 2年前 (2018-11-17) 6867浏览 0评论 39个赞

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

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解
JVM系列 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和F……继续阅读 »

陈睿 2年前 (2018-11-15) 11329浏览 0评论 30个赞

彻底搞清楚ConcurrentHashMap的实现原理(含JDK1.7和JDK1.8的区别)

彻底搞清楚ConcurrentHashMap的实现原理(含JDK1.7和JDK1.8的区别)
ConcurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制,深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈ConcurrentHashMap的实现原理,以及在JDK1.7和1.8的区别。 为了彻底搞清楚ConcurrentHashMap的实现机制,我会先从它的底层数据实现:哈希表谈起……继续阅读 »

陈睿 2年前 (2018-11-14) 8159浏览 3评论 51个赞

Java并发容器的原理:7大并发容器详解、及使用场景

Java并发容器的原理:7大并发容器详解、及使用场景
之前谈过高并发编程系列: 高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解  高并发编程系列:4大JVM性能分析工具详解,及内存泄漏分析方案 高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) ……继续阅读 »

陈睿 2年前 (2018-11-09) 4072浏览 0评论 11个赞

Java线程池的使用方式,及核心运行原理

Java线程池的使用方式,及核心运行原理
之前谈过多线程相关的4种常用Java线程锁的特点,性能比较、使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点。 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。 为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定……继续阅读 »

陈睿 2年前 (2018-11-08) 4664浏览 0评论 16个赞

4种常用Java线程锁的特点,性能比较、使用场景

4种常用Java线程锁的特点,性能比较、使用场景
多线程的缘由 在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。 使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更"节俭"的多任务操作方式。 在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立……继续阅读 »

陈睿 2年前 (2018-11-07) 8996浏览 1评论 15个赞

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

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景
直通BAT之JVM系列 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 常见的垃……继续阅读 »

陈睿 2年前 (2018-11-05) 6255浏览 3评论 23个赞

线程池的实现原理、优点与风险、以及四种线程池实现

线程池的实现原理、优点与风险、以及四种线程池实现
为什么需要线程池 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存。那么有没有一种方法能让线程运行完后不立即销毁,而是让线程重复使用,继续执行其他的任……继续阅读 »

陈睿 2年前 (2018-10-20) 4108浏览 2评论 15个赞

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

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

陈睿 2年前 (2018-09-29) 8217浏览 2评论 26个赞

Java必考题目之JVM面试题目和答案

Java必考题目之JVM面试题目和答案
JVM内存模型 首先我们来了解一下JVM的内存模型的怎么样的: 1.堆:存放对象实例,几乎所有的对象实例都在这里分配内存 堆得内存由-Xms指定,默认是物理内存的1/64;最大的内存由-Xmx指定,默认是物理内存的1/4。 默认空余的堆内存小于40%时,就……继续阅读 »

陈睿 2年前 (2018-09-20) 7343浏览 1评论 27个赞

最全多线程经典面试题和答案

最全多线程经典面试题和答案
Java实现线程有哪几种方式? 1、继承Thread类实现多线程 2、实现Runnable接口方式实现多线程 3、使用ExecutorService、Callable、Future实现有返回结果的多线程 多线程同步有哪几种方法? Synchronized关键字,Lock锁实现,……继续阅读 »

陈睿 2年前 (2018-09-20) 7486浏览 6评论 61个赞

阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制

阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制
不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型、内存分配,以及回收算法机制等,这些都是必考、必会技能。 JVM内存模型 JVM内存模型可以分为两个部分,如下图所示,堆和方法区是所有线程共有的,而虚拟机栈,本地方法栈和程序计数器则是线程私有的。 ……继续阅读 »

陈睿 2年前 (2018-09-05) 3249浏览 1评论 4个赞