自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 感谢那个卖红薯的!半月怒刷这几份算法笔记,我成功拿下字节跳动offer

前言今年的面试形势不容乐观,竞争愈发激烈,进大厂的难度又增加了。但是,梦想还是要有的,万一实现了呢?这不就有一只幸运鹅。我的一个朋友,几天前,他百年不见更新的朋友圈有了新动态,他居然晒了他的offer:半月怒刷这几份算法笔记,我成功拿下字节跳动offer,感谢那个卖红薯的!下面有不少前来贺喜的朋友,就是发言酸溜溜的。算法的地位大家都知道算法的重要性,有过面试经历的人都知道,目前国内的大厂已经越来越效仿硅谷公司的做法,通过面试给定题编程,来考察应聘者数据结构和算法的扎实程度。.

2020-12-12 11:08:36 271

原创 程序员技术精进、架构修炼、管理探秘必备教程-阿里十年巅峰之作

如何成为一个优秀的程序员?程序员这个职业所需要的知识、技能和经验,并不能完全从学校获得,更多地来自工作实践。本书系统且循序渐进地介绍了如何从菜鸟程序员成为高级研发人员或者架构师,以及如何积累知识和经验成为技术管理者,对于程序员在编码过程中需要用到的工具、模式、测试、沟通和架构知识,作者也给出了亲身实战经验总结。有需要的朋友帮忙一键三连后,扫描下方二维码即可免费获取!第 1 篇 技术精进第 1 篇 介绍程序员的技能成长路径,介绍如何通过学习来加速成长,并讲解非常重要的业务分析

2020-12-12 10:40:32 314 1

原创 JVM+Java并发+Java集合+Spring全家桶+Redis+中间件+分布式+数据库大厂架构师是如何炼成的《JAVA进阶秘籍》

作为一名优秀的程序员,技术面试都是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。如果你参加过一些面试,肯定会遇到一些这样的问题:1、看你项目都用的框架,熟悉Spring、mybatis等框架实现原理吗?2、 看你上面有接触过消息中间件,负载均衡、RPC框架等技术吗,MySQL分库分表有做过吗?3、 分布式架构设计,Redis分布式锁呢?是不是看上去很难,是不是和自己准备的“题库”中的问题不一样?不知道从何处下手?如果你有这种感觉,那么说明你的技.

2020-12-11 16:24:44 226

原创 网友:欲戴王冠,必承其重!-同样的95后人家阿里p6月薪3W,看了下他的工资单,我哭了!

95年阿里P6工程师,最近在某匿名区晒出3万+税后工资,引来一大批网友吐槽和羡慕,但是阿里真的不好进呀!今天给对大家分享一份可进大厂的超赞笔记!!!先看这几个大厂招聘需求...这份笔记足以支撑你面试过程中所有的「高并发编程」问题!!!笔记介绍:该笔记集合了「JUC同步锁、CAS、AQS、门闩/篱笆、锁升级、锁优化、读写锁、可见、有序、原子、内存屏障、缓存一致性」等N多技术点。能有效帮你串联起来,快速加深对高并发编程深入理解!!!部分笔记截图:...

2020-12-11 13:56:37 3494

原创 速来白嫖 阿里研发科,首推SpringBoot、微服务、Nginx和Docker、Tomcat进阶笔记

前言微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。今天,就由某大厂一线架构师来手撕微服务架构,带你大战Spring Boot、Spring Cloud、Nginx和Docker、Tomcat,这些内容不信你看完还搞不懂!

2020-12-11 11:41:19 261 1

原创 需要掌握的技术点-才成为年薪50W的阿里P7,看看你会嘛?

现在 Java 相关岗位薪资越来越高、涨幅越来越大。通过职友集数据可以查看,以北京 Java 相关岗位为例,其中 【20k-30k】 薪酬的 Java 工程师,占到了整体从业者的 30.8%!北京 Java 工程师「工资收入水平 」如果你在中小型公司,其实 20K 左右,几乎已经是个极限,薪资想继续提升很困难。而在阿里巴巴 P7 级别的 Java 技术人员,薪资可以轻松达到 30K - 50K,这还不算股份和年终奖。但成为阿里 P7 级别的程序员,真的难么?其实也未必。..

