阿里Java架构师谈:2021年最新Java面试经历
第一家是美团美团的话,三面下来,设计的内容知识也是挺广的吧,有MySQL、Redis、Kafka、线程、算法、、volatile、线程、并发、设计模式等等...一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景,慢查询解决等my
Wesley13 Wesley13
3年前
Java高级面试必问:AQS 到底是什么?
前言JDK1.5以前只有synchronized同步锁,并且效率非常低,因此大神DougLea自己写了一套并发框架,这套框架的核心就在于AbstractQueuedSynchronizer类(即AQS),性能非常高,所以被引入JDK包中,即JUC。那么AQS是怎么实现的呢?本篇就是对AQS及其相关组件进行分析,了解其原理,并领略大神的优美而又精简
Wesley13 Wesley13
3年前
JAVA NIO non
Java自1.4以后,加入了新IO特性,NIO.号称newIO.NIO带来了nonblocking特性.这篇文章主要讲的是如何使用NIO的网络新特性,来构建高性能非阻塞并发服务器.文章基于个人理解,我也来搞搞NIO.,求指正.在NIO之前服务器还是在使用阻塞式的javasocket.以Tomcat最新版
Stella981 Stella981
3年前
ConcurrentSkipListMap 介绍
ConcurrentSkipListMap在JDK并发工具类使用范围不是很广,它是针对某一特殊需求而设计的——支持排序,同时支持搜索目标返回最接近匹配项的导航方法。一般情况下开发者很少会使用到该类,但是如果你有如上的特殊需求,那么ConcurrentSkipListMap将是一个很好地解决方案。JavaCollectionsFramework中另一个
Stella981 Stella981
3年前
2021金三银四必备:Java后端开发面试总结【25个技术专题】
前言小编分享的这份春招Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、SpringMVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面
Stella981 Stella981
3年前
JVM回收器与调优
定义:使用编程语言将GC算法实现出来,产生的程序就是垃圾搜集器了JVM给了三种选择:串行收集器、并行收集器、并发收集器串行搜集器(serialcollector):它只有一条GC线程,且就像前面说的,它在运行的时候需要暂停用户程序(stoptheworld)。并行搜集器(parallelcollector):它有多
Wesley13 Wesley13
3年前
Java中的锁原理、锁优化、CAS、AQS,看这篇就对了!
01为什么要用锁?锁是为了解决并发操作引起的脏读、数据不一致的问题。02 锁实现的基本原理2.1、volatileJava编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些
Wesley13 Wesley13
3年前
Java集合框架一览笔录
1、集合概念集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。集合分为两大类:Collection、Map。Collection(集合),每个元素存储单个
Wesley13 Wesley13
3年前
Java ConcurrentHashMap存入引用对象时也是线程安全的
本人小白,看到资料说ConcurrentHashMap是线程安全的,get过程不需要加锁,put是线程安全的,推荐高并发时使用.但是本人不清楚是否该map中存入的引用类型对象,对象属性变化也是否线程安全的,看了很多资料,貌似都没说明这一点,所以写代码测试一下,packagetestConcurrentHashMap;importjava.util
【专项测试系列】-缓存击穿、穿透、雪崩专项测试
作者:刘须华一、背景概述: R2M缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量请求落到数据库,导致数据库资源占满,引起数据库故障。平时