自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(375)
  • 收藏
  • 关注

原创 史上最全 JVM 大全详解、java 程序员细节到极致的一次,魔鬼

作为 Java 的从业者,在找工作的时候,一定会被问及关于 JVM 相关的知识。 JVM 知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。而大多数人可能没有对 JVM 的实际开发和使用经验,接下来这一系列文章将带你深入了解 JVM 需要掌握的各个知识点。这也将帮助你完成从初级程序员到高级程序员的转变。

2022-12-31 14:01:37 496 1

原创 8 年 java 技术岗面试官总结:2022 超强面试大全,抓住 2022 的小尾巴

一般大公司都有 3-4 轮技术面,1 轮的 HR 面。就搜狐而言,我共经历了 4 轮技术面,前两轮主要是问基础和项目实现,第 3 轮是交叉面,两个面试官,主要是问项目实现和拓展。第 4 轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了,现在基本也是这样的。

2022-12-31 13:44:06 760

原创 BAT 大厂 java 程序员面试必问:JVM+Spring+ 分布式 +tomcat+MyBatis

面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。Java 面试的重点:数据结构与算法,JVM 内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、性能优化、设计模式、Spring 框架:分布式相关:Redis 缓存、一致 Hash 算法、分布式存储、负载均衡等,微服务以及 Docker 容器等。

2022-12-31 13:19:35 367

原创 java 程序员:拜托别再问我 Spring 原理了、你问的这篇文章都有

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。

2022-12-31 10:39:04 233

原创 我凭借这份pdf,最终拿到了阿里,腾讯,京东等八家大厂offer

怎样才能拿到大厂的 offer,没有掌握绝对的技术,那么就要不断的学习我是如何笑对金九银十,拿到阿里,腾讯等八家大厂的 offer 的呢,今天分享我的秘密武器,美团大神整理的 Java 核心知识点,面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基础知识、Java 集合、JVM、多线程并发、spring 原理、微服务、Netty 与 RPC 、Kafka、日记、设计模式、Java 算法、数据库、Zookeeper、分布式缓存、数据结构等等。

2022-12-31 09:45:26 131

原创 发现Spring事务的一个实锤bug,官方还拒不承认?你来评评理...

早上起来,我一刷新页面,发现官方针对这个 issues 进行了最后一次提交:这次 issues 的标题,最后定格为:支持类型安全的事务回滚规则里面写了很长一段的内容,来描述这次提交的背景,但是基本上都是我前面写过的东西的总结:结合我前面写的东西,我给你翻译翻译:首先我觉得是在事务模块里面创造一个新的概念:type-safe rollback rules,类型安全的回滚规则。

2022-12-31 09:27:59 121

原创 当Synchronized遇到这玩意儿,有个大坑,要注意

前几天在某技术平台上看到别人提的关于 Synchronized 的一个用法问题,我觉得挺有意思的,这个问题其实也是我三年前面试某公司的时候遇到的一个真题,当时不知道面试官想要考什么,没有回答的特别好,后来研究了一下就记住了。所以看到这个问题的时候觉得特别亲切,准备分享给你一起看看:程序逻辑也很简单,是一个模拟抢票的过程,一共 10 张票,开启两个线程去抢票。票是共享资源,且有两个线程来消费,所以为了保证线程安全,TicketConsumer 的逻辑里面用了 synchronized 关键字。

2022-12-31 09:27:32 120

原创 舒服,给Spring贡献一波源码。

这周我在 Spring 的 github 上闲逛的时候,一个 issues 引起了我的兴趣。这个 issues 标题翻译过来,就是说希望 @Async 这个注解能够支持占位符或 SpEL 表达式。而我关注到这个 issues 的原因,完全是因为我之前写过 @Async 相关的文章,看着眼熟,就随手点进来看了一下。这个说的是个啥事儿呢?估计你看一眼我截图中标注的地方也就看出来了,他想把线程池的名称放到配置文件里面去。而这个需求我觉得并不奇怪,基于 Spring 框架来说,是一个很合理的需求。