2020-12-11 11:19:37 906

原创 你身为一个老程序员居然想的是传统行业养老,应届生都面进了阿里,坐着亿及流量的项目

阿里一面自我介绍 JWT的实现,请求的时候jwt的token怎么带过来,如果要注销的话怎么弄 cookie和session的关联 跨网站攻击如何解决,比如访问A网站过程中,同时点开了某个不太好的网站 302状态码对应的是什么 重定向的状态码和重定向地址放在响应信息的哪部分,重定向过程解释 在登录中用重定向解释 访问服务器之前先做判断,没登录情况下不能获取资源,如果不用框架的话怎么做 手写登录拦截 ioc,aop ioc作用 有个图形类的接口,然后有很多它的实现类,比如方形、长方形、

2020-12-11 10:58:32 201

原创 -凭借这406页笔记让你玩转Redis阿里大牛再出神作

提问?Redis的五种数据类型分别是由什么数据结构实现的?Redis的字符串数据类型既可以存储字符串(比如"hello world"),又可以存储整数和浮点数(比如10086和3.14),甚至是二进制位(使用SETBIT等命令),Redis在内部是怎样存储这些值的? Redis的一部分命令只能对特定数据类型执行(比如APPEND只能对字符串执行,HSET只能对哈希表执行),而另一部分命令却可以对所有数据类型执行(比如DEL、TYPE和EXPIRE),不同的命令在执行时是如何进行类型检查的?Redi

2020-12-11 10:25:14 99

原创 2020年java高频面试题锦集, Java 基础、容器、多线程、网络、设计模式、Spring/Spring MVC...... 看完想不进大厂都难

和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?155. 什么情况会导致 kafka 运行变慢?156. 使用 kafka 集群需要注意什么?Zookeeper157. zookeeper 是什么?158. zookeeper 都有哪些功能?159. zookeeper 有几种部署模式?160. zookeeper 怎么保证主从节点的状态同步?161. 集群中为什么要有主节点?162. 集群中有 3 台服务器,其中一个节.

2020-12-10 12:53:02 115

原创 00道Java面试题手册 -Java面试题总结(2020年多家公司整理)

Java面试手册目录一、性能优化面试专栏1.1、tomcat性能优化整理1.2、JVM性能优化整理1.3、Mysql性能优化整理二、微服务架构面试专栏2.1、SpringCloud面试整理2.2、SpringBoot面试整理2.3、Dubbo面试整理三、并发编程高级面试专栏四、开源框架面试题专栏4.1、Spring面试整理4.2、SpringMVC面试整理4.3、MyBatis面试整理五、分布式面试专栏5.1、分布式限流面试整理5.

2020-12-10 10:56:51 102

原创 【附源码笔记免费领取】终于有人把《数据结构与算法》带源码笔记给整理全了!!太牛了!

随着科学技术的发展,人工智能已经逐渐渗透到各个行业,这是一个相当有前景的专业领域。其中,算法工程师这一职位更是非常火爆,在急缺大量人才的同时,也吸引了众多求职者,那么,初学者该如何学好算法呢?这里我粗略的整理了一份比较好的资源分享给大家用于辅助学习,帮助大家更好的学好算法。话不多说,直接先上图如果你关注招聘试题,就会发现越是大公司,问的问题越基础,有的甚至问你什么是栈和队列,反而一些小公司会关心你做过什么系统,关注点不同。大公司更注...

2020-12-10 10:25:58 175

原创 面试字节跳动没压力了-2020年最新的“核心算法面试题汇总”

前言“人工智能”,“机器学习”,“大数据”,这些越来越常听到的字眼,背后其实都是一个个“算法”。诸多高新科技,似乎都离不开“算法”的“加持”。无论是什么语言,什么方向,学习算法是一件非常有必要的事情。现在很多互联网公司面试都会问到算法题,以腾讯、字节跳动为代表,尤其是对于应届生来说,算法是必问的知识点之一。所以,今天总结了2020年,截止到目前为止,常问到的一些算法题,希望能够对你接下来的面试有所帮助。扫描下方二维码获取更多资料!此外,有一道题我没有在leetcode上找到的题,频.

2020-12-09 17:26:26 1268

