JAVA技术栈
文章平均质量分 82
安琪拉的博客
这个作者很懒,什么都没留下…
展开
-
快速了解Maven核心概念和工程实践
maven核心概念和最佳实践原创 2022-01-23 20:47:39 · 721 阅读 · 0 评论 -
支撑支付宝双11的核心架构
现在还依稀记得去年双11在支付宝作战室,接近0点的时候,所有人都盯着值班室的秒级监控大盘,当交易峰值曲线慢慢爬升,最后变得无比陡峭,值班室的同学都很激动,欢呼声伴随着爬升的曲线达到了顶峰,58.3万笔/秒,也是新的交易峰值记录,但相比往年动辄翻一倍,涨30%~40%,增长率还是小了很多。2010年双11的支付峰值是2万笔/分钟,到2017双11时变为了25.6万笔/秒,再到去年的58.3万笔/秒,是09年第一次双11的一千多倍。要抗住这么大的支付TPS,蚂蚁做了很多顶层架构的设计和底层实现的优化,其中最原创 2021-08-11 23:48:45 · 1092 阅读 · 1 评论 -
几道高频面试题解
安琪拉的博客 喜欢蹲草的纯粹技术人,用心分享一些互联网的技术 40篇原创内容 ...原创 2021-04-26 01:58:42 · 1244 阅读 · 2 评论 -
面试官突然的关心-日志篇
当面试官问到,你们用的什么日志框架,log4j 和logback吗?和slf4j什么区别?吓尿了,日志系统也关心,学起来!前言日志重要吗?程序猿排查问题,数据统计分析、故障定位都依赖日志,甚至有的公司直接用日志的输出,经过统计做业务系统的输入。所以日志实在太重要了,大家几乎每天都在用日志,那都知道用的是什么日志框架,以及实现的原理吗?开胃菜说Log4j 和 Logback 之前,不得不提SLF4J。简单说,SLF4J相当于定义了接口,Log4j 和 Logback是具体实现。SLF4J就是典型的门面模式,什原创 2021-04-23 02:12:45 · 780 阅读 · 2 评论 -
双12压测引出的线上Full GC排查
这个Full GC问题是去年双12压测的时候触发的,中间排查的过程和踩的坑给大家借鉴一下。线上问题双12之前压测的时候起了很小的量,直接触发了Full GC,吓尿了,因为马上双12大促预热就要开始了,这搞不好妥妥的3.25啦。赶紧拉群,把相关同学拉在一起排查问题。第一时间查看GC日志:可以看到原因是超过了Metadata GC的阈值,触发了Full GC,Metaspace从243M 回收到231M,基本没怎么回收掉,所以稍微再来点量,很容易再次触发Metaspace 的回收。知识储备GC问题排查需要很多储原创 2021-04-13 03:20:59 · 755 阅读 · 0 评论 -
最近粉了一位有趣的技术博主
有一次在CSDN 上闲逛的时候,看到一篇讲HashMap原理的文章,用面试者的视觉,把深入的技术知识缓缓展开,把HashMap 这个常用的Java 集合类从使用到原理,再到源码作者的设计意图,复杂的技术用直白的语言和图画解释的容易懂很多了。用他自己文章说的解释,如果博客只是一堆技术名词的堆砌,书本上的迁移,那是整理,不是创造。用对话的方式讲技术,一方面会让读者以第一视角投入其中,会带着问题去看技术原理,而且也会站在设计者的角度考虑,这个技术的出现当初是为了解决什么问题,这样理解就深刻了,而且也容易记得住。后原创 2021-04-06 22:14:24 · 889 阅读 · 2 评论 -
JVM日志参数十全大补丸
快吃下这颗JVM十全大补丸,妈妈再也不担心JVM日志看不懂了!本文需要一些JVM的储备知识,如果对JVM内存区域还不熟悉,可以看看基础知识部分,在JVM群里提问,评论区留言都可以,安琪拉玩家都很热心,社区很随意。实践JVM日志我们先打印点GC日志实践一下,再开始讲后面的理论。首先在IDEA 中设置打印GC的参数,比如我设置的参数如下,堆、新生代老年代都设置的比较小,这样比如容易出GC日志。-Xms56m -Xmx56m -Xmn21m -Xss512k -XX:Met原创 2021-04-05 00:27:06 · 703 阅读 · 3 评论 -
阿里巴巴Java开发手册(泰山版)
放假了,又可以学起来了,送给大家一份阿里巴巴最新的《Java开发者手册—泰山版》。阿里算是国内互联网Java 相关技术栈使用范围最大的公司,使用Java时间也有二十多年了,前辈们在项目实践中踩了很多坑,他们把项目中认为最合适的规则提炼成通用编码规范-《Java 开发手册》,这个也是经历了多次大规模一线实战的检验及不断完善,是阿里内部的最佳实践。安琪拉知道很多公司都会直接用《Java 开发手册》 作为内部的开发规范,这份开发手册基本定义了Java 项目开发中涉及的各方面注意事项,哪些是强制需要遵守的,那些是推原创 2021-04-05 00:19:30 · 3304 阅读 · 7 评论 -
MySQL高频面试题
MySQL 索引使用什么数据结构?为什么用 B+做索引?使用B+树。这个问题,你可以在脑子里面先思考一下,如果让你来设计数据库的索引,你会怎么设计?我们还是用Why?What? How?三步法来看这个问题。为什么会需要索引?索引是什么?索引怎么用的?再思考为什么需要B+树?B+树是什么? B+树怎么用?答:大部分程序主要的功能都是对数据的处理,写入、查询、转化、输出。最形象的比喻就是树和内容和目录的关系,目录就是索引,我们根据目录能快速拿到想要内容的页码。为什么是B+树,有这个几个理..原创 2021-03-30 00:12:34 · 1213 阅读 · 0 评论 -
来了阿里终于知道专科如何进大厂
前二天后台收到几个读者留言,有一位说自己工作两年,不知道从什么开始学,公司用的是SSM框架,只是会用。还有一位读者说自己只是专科毕业,觉得可能很难有机会能进大厂了,现在的工作也不是自己很满意的。下面这个是读者的后台留言,我也回复了她,但是事后觉得回复的只能算皮毛,认真思考了以后,决定还是写篇文章回复一下目前在这种情况下的读者。这个话题其实很大,如何你学历不好/背景不好但想进大厂怎么办?建议找机会向大厂投个简历,争取拿到面试机会,不要管能不能过,投就得了,为什么一定这么干。有以下几点原因:从.原创 2021-03-26 01:40:34 · 4897 阅读 · 1 评论 -
Java集合之Stack(出自Java知识体系)
安琪拉正在梳理Java知识体系,这篇讲Java集合的Stack。如果希望获取完整的《安琪拉Java知识体系》整理中, 完成后公众号回复“知识体系” 即可获取。完整的Java集合如下图所示:这次讲Stack。Stack翻译过来是栈,栈最大的特点就是先进后出,Stack继承自Vector,因此和Vector一样,底层数据结构也是数组,除了Vector 提供的方法,Stack 提供了栈需要的一些方法。如下:构造方法: public Stack() { } // 空的,没有预先.原创 2021-03-06 22:17:20 · 745 阅读 · 0 评论 -
DO、DTO、BO、VO、POJO区别
不知道大家在自己的系统中发现很多类都是以VO、DTO、DO结尾的类,这些存储数据的简单类,有什么作用呢?我理解有二个作用:一般稍大的系统都是分层设计的,最底层是数据存储层,数据库,最上层是对外提供接口调用的应用层,那每一层都有关联的数据对象,所以需要做相应的区分。让类语义更明确,很容易知道类的含义。定义先来看看阿里巴巴开发规约的定义:POJO(Plain Ordinary Java Object):在本规约中,POJO专指只有setter/getter/toString的简单类,包括DO.原创 2021-02-16 17:28:48 · 1783 阅读 · 1 评论 -
HashMap解读
HashMap解读之前我以为我很懂HashMap,直到今天技术交流群有个人说:为什么HashMap的hash函数要按照如下方式生成?static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}我记得之前是看...原创 2020-03-13 03:19:38 · 3612 阅读 · 2 评论 -
一文了解ThreadLocal用法
微信公众号:Java流水账本号记录国服安琪拉日常编程流水帐,欢迎后台留言为啥写ThreadLocal 背景:发现很多博客关于ThreadLocal的说明写错了,ThreadLocal不是维护了key为Thread对象的Map,而是Thread对象维护了一个key为ThreadLocal的Map。有点绕,直接看代码吧。 1//类Thread 2public class&nbs...原创 2020-03-03 16:26:04 · 3086 阅读 · 3 评论