2022-12-31 09:27:05 125

原创 面试官:你给我说一下线程池里面的几把锁。

写文章很累的,需要一点正反馈。

2022-12-31 09:25:47 315

原创 面试官:要不我们聊一下“心跳”的设计?

是这样的,我最近又看到了这篇文章《工商银行分布式服务 C10K 场景解决方案 》。为什么是又呢?因为这篇文章最开始发布的时候我就看过了,当时就觉得写得挺好的,宇宙行(工商银行)果然是很叼的样子。但是看过了也就看过了,当时没去细琢磨。这次看到的时候,刚好是在下班路上,就仔仔细细的又看了一遍。嗯,常读常新,还是很有收获的。所以写篇文章,给大家汇报一下我再次阅读之后的一下收获。

2022-12-31 09:25:08 125

原创 刷完200+大厂Java真题手册,成功拿到阿里,京东,美团的offer

怎样才能拿到大厂的offer,没有掌握绝对的技术,那么就要不断的学习我是如何笑对金九银十,拿到阿里,京东,美团等八家大厂的offer的呢,今天分享我的秘密武器,200多家大厂真题,面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了性能优化,微服务架构,并发编程,开源框架,分布式面试,等等。由于整个文档比较全面,内容比较多,所以我分享的知识里面可能会有一些疏漏,与杂乱,整个核心知识点都整理在一个pdf文档里面了。

2022-12-30 15:04:35 89

原创 京东java二面:spring相关问题被虐哭了,直到看到了这些知识点

除了上面的spring想关核心知识点外,同时还分享更多精选整理的学习资料,包含(Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!)资料免费领取方式:可以直接转发+关注后私信(学习)即可获取哦。

2022-12-30 14:15:18 303

原创 我以为对jvm性能调优很了解,直到我到阿里面试完之后

相信很多人对于性能调优都不陌生,为了获得更好的系统性能,或者是为了满足不断增加的业务需求。都需要用到我们的性能调优。所以性能优化在面试中出现的频率特别高楼主自认为自己对性能优化相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在性能优化方面的知识,只是个小学生水平。以下,是我总结的一次阿里面试中关于jvm性能优化的面试问题以及知识点。

2022-12-30 11:02:04 108

原创 京东三面惨遭被虐,关于redis,高并发,分布式,微服务一窍不通

三面大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为redis缓存,高并发,分布式,微服务等,接下来分享一下我的这京东面试的面经+一些我的学习笔记。 面试真题解析 自从在京东碰壁之后,花了一个月的时间学习梳理了这些知识点,准备来日再战,除了高并发,分布式,微服务之外,还整理了有java基础,微服务,Kafka等知识点的笔记。以及1500道大厂面试题的整理。面试整体以及思维导图获取方式:

2022-12-30 10:36:00 154

原创 两个宝藏|关于我在github上冲浪时的一个小技巧。

前几天在 github 上冲浪的时候,发现了两个宝藏东西。我也不藏着掖着了,拿出来给大家分享一下。这两个宝藏是关于 arthas 和 SOFARegistry 的,这两个东西都是阿里开源的项目。arthas 大家应该都比较耳熟能详了,知道它是阿里搞出来的一款 Java 诊断工具。而 SOFARegistry 是个啥玩意?好像没怎么听说过呢?我接触这个东西的时间也不算长,但是我大概知道它是个什么东西,我觉得是一个轮子,但是这个轮子还挺厉害的。不着急,等下就给你摆一摆。

2022-12-30 10:13:30 126

原创 换个数据结构,一不小心节约了 591 台机器