原创 为什么前后端分离了,我们比从前更痛苦?咋整呢!

目录为什么前后端分离了,你比从前更痛苦?为什么接口会频繁变动? 为什么接口文档永远都是不对的? 为什么测试工作永远只能临近上线才能开始?怎么破? aml-mocker开始 配置 .raml-config.json 入门篇:Mock Server 高级篇:动态 Server总结你有没有遇到过:前端代码刚写完,后端的接口又变了。 接口文档永远都是不对的。 测试工作永远只能临近上线才能开始。为什么前后端分离了,你比从前更痛苦?前后端分离早已经不是新闻,当真正分离之后确遇到了

2020-07-14 14:10:06 221

原创 靠一个HashMap的讲解打动了头条面试官,我的秘诀是

最近收集了一份github标星81.6k的Java面试突击手册,文末查看关注 转发+转发+转发 私信回复关键词 【学习】即可获取~预备知识位运算知识位运算操作是由处理器支持的底层操作,底层硬件只支持01这样的数字,因此位运算运行速度很快。尽管现代计算机处理器拥有了更长的指令流水线和更优的架构设计,使得加法和乘法运算几乎与位运算一样快,但是位运算消耗更少的资源。常用的位运算如下:位与 &(1&1=1 1&0=0 0&0=0)位或 |(...

2020-07-13 15:07:27 606 1

原创 真香定律!用过Gradle之后发现真好用,有点嫌弃Maven了

工作之前,Guide 也是一直使用 Maven 。别人向我安利 Gradle 的时候,我总是不屑一顾,觉得这东西肯定没有 Maven 好,毕竟 Maven 这么多人用对吧!后面,在工作中真正用到它之后,才真正感受到它的好用。我想表达意思是:当我们想要去评判一件事情的好坏之前,比如你的项目技术负责人把构建工具从 Maven 换成了 Gradle ,我们一定要首先了解这件事情的本质。个人感觉 Gradle 很多方面都比 Maven 要更好用!比如 Gradle 的项目依赖文件build.Gradle .

2020-07-13 09:50:35 429

原创 给 Spring Boot 项目减减肥!18.18M 到 0.18M 是如何做到的?

一、前言SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。这个时候如果想要对线上运行工程有一些微调,则非常痛苦二、瘦身前的Jar包添加小助手VX:xuanwo008即可获取独家整理的学习资料!Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot...

2020-07-11 14:47:15 212

原创 MySQL怎么学习?年薪近百万架构师送“满级“笔记,封神之路重燃

数据库是一个综合系统,其背后是发展了几十年的数据库理论。也许你会觉得数据库并不难,因为你可以熟练地写出SQL,也可以在各个客户端里玩得游刃有余。但就以最常见的MySQL为例,作为程序员,你在使用MySQL的过程中,是不是曾经遇到过类似的问题:为什么我的count(*)这么慢? 为什么我建了索引,却根本没有效果? 为什么我只查一行的语句,也执行这么慢? MySQL对于大表要怎么优化?前段时间,有个大佬面上了某大厂,送给我一批学习资料,整理出来,就形成了以下文档(数据库方面),主要包括MySQL面试

2020-07-11 09:26:16 142

原创 Spring Boot API 接口文档 Swagger 入门(上)

1. 概述 2. 快速入门 Swagger 3. 更好看的 Swagger UI 界面 4. 更强大的 YApi1. 概述目前,大多数系统都采用前后端分离。在享受前后端分离的好处的同时,接口联调往往成为团队效率的瓶颈,甚至产生前后端的矛盾。简单归结来说,有几方面的原因:问题一,接口设计滞后。后端团队往往不喜欢 API 接口设计先行,提前和前端沟通好接口。而在开发阶段的中后期,在后端提供 API 接口后,而这些接口和前端的预期有一些偏差,很容易就产生抱怨,特别是项目周期比较紧张的情况下。 .

2020-07-10 20:16:27 368

原创 腾讯T9纯手写基于SpringCloud+Boot+Docker开发源码笔记

这份笔记中的电商平台移动商城开发+商家管理后台与sso设计+平台管理后台开发是基于Spring Cloud+Spring Boot+Docker开发的,同时每个项目的源代码也是在笔记当中(已上传GitHub)!9 电商平台移动商城开发(源码已上传GitHub)移动商城是电商平台一个非常重要的组成部分,它面向终端用户,为用户提供商品浏览、选购、订单查询和个人信息管理等服务,这些服务分布在不同的应用中,这些应用的设计也分散在各个微服务工程的“wap" 模块中。本章介绍怎么将这些分散的应用合并在一起使用,

2020-07-10 14:22:50 262

原创 面试官常问的31道Java核心面试题,熬夜整理好送给你

这次我花了一周的时间,准备了 31 道 Java 核心面试题,希望能够帮助到读者。01、请说出 Java 14 版本中更新的重要功能Java 14 发布于 2020 年 3 月 17 日,更新的重要功能有:switch 表达式 instanceof 增强表达式,预览功能 文本块,第二次预览 Records,预览功能02、请说出 Java 13 版本中更新的重要功能Java 13 发布于 2019 年 9 月 17 日,更新的重要功能有:文本块,预览功能 switch...

2020-07-08 14:24:23 236

原创 MySQL的索引是什么?怎么优化?

索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。一、导致SQL执行慢的原因:1.硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。2.没有索引或者索引失效。(一般在互联网公司,DBA会在半夜把表锁了,重新建立一遍索引,因为当你删除某个数据的时候,索引.

2020-07-08 09:32:42 194

转载 Java集合总结

文章目录概述 List ArrayList LinkedList Vector CopyOnWriteArrayList Set HashSet LinkedHashSet TreeSet CopyOnWriteArraySet Queue Map HashMap LinkedHashMap Hashtable TreeMap ConcurrentHashMap概述说起集合,算是三顾茅庐了,在我初学Java的时候,曾接触过集合,那个时候只会用像Collectio

2020-07-07 14:58:14 75

原创 面试官:如何使用缓存优化系统性能?

缓存是我们提高系统性能的一项必不可少的技术,无论是前端、还是后端,都应用到了缓存技术。前端使用缓存,可以降低多次请求服务的压力;后端使用缓存,可以降低数据库操作的压力,提升读取数据的性能。我们将从前端到服务端,系统了解下各个层级的缓存实现,并分别了解下各类缓存的优缺点以及应用场景。前端缓存技术如果你是一位 Java 开发工程师,你可能会想,我们有必要去了解前端的技术吗?不想当将军的士兵不是好士兵,作为一个技术人员,不想做架构师的开发不是好开发。作为架构工程师的话,我们就很有必要去了解.

2020-07-07 09:42:50 1115

原创 教你完美搞定 Spring Boot 反爬虫、防止接口盗刷

kk-anti-reptile 是适用于基于 spring-boot 开发的分布式系统的反爬虫组件。系统要求基于 spring-boot 开发(spring-boot1.x, spring-boot2.x均可) 需要使用 redis工作流程kk-anti-reptile 使用基于 Servlet 规范的的 Filter 对请求进行过滤,在其内部通过 spring-boot 的扩展点机制,实例化一个 Filter,并注入到 Spring 容器 FilterRegistrationBean 中,

2020-07-06 20:23:16 1267

原创 没有微服务项目经验,就别去面试官那里送人头了

又是跟技术战斗的一天!后台都是在问微服务架构的面试题怎么答,想聊聊微服务架构了。微服务架构一跃成为 IT 领域炙手可热的话题也就这两年的事,大量一线互联网公司因为庞大的业务体量和业务需求,纷纷投入了微服务架构的建设中,像阿里巴巴、百度、美团等大厂,很早就已经开始了微服务的实践和应用。一线大厂的带动,让微服务成为了 Java 系程序员面试的必备考点。其中是否具有 Spring Cloud 技术能力的程序员,也是企业招聘中影响薪资的核心要素之一。招聘要求基本都有微服务架构..

2020-07-06 15:26:59 932

原创 什么是UML?为什么要用UML?

什么是UML?UML是Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。为什么要用UML?通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。Page-Jones在《Fundamental Object-Oriented Design in UML》 一书中总.

2020-07-06 09:35:01 20350

原创 这份Java学习文档如何做到让面试官都眼红的?让你一路架构冲云霄

JavaGuide 诞生2018-5-7 这一天 ,JavaGuide正式诞生。不知不觉,JavaGuide目前已经接近 81k 的 star 了。实际上,本身开源就不单纯是开源源代码。Github 上也有很多非常不错的非代码类别的项目,感兴趣的可以看看《Github 上 Star 数最多的 10 个项目,看完之后很意外!》这篇文章。《How to Contribute to Open Source(如何为开源做出贡献?)》这篇文章中也指出说:“虽然“开源”通常指软件,但你可以在任何事...

2020-07-03 19:36:49 256

原创 System.gc如何做到暂停整个进程?SystemGC完全解读篇一定要看

JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我们都可以写篇文章来做一个介绍,本文重点介绍下System.gc的原理 或许大家已经知道如下相关的,需要源码的添加小助手VX:xuanwo008 备注好“CSDN”信息概述JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.

2020-07-03 17:35:12 845

转载 《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多给岁月以文明,而不是给文明以岁月前言王潇:格局决定了一个人的梦想,梦想反过来决定行为。那格局是什么呢?格局是你能够看见的深度、广度和密度。王潇认为,格局是一本本书搭建起来的,正如她所言:“读书让我知道世界很大,然后才知道推开门去看看这个世界。”之前有一篇文章我写到了几乎是一个技术人从0到1的整个生涯了,其实大家发现根本就没有终点。《程序人生》风雨十年-从大学到技术专家我做了啥?我们的一生其实也基本上都在学习,那提到学习,我第一时间..

2020-07-03 10:39:31 719

原创 这些Mysql索引底层知识你不知道?那还想进大厂?

前言上一篇总结了Mysql的锁机制,通过读者的反映和阅读量显示,总体还是不错的,感兴趣的可以阅读一下[]。写了那么多的Mysql文章,有读者问我是不是dba,工作真的需要掌握那么深吗。我想说的是:我是一名Java全职开发人员不是dba。假如你只满足于日常的crud,你可以放弃这些底层的知识,可以不必学的那么深,若是你想往高处走,这些底层的知识,是你必备的。话不多说,这一篇总结是讲解Mysql的索引,之前写过一篇关于索引的,主要是讲解索引的底层的数据结构B+tree。这一篇是讲解Mysql

2020-07-02 19:55:12 155

转载 Attach机制实现完全解读

Attach是什么在讲这个之前,我们先来点大家都知道的东西,当我们感觉线程一直卡在某个地方,想知道卡在哪里,首先想到的是进行线程dump,而常用的命令是jstack ,我们就可以看到如下线程栈了//添加小助手VX:xuanwo008 即可领取全套资料2014-06-18 12:56:14Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode):"Attach Listener" dae..

2020-07-02 14:48:57 2364

原创 JDK8下的僵尸(无法回收)类加载器

概述现象是有一些类加载器是作为key放到WeakHashMap里的,但是经历过多次full gc之后,依然坚挺地存在内存里,但是从代码上来说这些类加载器是应该被回收的,因为没有任何强引用可以到达这些类加载器了,于是我们做了内存dump,分析了下内存,发现除了一个WeakHashMap外并没有别的GC ROOT途径达到这些类加载器了,那这样一来经过多次FULL GC肯定是可以被回收的,但是事实却不是这样,为了让这个问题听起来更好理解,还是照例先上个Demo,完全模拟了这种场景。Demo首先我们创建

2020-07-01 19:55:05 481

原创 JVM源码分析——Jstat工具怎么用?看这篇就够啦

概述jstat是hotspot自带的工具,和java一样也位于JAVA_HOME/bin下面,我们通过该工具可以实时了解当前进程的gc,compiler,class,memory等相关的情况,具体我们可以通过jstat -options来看我们到底支持哪些类型的数据,譬如JDK8下的结果是:-class-compiler-gc-gccapacity-gccause-gcmetacapacity-gcnew-gcnewcapacity-gcold-gcoldcapacity-gc

2020-07-01 08:57:04 211

原创 从X86指令深扒JVM的位移操作

概述之所以会写这个,主要是因为最近做的一个项目碰到了一个移位的问题,因为位移操作溢出导致结果不准确,本来可以点到为止,问题也能很快解决,但是不痛不痒的感觉着实让人不爽,于是深扒了下个中细节,直到看到Intel的指令规约才算释然,希望这篇文章能引起大家共鸣。本文或许看起来会比较枯燥,不过其实认真看挺有意思的,如果实在看不下去,告诉你一个极简路径,先看下下面的Demo,然后直接跳到后面的小结,如果懂了,别忘记顺便点个赞,请叫我雷锋,哈哈。Demo还是从一个简单的例子说起public cla

2020-06-30 19:48:15 193

原创 JVM源码分析 ——System.currentTimeMillis及nanoTime原理详解

上周有人问了我一个现象很诡异的问题,说JDK7和JDK8下的System.nanoTime()输出完全不一样,而且差距还非常大,是不是两个版本里的实现不一样,之前我也没注意过这个细节,觉得非常奇怪,于是自己也在本地mac机器上马上测试了一下,得到如下输出:~/Documents/workspace/Test/src ᐅ /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java NanosTest148026531

2020-06-30 15:27:32 302

原创 JVM源码分析 | 到底有哪些因素决定了一个进程能创建多少线程?

虽然这篇文章的标题打着JVM源码分析的旗号,不过本文不仅仅从JVM源码角度来分析,更多的来自于Linux Kernel的源码分析,今天要说的是JVM里比较常见的一个问题这个问题可能有几种表述一个Java进程到底能创建多少线程? 到底有哪些因素决定了能创建多少线程? java.lang.OutOfMemoryError: unable to create new native thread的异常究竟是怎么回事不过我这里先声明下可能不能完全百分百将各种因素都理出来,因为毕竟我不是做Linux.

2020-06-30 08:54:15 282

原创 JVM源码分析中不得不提到的堆外内存

今天碰到一个比较奇怪的问题,在设置了-XX:MaxDirectMemorySize=1G的前提下,然后统计所有DirectByteBuffer对象后面占用的内存达到了7G,远远超出阈值,这个问题很诡异,于是好好查了下原因,虽然最终发现是我们统计的问题,但是期间发现的其他一些问题还是值得分享一下的。不得不提的DirectByteBuffer构造函数打开DirectByteBuffer这个类,我们会发现有5个构造函数DirectByteBuffer(int cap);DirectByt.

2020-06-29 20:26:40 4737

原创 小心JDK8造成的内存泄漏

如今JDK8成了主流,大家都紧锣密鼓地进行着升级,享受着JDK8带来的各种便利,然而有时候升级并没有那么顺利?比如说今天要说的这个问题。我们都知道JDK8在内存模型上最大的改变是,放弃了Perm,迎来了Metaspace的时代。我们之前一般在系统的JVM参数上都加了类似-XX:PermSize=256M -XX:MaxPermSize=256M的参数,升级到JDK8之后,因为Perm已经没了,如果还有这些参数JVM会抛出一些警告信息,于是我们会将参数进行升级,比如直接将PermSize改成Metaspa

2020-06-29 14:53:58 889

原创 还不知道HDFS 深入理解 和 读写流程吗?

HDFS 深入 理解一. namenode和datanode的功能namenode: 管理文件的元数据处理来自客户端的请求datanode: 保存数据本身少量的元数据: 块的长度, 校验和, 时间戳二. namenode从集群中的每个datanode周期性的接受心跳信息和块报告心跳信息心跳是每3秒一次心跳返回结果带有NameNode给该DataNode的命令如(复制块,删除)如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。块报告Data

2020-06-27 20:15:26 72

原创 JVM源码分析篇 | javaagent原理深度解读

本系列文章都是基于Hotspot/JDK源码,从源码角度来分析我们常见的JVM参数,Java概念以及对应的实现原理及玩法等,希望从根本上来理清Java知识点,我们会不定期地分享这个系列的文章,这些文章可能源于最近碰到的问题,也可能是同学们的提问,甚至有可能是我们突然想到的话题等,有些东西我们现在可能也不一定清楚,但是我们非常愿意花时间去了解清楚并分享给大家。本文重点讲述javaagent的具体实现,因为它面向的是我们java程序员,而且agent都是用java编写的,不需要太多的c/c++编程基础,不过

2020-06-27 17:30:59 652 1

空空如也

空空如也

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

TA关注的人

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