自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Aaron_Tang_的博客

努力的菜鸟

  • 博客(27)
  • 收藏
  • 关注

原创 RocketMQ测试文章

RocketMQ测试内容。。。。。。。。

2022-01-07 10:51:29 864

原创 JVM-结合MAT工具来分析OOM问题

简单来演示一下OOM的分析和实战。直接上代码:public class Demo4 { public static void main(String[] args) { List<Dandan> list = new ArrayList<>(); while (true){ list.add(new Dandan()); } }}class Dandan{}JVM参数:-

2021-04-23 12:08:02 395

原创 JVM-对象什么时候进入老年代(实战篇)

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。上一篇文章:JVM-动态年龄判断介绍了对象进入老年代的四种方式大对象动态年龄判断minor gc后,survivor区空间不能容纳全部存活对象存活对象达到年龄阈值。比如15接下来,我们将用代码方式来验证这四种方式。知识回顾在实战开始之前,我们先复习一下知识点:0.134: [GC (Allocation Failure) 0.134: [ParNew: 7444K->.

2021-04-19 14:41:24 331

原创 JVM-动态年龄判断你真的理解了吗

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。看文章前,我们先复习一下。什么对象才能直接进入老年代?你可能很快就说出来,毕竟八股文不是白背的。大对象直接进入老年代。动态年龄判断年龄大于阈值,进入老年代Minor GC后,存活的对象空间大于survivor空间,直接进入老年代。好了嘛,应该没了吧。这次,我们把目光聚焦到:动态年龄判断。下面这图片,摘自JVM书的一段话:什么时候对象能进入老年代空间时?其中一个触.

2021-04-11 17:34:44 2247 12

原创 20210404-20210409技术周报

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。最近这个星期。主要两件事儿:工作遇到的bug和总结重新梳理JVM的基础知识工作遇到的bug和总结最近这两周,因为做了4个需求,都是关于黑白名单的。于是我就打算,把这些黑白名单的需求,比如有关于C端用户的白名单,C端用户的黑名单,B端用户的白名单,B端用户的黑名单,我打算直接抽象一点,把4个需求抽象整合为一个需求。每个黑白名单需求:都有增加黑白名单,删除黑白名单,查询黑白名单三种不.

2021-04-10 23:21:54 129

原创 不懂缓存一致性,易把代码写成Bug

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。本文主要分享一下关于缓存一致性问题和其解决方案。下面是本文的主要目录,大家可以挑着看。目录什么是缓存一致性为什么要保证缓存一致性如何保证缓存一致性如何做到强一致性总结01 什么是缓存一致性就是缓存和数据库的数据不一致导致的问题,缓存一致性分为强一致性和最终一致性。强一致性,这个比较损耗性能,比较复杂,加入之后,可能会比没加缓存更慢。最终一致性,是允许缓存数据和数.

2021-04-07 00:37:55 119 1

原创 一个广东人和北京的故事

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。今天呢,闲来无事,其实就是没学习,那就写点别的吧!!说说个人感受吧!不代表北京的实际情况啊哈,但都是我的所见所得,真实感受。我对北京的了解像碎片一样的。没来北京之前,我对北京的印象是:天安门长城鸟巢水立方这些印象都是来自小学课本,电视机。以及爸妈那一辈口中的:不到长城非好汉。我对北京的印象,是模糊的吧。我爸妈也都没来过北京,我北漂前,也没来过。北京给我了无限的幻想吧!我.

2021-04-05 19:37:59 227 2

原创 20210329-20210402技术周报

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。这周总得来说,大头菜比较忙,但也不忘学习。这周主要学习了领域驱动设计DDD。为什么学这个东西,因为最近大头菜和一位大佬L讨论需求设计时,大佬L指出我做接口设计时,太过于从代码出发,做的东西可以符合一次需求,但是没沉淀,无法解决更多同质问题,虽然我做的项目是分布式项目,但是我的思考方式却停留在单机架构:整个系统围绕数据库驱动设计和开发。这其实很显然就是思维上的停滞和懒惰。表面上你做的是分布..

2021-04-03 18:26:29 181 1

原创 生产事故——磁盘使用率爆仓

哈喽哈喽大家猴,我是把代码写成bug的大头菜。公众号:大头菜技术(bigheadit)。原创不易,但欢迎转载。今天不知道为啥醒得特别早,可能就是缘分吧。醒来一看微信,就发现线上的服务器的磁盘使用率超过70%,真是早起的鸟儿有bug修。。。。。当时我就立马跑去看看监控,看看cpu,内存,io这些是否都正常。看了一圈,发现除了磁盘异常外,其他一切都正常。我当时是7点左右看到的消息,看到后,磁盘的使用率达到72%,超过了设定阈值70%。就如上图的红色箭头所示。当时我是直接进入服务器,用df -h..

2021-03-31 18:41:42 148 2

原创 《分享》关于JVM的学习资料推荐

哈喽哈喽大家猴,我是把代码写成bug的大头菜。原创:大头菜技术(微信公众号ID:bigheadit),欢迎分享,转载请保留出处。前言大头菜近日推出了一些关于JVM的相关文章,主要包括JVM的基础知识和JVM的调优实战案例。《技术周报》《JVM38问+答案》以上的文章,都是一种知识的提炼,适合查漏补缺,不适合系统化的学习。关于系统化学习JVM的基础知识。大头菜在这里提供一些学习资料:《深入理解Java虚拟机》——周志明《深入拆解Java虚拟机》——极客时间《Java生产环..

2021-03-29 01:00:33 245

原创 20210322-20210326技术周报

前言这周主要的技术内容是分享JVM的基础知识和一些生产事故案例JVM先问一个问题:在公司,你负责的项目JVM的参数数多少?比如堆的大小MaxHeapSize,新生代的大小,晋升年龄,垃圾收集器是什么?如果你不清楚,什么看都没看到过,甚至怎么查看JVM的参数都不清楚,那你就看对文章了。首先,我们知道JVM的参数,无非就是读写。接下来,我们先看查看JVM的命令有哪些?怎么查看JVM参数命令一:java -XshowSettings:vm -versionaaron@aarondeMBP

2021-03-27 23:06:14 310

原创 用泊松分布来解释为什么HashMap的链表变树的阈值是8

前言有网友指出《面试Java——集合之HashMap和ConcurrentHashMap》一文,关于为什么是8,还可以加一句符合泊松分布。于是我了解一下泊松分布后,确实和网友说的一致,同时非常感谢网友指出文章存在的瑕疵。接下来的内容,大头菜将试图用泊松分布来论证HashMap的链表变树的阈值为什么是8。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2tJX8zG8-1616061099950)(https://imgkr2.cn-bj.ufileos.com/403a

2021-03-18 17:54:44 697 1

原创 双亲委派模型

前言今天大头菜打算讲双亲委派模型,重点关注:如何破坏双亲委派模型,你看完后,一定会获益匪浅哈哈哈。广告时间:先点赞,先收藏,转粉不转路。问题大家思考一下这些问题:为什么不能定义java.lang.Object的Java文件?在多线程的情况下,类的加载为什么不会出现重复加载的情况?以下代码,JVM是怎么初始化注册MySQL的驱动Driver? Connection conn= DriverManager.getConnection("jdbc:mysql://loca

2021-03-18 10:17:02 5898 3

原创 面试——Java字节面经(已获Offer)

前言要么字节跳动,要么心脏跳动,你选哪个?哈哈哈,为大家准备的字节三面面经,后面有总结面试经验,以及相关面试技巧,请自行阅读。怕你忘了找不到,推荐先收藏,再阅读。一面在校项目后端是怎么搭建的答:tomcat,springboot, mybatis备注:这里没答好,应该扩展一下,说当时大三水平有限没有做高可用,如果现在做会用VIP+双ng+双服务做简单高可用“小程序不支持缓存二进制,因此将小图片BASE64编码后缓存到本地”,还有没有其他优化方案答:优化方案是CDN,讲了CD

2021-03-16 15:13:05 555 1

原创 Java——美团面经(三面)

前言美团三面面经,一面没记录,凑合着看吧哈哈哈哈二面为什么要离职?项目太完善了,我想去一些没那么完善的项目组,体验项目逐渐完善的过程…自己对项目的了解情况,给自己打个分满分100,我给自己60。 “说下原因”,,讲完之后, “也就是你自己还没理解透你的系统,为什么不深入学习,要离职” ?????说一下项目我想说的是项目意义,项目模块,业务线过程,数据流转。结果他问我输入是什么输出是什么,输入是什么字段,输出内容有什么字段~~ (这个讲项目的思路不错,可以学习)你

2021-03-13 21:18:08 564

原创 面试Java——集合之HashMap和ConcurrentHashMap

前言友善提醒,本文篇幅涉及知识点较多,消耗脑力比较大。如果你怕以后找不到此文,建议先收藏如果你不用复习,可直接跳到——面试开始以下代码都出自JDK8面试前,我们复习一下HashMap的put方法public V put(K key, V value) { //这里已经对key进行一次哈希了 return putVal(hash(key), key, value, false, true); } //扰动函数,主要功能:降低哈希冲突(详细内容

2021-03-12 19:35:24 122

原创 面试MySQL——索引

前言没有前言,废话不多说,直接开始面试面试开始面试官:什么是索引索引就是一种数据结构,提高检索效率的数据结构。比如B+树,哈希面试官:说说你对B+树的了解B+树是一颗平衡多叉树,相对B树来说,B+树的数据只存在叶子节点。叶子节点组成链表,因此可支持范围查询。B+树的查询效率为:O(logH),H为B+数的高度。面试官:为什么InnoDB使用B+树作为索引结构,而不用B树?首先B+树和B树比较,B树因为非叶子节点也存储数据,因此非叶子能存储的内存页就少了。在相同数据量

2021-03-11 18:38:18 112

原创 面试Redis——缓存并发 缓存雪崩 缓存穿透

本文主要叙述缓存并发,缓存雪崩,缓存穿透的问题以及解决方案。缓存并发什么是缓存并发场景:在你每天刷抖音,看微信短视频时,都会有一个评论列表,在评论列表中,查询评论的时候,会先去查询Redis缓存,如果有,就立即返回;如果没,就去数据库查询数据,接着更新缓存,返回数据。这时候,如果访问量非常多,有多个C端同时查询评论,Redis缓存又恰好没缓存数据,此时,多个C端就会同时去查询数据库。上述这种现象,就被称为缓存并发。话说回来,缓存并发会带来什么危害让数据库的压力剧增,因为数据库抗不了高.

2021-03-11 16:04:31 252

原创 Java面试总览

在金三银四招聘节,简单说说面试的流程。我也做了一个计划,关于面试专题,应该写哪些知识点,以更好帮助各位同学去复习。首先我们按照面试的主流程走一下:面试的主要流程:自我介绍项目介绍技术环节提问环节最重要的2个环节,肯定是项目介绍和技术环节,怎么说?接着看项目介绍项目介绍:考察对业务的理解+表达能力如何在介绍项目时,考察了你对业务的理解,需求是在什么背景下产生的,需求是什么,需求是为了解决什么问题,如何实现需求。我们把一个需求当作一个点,一个项目当作一个线,一个系统当做一个面。现在我.

2021-03-11 15:58:57 141 2

翻译 Object中的finalize方法

finalize()方法一,finalize是什么?二,finalize为什么存在?三,finalize能做什么?一,finalize是什么?protected void finalize() throws Throwable { }}finalize就是Object中的一个方法。或者说他是谁不重要,重要的是他可以干嘛???二,finalize为什么存在?在java中,并不是所有对象,都是由ja...

2018-05-20 19:29:03 1052

转载 怎么学习新的框架

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;框架就是framwork,百度上说框架是整个或部分系统的可重用性设计,是应用开发者定制的应用骨架。我个人认为框架是一系列的底层服务,让应用开发者调用这一系列的底层服务来快速开发他们想要做的应用程序。&nbsp;&nbsp; ...

2018-04-07 13:11:13 1198

原创 java的运算符和表达式

运算符    *算术运算符        *基本算术运算符(+、-、*、/)        *算术复合赋值运算符(+=、-=、*=、/=、%=)        *递增递减运算符(++、--)    *关系运算符(==、!=、&gt;、&lt;、&gt;=、&lt;=、)    *逻辑运算符(&amp;、|、||、&amp;&amp;、!、&amp;=、|=、^=、^)    *位运算符(&amp;...

2018-02-19 23:00:46 318

原创 java类型转换

1.java类型转换,为什么会出现?无非就是因为运算时需要数据类型一致才能运算,但是实际开发过程中,常常用到不同的数据类型。所以类型转换就自然产生了。2.类型转换分类     *自动类型转换(隐式类型转换)            条件:目的类型的范围必须比源类型的范围大(解释:就好比如int(源类型)自动转换为long(目的类型),long的范围比int大)            自动转换关系(如...

2018-02-18 23:56:40 242

原创 java的基本数据类型

基本数据类型,又称为元数据类型,有8大分类。1:boolean    就是布尔类型,要么true,要么false2:byte(1字节)    范围:-128--127(因为0算为正数)3:char(2字节)    字符,用单引号包围。比如'a'(“a”双引号的是字符串)                            范围:0--255(char的默认值是0的字符,而不是字符0)4:shor...

2018-02-18 23:27:45 160

原创 变量和常量

此文章主要用于区分变量和常量,还要区分变量的类型变量:什么是变量?就是在“程序运行的时候”,数据值会发生变化。常量:就是在“程序运行的时候”,数据值不会发生变化。(这里,“程序运行时”是定义上区分变量和常量的前提条件)其实,在变量前面加一个final,就会使得变量成为常量。---------------------------------------------------------------...

2018-02-18 11:51:49 339

原创 java代码注释

定义:java代码的注释就是备注功能:为了提高代码的可读性分类:单行注释、多行注释、文档注释单行注释:就是指只注释一段代码比如:int number;//定义一个整型变量多行注释:一次性注释多行代码比如:/*int i = 10;double money = 12.9;*/文档注释:文档注释可以被javadoc工具读取出来并形成程序文档的注释格式。比如:/**注释内容*/总结:代码的注释,简单来说...

2018-02-18 10:35:50 298

翻译 标识符

定义:标识符,通俗来说,在java中,就是字符串;用途:标识符可以用来描述“包”“类”“方法”“变量”“常量”“参数”;组成:标识符由四种东西组成,分别是字母,数字,下划线,美元符号。使用规范:标识符不能以数字开头,就是“1sdf”是错误的。                 标识符只能由其余三种符号开头,任意字符组成,长度不限,不能有空格,不能使用关键字(比如interface等)和保留字(比如c...

2018-02-18 00:25:00 481

空空如也

空空如也

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

TA关注的人

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