前段时间,我在 B 站上看到一个技术视频,题目叫做《机票报价高并发场景下的一些解决方案》。up 主是 Qunar技术大本营,也就是我们耳熟能详的“去哪儿”。当时其实我是被他的这个图片给吸引到了(里面的 12 qps 应该是 12k qps):他介绍了两个核心系统在经过一个“数据压缩”的操作之后,分别节约了 204C 和 2160C 的服务器资源。共计就是 2364C 的服务器资源。如果按照一般标配的 4C8G 服务器,好家伙,这就是节约了 591 台机器啊,你想想一年就节约了多大一笔开销。

2022-12-30 10:10:21 107

原创 舒服了,踩到一个关于分布式锁的非比寻常的BUG

提到分布式锁,大家一般都会想到 Redis。想到 Redis,一部分同学会说到 Redisson。那么说到 Redisson,就不得不掰扯掰扯一下它的“看门狗”机制了。所以你以为这篇文章我要给你讲“看门狗”吗?为了能让你丝滑入戏,我还是先简单的给你铺垫一下,Redisson 的看门狗到底是个啥东西。

2022-12-30 10:05:41 110

原创 看起来是线程池的BUG,但是我认为是源码设计不合理。

前几天看到一个 JDK 线程池的 BUG,我去了解了一下,摸清楚了它的症结所在之后,我觉得这个 BUG 是属于一种线程池方法设计不合理的地方,而且官方在知道这个 BUG 之后表示:确实是个 BUG,但是我就不修复了吧,你就当这是一个 feature 吧。在带你细嗦这个 BUG 之前,我先问一个问题:这玩意,老八股文了,存在的时间比我从业的时间都长,得张口就来:这次的这个 BUG 触发条件之一,就藏着在这个 DiscardPolicy 里面。但是你一去看源码,这个玩意就是个空方法啊,这能有什么 BUG?它错就

2022-12-30 10:00:49 75

原创 从局部变量说起,关于一个莫得名堂的引用和一个坑

今天带大家盘一个有点意思的基础知识啊。有多基础呢,先给你上个代码:请问,上面代码中,位于 method 方法中的 object 对象,在方法执行完成之后,是否可以被垃圾回收?这还思考个啥呀,这必须可以呀,因为这是一个局部变量,它的作用域在于方法之间。JVM 在执行方法时,会给方法创建栈帧,然后入栈,方法执行完毕之后出栈。一旦方法栈帧出栈,栈帧里的局部变量,也就相当于不存在了,因为没有任何一个变量指向 Java 堆内存。换句话说:它完犊子了,它不可达了。这是一个基础知识点,没骗你吧?

2022-12-30 09:53:22 78

原创 进来偷学一招,数据归档二三事儿

数据归档可以解决生产数据库因为数据量过多,从而引发磁盘空间预警,表查询、变更效率变低等问题。但是任务方案都存在双面性,数据归档可能引发数据幂等被破坏、归档查询库 RT 较高、归档数据缺失,造成业务影响等问题。所以我们设计数据归档的方案时,需要全面考虑,提前准备预案,解决可能造成的业务问题。

2022-12-30 09:27:06 123

原创 当面试官问你Spring Boot 中的监视器是什么?把这篇文章甩给他

多年来,随着新功能的增加,spring 变得越来越复杂。只需访问https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。 Spring Boot 是解决这个问题的方法。Spring Boot 已经建立在现

2022-12-29 13:47:12 72

原创 Java9-17新特性一览,了解少于3个你可能脱节了

Java8出来这么多年后,已经成为企业最成熟稳定的版本,相信绝大部分公司用的还是这个版本,但是一眨眼今年Java19都出来了,相信很多Java工程师忙于学习工作对新特性没什么了解,有的话也仅限于某一块。本篇就是博主对自己感觉有用的新特性做了一个案例验证及简要说明,整合起来分享给大家。

2022-12-29 13:39:45 162

原创 在阿里离职后,从内部带走的这份485页面试合集,在GitHub上火了

