Volatile属于面试必问,重要性不言而喻,今天重点来谈谈:Volatile的实现原理。
本节课重点会讲到以下5点:
1.Volatile关键字
2.Java内存模型
3.Volatile内存模型可见性
4.Volatile的工作原理
5.Volatile的源码案例
在谈Volatile之前,我们先回顾下Java内存模型的三要素:原子性、可见性、有序性,也就是大……继续阅读 »
陈睿
2年前 (2020-07-01) 1739浏览 0评论
9个赞
为什么需要提升核心竞争力?
在竞争日益激烈的今天,掌握普通技能的Java工程师已经很难加薪升职了。
很多同学随着工作经验的增长,但是技术其实根本没有什么进展,还是局限于业务型的增删改查。问点并发以及复杂的业务场景,基本就懵逼了,连熟悉都谈不上。
这样的情况,坦率的讲,特别是在今年疫情的情况下,没有竞争力的很容易就会被裁员,更谈不上涨薪了。
原因很简单:你的工作可替代性太强。……继续阅读 »
陈睿
2年前 (2020-05-18) 2993浏览 2评论
6个赞
很多同学想进大厂,特别是刚毕业的,以及工作年限短的,不要有任何侥幸心理,踏踏实实的把基础弄扎实了,这是你通往高薪之路的唯一正确姿势。
今年,优知学院将帮助更多同学进大厂,首先从面试题做起~
好了,不多说了,直接上正菜。
01 Mysql
1. 数据库三范式及判断、E-R图
2. innodb和myisam存储引擎的区别
3. 索引分类(主键、唯一索引、全文索引、……继续阅读 »
陈睿
2年前 (2020-05-03) 5473浏览 1评论
13个赞
树在数据结构中占据了非常重要的位置,尤其是二叉树。经常是在java面试中必问的一个环节,而且二叉树的应用场景真的非常普遍,需要重点掌握好。
但是一直以来,很多同学对于二叉树的掌握都是不太全面。今天我就来谈谈二叉树,希望你喜欢这个Java数据结构与算法这个专题,认真看完后你会对二叉树会有一个比较完整的了解。
本文作者:陈睿|mikechen 优知学院创始人
重点会谈到以下几……继续阅读 »
陈睿
2年前 (2020-04-24) 2428浏览 0评论
5个赞
现场Java 五面题目,文末有福利:阿里蚂蚁金服必考题及答案
拼多多Java一面
HashMap和HashTable以及CocurrentHashMap详细说明
网络IO模型?什么是多路复用IO……继续阅读 »
陈睿
2年前 (2020-04-10) 6466浏览 1评论
3个赞
大家好,我是陈睿,英文名mikechen,优知学院创始人
BAT架构技术500+期作者,10年+大厂技术经验
曾于阿里里巴巴作为核心技术人员,参与了淘宝最为重要的服务化拆分(也就是从垂直架构到分布式架构的演变过程),以及淘宝店铺装修、淘宝关联营销等多个关键重点项目。
曾于盛大品聚作为架构师,从0到1用时8个月打造支撑数亿级访问量的B2C商城"盛大品聚网",对标当时……继续阅读 »
陈睿
2年前 (2020-04-09) 5934浏览 7评论
10个赞
在过去的时间中,我写过Java多线程与并发的整个系列。
为了方便大家的阅读,也为了让知识更系统化,这里我单独把Java多线程与并发的整个系列一并罗列于此,希望对有用的人有用,也希望能帮助到更多的人。
以下为整个目录,希望大家喜欢!
1:最全面的Java多线程学习概述
这一篇文章呢,我认为比较重要,学习任何一个东西,首先你得学会建立完整的技能框架,建……继续阅读 »
陈睿
2年前 (2020-03-18) 4379浏览 0评论
5个赞
过去2年我持续分享了BAT TMD为代表的大厂最新面试题目,特别是蚂蚁金服、天猫、淘宝、头条、拼多多等Java面试题目。
过去2年,我已经成功的帮助了部分同学进入了大厂。
2020开始,我依然会为大家带来最新的大厂现场面试专场题目,希望能帮助到更多的同学。
回到正题,过完年后金三银四将正式到来,这是一个……继续阅读 »
陈睿
3年前 (2020-01-17) 6135浏览 2评论
6个赞
我们继续Java多线程与并发系列之旅,之前我们分享了Synchronized 和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。
然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如果仍使用独占锁,效率将及其低下。
针对这种情况,Java提供了读写锁——ReentrantReadWriteLock。
有点……继续阅读 »
陈睿
3年前 (2020-01-15) 3128浏览 0评论
4个赞
在微服务架构中,分布式通信、分布式事务、分布式锁等问题是亟待解决的几个重要问题。
Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架。确切的说,Spring Cloud是一个大容器(而不是一个框架),它可以将通过集成一些好的微服务框架,从而简化开发者的代码量。
Dubbo 是阿里开源的分布式通信框架,专注于通……继续阅读 »
陈睿
3年前 (2020-01-07) 5721浏览 0评论
7个赞
做过分布式服务端的Java工程师,随着对技术底层的认知的加深,都会或多或少的会去想: 一个RPC框架需要考虑的问题有哪些,如何来解决?
下面我们围绕RPC通信框架,从如何实现这个角度做一个剖析,以及每个环节能做什么?
RPC框架简介
单体应用时代只有内外网通信,并没有服务间通信的诉……继续阅读 »
陈睿
3年前 (2020-01-02) 3711浏览 0评论
6个赞
在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS。
本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程,让你对AQS的整体设计有清晰了解,让你迈出高并发编程的第一步。
AQS
AQS(AbstractQueuedSynchronizer)就是一个抽象的队列同步器……继续阅读 »
陈睿
3年前 (2019-12-31) 3960浏览 0评论
3个赞
从程序员进阶成为架构师,并非一蹴而就,需要系统化、阶段性地学习,在实战项目中融会贯通,这如同打怪通关,我们得一关一关突破,每攻破一个关口,就能得到更精良的装备,技能值也随之不断增长,直至大获全胜。
凡事预则立,在开始行动之前,我们有必要先来了解下这个岗位的核心要求,以及必知必会的技术能力,只有目标清晰、方向明确,才能事半功倍。
01 架构师岗位职责 ……继续阅读 »
陈睿
3年前 (2019-12-06) 3519浏览 0评论
11个赞
支付宝现场三面面试题目,文末有福利:阿里经典面试88题目答案
01 支付宝一面
介绍一下自己。
项目参与的核心设计有哪些
ArrayList和LinkedList底层
HashMap及线程安全的ConcurrentHashMap,以及各自优……继续阅读 »
陈睿
3年前 (2019-11-22) 4340浏览 0评论
4个赞
在如今的分布式盛行的时代,分布式事务永远都是绕不开的一个话题,今天就谈谈分布式事务相关的一致性与实战解决方案。
01 为什么需要分布式事务
由于近十年互联网的发展非常迅速,很多网站的访问越来越大,集中式环境已经不能满足业务的需要了,只能按照业务为单位进行数据拆分(包含:垂直拆分与水平拆分),以及按照业务为单位提供服务,从早期……继续阅读 »
陈睿
3年前 (2019-11-20) 2914浏览 0评论
8个赞
整理一份成长为阿里Java技术专家的7个技能体系,希望对你的高薪之路有所参考。
1.Java编程必备
多线程:创建与使用、线程同步与锁、线程池等的掌握
JVM:你只有深入理解虚拟机的内存回收机制,才能正确使用JVM性能调优
掌握NIO,以及对应NIO框架……继续阅读 »
陈睿
3年前 (2019-07-24) 3863浏览 0评论
5个赞
1
阿里天猫Java一面
自我介绍
jvm GC原理,JVM怎么回收内存
ConcurrentHashMap是怎么解决并发问题的?
HashMap怎么从链表转换为红黑树?如果存入的是null键,放在桶的哪个位置?
谈谈……继续阅读 »
陈睿
3年前 (2019-07-23) 4557浏览 0评论
3个赞
Java中间件一面
1.技术一面考察范围:
重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现
线程池的底层实现以及常见的参数
数据结构基本都问了一遍:链表、队列等
Java内存模型:常问的JVM分代模型,以及JDK1.8后的区别,最后还问了JVM……继续阅读 »
陈睿
3年前 (2019-07-12) 4091浏览 0评论
3个赞
这是来自于优知学院一位铁粉面试回来的总结经验
刚参加完蚂蚁金服的Java P6级的面试,一共参加了4面。面试归来,总结下阿里面试流程、面试过程、以及面试题目范畴。文末有阿里Java P6面试必考题与答案参考~
阿里面试流程
第一轮:电话技术初面;
第二轮:技术面谈(围绕技术……继续阅读 »
陈睿
3年前 (2019-07-09) 9205浏览 0评论
7个赞
谈到多线程就不得不谈到Synchronized,很多同学只会使用,缺不是很明白整个Synchronized的底层实现原理,这也是面试经常被问到的环节,比如:
synchronized的底层实现原理
synchronized锁与JVM的实现
synchronized锁升级顺序
synchroni……继续阅读 »
陈睿
3年前 (2019-07-08) 4567浏览 2评论
2个赞
蚂蚁Java一面
二叉搜索树和平衡二叉树有什么关系,强平衡二叉树(AVL树)和弱平衡二叉树(红黑树)有什么区别
B树和B+树的区别,为什么MySQL要使用B+树
HashMap如何解决Hash冲突
epoll和poll的区别,及其应用场景
简述线程池原理,FixedThreadPool用……继续阅读 »
陈睿
3年前 (2019-07-05) 3288浏览 0评论
0个赞
Java并发编程的技能基本涵括以下5方面:
多线程
线程池
线程锁
并发工具类
并发容器
多线程的4种创建方式
继承Thread
实现Runnable接口
实现Callable接口
……继续阅读 »
陈睿
3年前 (2019-07-04) 5169浏览 1评论
2个赞
在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如:
Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项
Java并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景
Java并发编程系列:CountDownLatch、Semaphore等4大并发工……继续阅读 »
陈睿
3年前 (2019-07-03) 4325浏览 0评论
1个赞
金三银四俗称跳槽黄金季,很多同学都想趁着这段时间拿高薪,去更牛逼的公司工作,认识更多大牛,提升自己的职场竞争力。
那怎样才能通过BAT面试官的考核?怎样成为一名Offer收割机?
之前讲过收割Offer有一个最直接的公示:Offer=硬实力*软实力*好的心态,三者缺一不可。
01
技术硬实力
……继续阅读 »
陈睿
3年前 (2019-03-06) 4604浏览 0评论
2个赞
一面:
hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
Linux的共享内存如何实现,大概说了一下。
socket网络编程,说一下TCP的三次握手和四次挥手
同步IO和异步IO的区别?
Java GC机制?GC Roots有哪些?
红……继续阅读 »
陈睿
4年前 (2019-03-03) 7461浏览 0评论
5个赞
第一轮
说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点?
讲讲jdk1.7和1.8的区别?
几种内置的线程池
MySQL事务隔离级别以及MVCC机制
Redis缓存雪崩、缓存穿透以及如何解决?
……继续阅读 »
陈睿
4年前 (2019-03-01) 9187浏览 2评论
15个赞
Java一面
hashmap源码问题
HashMap底层结构 put操作讲一下
HashMap、HashMap如何保证线程安全、ConcurrentHashMap
JVM有哪些回收算法,对应的收集器有哪些?
jvm g1的内存模型讲一下,G1和CMS收集器的区别?以及G1收集器……继续阅读 »
陈睿
4年前 (2019-02-28) 6385浏览 0评论
6个赞
Java面试过程,JVM属于必考题系列:
直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置
直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结
直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景
直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参……继续阅读 »
陈睿
4年前 (2019-02-27) 7028浏览 0评论
8个赞
马上进入求职招聘高峰,总结了一份BAT(阿里、百度等)资深Java相关的面试题答案合集给到大家。
该板块的各面试章节,后续会持续迭代更新最新一线互联网公司的面试题目,建议收藏该页面,不定期更新查看~
Java虚拟机(JVM)
JVM内存模型结构
方法区和直接内存什么时候会oom?
J……继续阅读 »
陈睿
4年前 (2019-02-26) 12449浏览 3评论
31个赞
金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM垃圾收集器。
我先从JVM收集器的发展过程谈起,然后再聚焦在G1收集器,从G1的内存模型,再到G1的回收流程,最后再谈谈G1的实际应用场景。……继续阅读 »
陈睿
4年前 (2019-02-25) 7181浏览 1评论
14个赞