有个朋友去阿里面试,面试总共花费了20天左右,包含了 4 轮电话面试、1 轮笔试,1轮主管视频面试、1轮 hr 视频面试。据他所说,,要不是他面试之前做足了准备,估计都坚持不到接下来的面试。其实,第一轮的电话面试除了一些常规的自我介绍外,**问的都是一些基础的专业知识,主要目的就是筛选掉一些基础比较弱的人,**以免浪费大家的的时间。

2022-12-29 13:34:33 83

原创 好家伙、阿里P8大咖开源了这套手绘图解HTTP笔记,轻松火遍GitHub

HTTP 在整个工业界贯穿各个方向。包括前后端、大数据、运维。因为,无论哪个方向都会涉及到信息传输。信息的传输的核心是 HTTP。而如果你有一个很熟悉 HTTP 的程度,在各个方面都是有很大的帮助。尤其是各个点的优化方面, HTTP 发挥着至关重要的作用。所以,今天呢给大家找了一个阿里大牛的资料,从内而外,由表及里,能够给大家讲透。

2022-12-29 13:33:48 72

原创 最新推出Spring+SpringBoot+SpringCloud全家桶诛仙手册

阿里最新发布的spring全家桶小册包含了(spring源码,springcloud,springboot)等,非常适合Java高级进阶工程师学习!由于小册的内容非常的多,所以下面就给大家展示部分内容截图了。

2022-12-29 13:33:38 71

原创 @Async注解的坑,小心

早期暴露出去的对象,可能是AService本身或者是AService的代理对象,而且是通过AnnotationAwareAspectJAutoProxyCreator对象实现的,但是通过AsyncAnnotationBeanPostProcessor的回调,会对AService对象进行动态代理,这就导致AService早期暴露出去的对象跟最后完全创造出来的对象不是同一个,那么肯定就不对了。也就说,AOP和@Async注解虽然底层都是动态代理,但是具体实现的类是不一样的。不错,还真的不太一样,请继续往下看。

2022-12-29 09:56:37 132

原创 三万字盘点Spring/SpringBoot的那些常用扩展点

ImportSelector和ImportBeanDefinitionRegistrar的方法是有入参的,也就是注解的一些属性的封装,所以就可以根据注解的属性的配置,来决定应该返回样的配置类或者是应该往容器中注入什么样的类型的Bean,可以看一下 @EnableAsync 的实现,看看是如何根据@EnableAsync注解的属性来决定往容器中注入什么样的Bean。所以这就涉及了Bean的创建,销毁的过程,也就是面试常问的Bean的生命周期。但是键和值可以没有任何关系,当然想有也可以有。

2022-12-29 09:45:07 128

原创 RocketMQ保姆级教程

RocketMQ是阿里巴巴旗下一款开源的MQ框架,经历过双十一考验、Java编程语言实现,有非常好完整生态系统。RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等,总之就是葛大爷的一句话通过上面的理论介绍和实际的环境搭建再加上代码的测试,相信应该可以对RocketMQ有个入门,有兴趣的小伙伴可以手动搭起来,整个过程顺利的话可能就十几二十分钟这样子。

2022-12-29 09:40:46 178

原创 分布式锁原理及实现

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。

2022-12-29 09:33:03 210

原创 一些在代码中踩过的坑,从来没遇到过的估计已经不是大头兵了。

在我们日常coding中,很多时候我们都是把接口代码全部写完再进行测试,在我们检查代码的时候,常常很有信心检查了多遍以后,觉得自己的代码肯定没啥问题,逻辑很清晰、排版很整齐、公共方法抽的很好,很有信心的去调自己的接口,不料动不动一会500、一会400,就差报250~,其实我们常常的我以为,只是我以为,执行结果会教你做人,事实证明代码不需要只是看着好看的,还是需要看执行结果的,下面我分享一些日常会踩到坑的地方。

2022-12-29 09:29:22 143

原创 闭关三月:整理出了这份对标阿里p7的java面试必备指南。

还有分布式系统,高可用架构,SpringCloud 微服务架构,由于文章长度的原因就没有给大家讲这三个专题的知识点给整理给大家了,需要这份文档的朋友,可以直接转发+关注后私信(学习)即可获取哦最后还有一份600多页的Java高频核心知识点,也一并案例给大家,获取资料的方式和上文一样,希望大家都能够拿到自己心仪的offer。

2022-12-28 13:33:06 86

原创 一口气说出四种幂等性解决方案,面试官露出了姨母笑~

幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果。

2022-12-28 13:12:37 86

原创 六种方式,教你在SpringBoot初始化时搞点事情

在实际工作中总是需要在项目启动时做一些初始化的操作,比如初始化线程池、提前加载好加密证书.......那么经典问题来了,这也是面试官经常会问到的一个问题:有哪些手段在Spring Boot 项目启动的时候做一些事情?方法有很多种,下面介绍几种常见的方法。

2022-12-28 10:05:47 223

原创 实战、Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步

数据增量同步的开源工具并不只有Canal一种,根据自己的业务需要选择合适的组件。

2022-12-28 09:55:40 405

原创 权限系统就该这么设计,yyds

这篇文章就来介绍一下权限系统的设计以及主流的五种权限模型。权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力,他所看到的、能使用的可能不一样。对应到一个应用系统,其实就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。

2022-12-28 09:50:41 103

原创 最安全的加密算法 Bcrypt,再也不用担心数据泄密了~

因为hash算法是固定的,所以同一个字符串计算出来的hash串是固定的,所以,可以采用如下的方式进行破解。暴力枚举法:简单粗暴地枚举出所有原文,并计算出它们的哈希值,看看哪个哈希值和给定的信息摘要一致。字典法:黑客利用一个巨大的字典,存储尽可能多的原文和对应的哈希值。每次用给定的信息摘要查找字典,即可快速找到碰撞的结果。彩虹表(rainbow)法:在字典法的基础上改进,以时间换空间。是现在破解哈希常用的办法。

2022-12-28 09:48:38 348

原创 为什么说MySQL单表行数不要超过2000w?

Mysql 的表数据是以页的形式存放的,页在磁盘中不一定是连续的。页的空间是 16K, 并不是所有的空间都是用来存放数据的,会有一些固定的信息,如,页头,页尾,页码,校验码等等。在 B+ 树中,叶子节点和非叶子节点的数据结构是一样的,区别在于,叶子节点存放的是实际的行数据,而非叶子节点存放的是主键和页号。索引结构不会影响单表最大行数,2kw 也只是推荐值,超过了这个值可能会导致 B + 树层级更高,影响查询性能。

2022-12-28 09:45:47 106

原创 构建高性能内存队列:Disruptor 永远滴神~

为了提高CPU的速度,Cpu有高速缓存Cache,该缓存最小单位为缓存行CacheLine,他是从主内存复制的Cache的最小单位,通常是64字节。一个Java的long类型是8字节,因此在一个缓存行中可以存8个long类型的变量。如果你访问一个long数组,当数组中的一个值被加载到缓存中,它会额外加载另外7个。因此你能非常快地遍历这个数组。码猿技术专栏每天定时推送更多精彩内容。

2022-12-28 09:44:20 211

原创 项目终于用上了插入式注解,真香

插入式注解处理器在《深入理解Java虚拟机》一书中有一些介绍(前端编译篇有提到),但一直没有机会使用,直到碰到这个需求,觉得再合适不过了,就简单用了一下,这里做个记录。了解过lombok底层原理的都知道其使用的就是的插入式注解,那么今天笔者就以真实场景演示一下插入式注解的使用。

2022-12-28 09:40:53 240

原创 责任链模式的高级用法:多级校验、工作流,这样写代码才足够优雅

表示处理器抽象类,负责抽象处理器行为。

2022-12-28 09:39:09 238

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除