
Java
文章平均质量分 90
加班不秃顶
这个作者很懒,什么都没留下…
展开
-
深入浅出JVM(十七)之并发垃圾收集器CMS
前文描述过,当GC时需要枚举的GC根节点需要极短的停顿(STW)而在遍历GC引用链时,如果用户线程是停顿的,那么不会改变引用,GC线程遍历标识即可但随着堆内存中对象的增多,引用链会越来越长,如果持续让用户线程停顿,在某些需要低延迟的场景是不理想的因此希望能在这个环节让用户线程和GC线程能够并发执行,并发执行就会存在改变对象引用,可能导致对象消失问题,其中可以使用增量更新和原始快照的方式解决,而CMS使用的就是增量更新本文根据并发垃圾收集器CMS深入浅出的解析CMS执行流程、优缺点以及配置参数等。原创 2024-12-13 15:09:36 · 427 阅读 · 0 评论 -
深入浅出JVM(十六)之三色标记法与并发可达性分析
本篇文章围绕并发的可达性分析深入浅出的解析三色标记法、并发可达性分析可能出现的浮动垃圾,对象丢失问题以及解决对象丢失问题的增量更新、原始快照两种方式在三色标记法中,黑色代表已经扫描完成、灰色代表至少有一个引用未扫描、白色代表还未扫描,GC根节点默认黑色隐式可达三色标记法从GC根节点开始将引用对象变成灰色并放入灰色集合,并将自己变成黑色,接着再从灰色集合中取出下一个对象进行处理,直到灰色集合为空,还是白色的对象就是不可达对象。原创 2024-12-12 21:04:35 · 832 阅读 · 0 评论 -
深入浅出JVM(十五)之垃圾收集器(上篇)
本篇文章作为垃圾收集器系列文章的上篇,主要介绍从各个方面对垃圾收集器的分类、GC性能指标、串行垃圾收集器、并行垃圾收集器等垃圾收集器可以划分为串行、并行、并发垃圾收集器,其中串行表示单GC线程独自执行、并行表示多GC线程同时刻执行、并发表示GC、用户线程并发执行发生GC时需要考虑到的性能指标是高吞吐量(GC执行效率高)、低延迟(GC时的停顿时间尽量低),这两个指标往往不能都满足,不同的垃圾收集器有不同特点适合在不同场景下发挥作用。原创 2024-12-12 21:03:07 · 845 阅读 · 0 评论 -
深入浅出JVM(十四)之内存溢出、泄漏与引用
本篇文章围绕引用深入浅出的解析内存溢出与泄漏、强引用、软引用、弱引用、虚引用当JVM没有足够的内存为新对象分配空间时就会发生内存溢出抛出OOM内存溢出有两种情况,一种是分配的资源太少,不满足必要对象的内存;另一种是发生内存泄漏,不合理的设置对象的生命周期、不关闭资源都会导致内存泄漏使用最常见的就是强引用,强引用只有在可达性分析算法中不可达时才会回收,强引用使用不当是造成内存泄漏的原因之一使用软引用时,只要内存不足触发Full GC时就会对软引用进行回收使用弱引用时,只要发生GC就会对弱引用进行回收。原创 2024-12-12 21:02:16 · 731 阅读 · 0 评论 -
深入浅出JVM(十三)之垃圾回收算法细节
本篇文章围绕垃圾回收算法细节深入浅出解析STW、根节点枚举避免长时间STW、安全区与安全区域、记忆集解决跨代引用增大GC Root扫描范围、维护卡表的写屏障等为了避免用户线程改变引用关系,能够正确的进行可达性分析,需要stop the word 停止用户线程枚举GC Roots时为了避免长时间的STW,使用OopMap记录引用位置,避免扫描方法区由于引用关系的变化,实时更新维护OopMap的开销是很大的,只有在循环、异常跳转、方法调用位置的安全点才更新OopMap,因此只有在安全点中才能正确的进行GC。原创 2024-12-12 21:00:05 · 650 阅读 · 0 评论 -
深入浅出JVM(十二)之垃圾回收算法
本篇文章围绕垃圾回收算法,深入浅出解析垃圾回收分类、标记清除、复制、标记整理、分代收集、增量收集、分区算法等多种算法从垃圾回收空间上划分可以分为Full GC回收整个堆加上元空间、Minor GC回收新生代、major GC回收老年代、mixed GC回收新生代加老年代标记清除算法会遍历引用链标记可达对象从而清理不可达对象,会产生内存碎片,速度一般复制算法不会产生内存碎片,并且速度很快,但是会浪费survivor区一半空间,并且会移动对象。原创 2024-12-12 20:58:52 · 912 阅读 · 0 评论 -
深入浅出JVM(十一)之如何判断对象“已死”
主要探讨了 JVM 中如何判断对象“已死”。介绍了引用计数法,其有循环引用等缺点,JVM 未采用。重点讲解了可达性分析算法,包括其原理、可作为根节点的对象及缺点。还阐述了对象真正死亡需经过至少 2 次标记,不可达对象会经筛选,有必要执行 finalize 方法的放入队列,若在方法中自救成功则可达,finalize 方法仅执行一次。原创 2024-12-11 16:12:38 · 660 阅读 · 0 评论 -
深入浅出JVM(十)之字节码指令(下篇)
本文是关于字节码指令的下篇,解析了方法调用与返回、操作数栈管理、控制转义、异常处理、同步等字节码指令。包括各类方法调用指令,如静态、私有等;操作数栈的出栈入栈指令;条件跳转等控制转义指令;抛出异常的处理指令;以及同步控制的加锁解锁指令,并说明了异常时的处理情况。原创 2024-12-11 16:10:14 · 1033 阅读 · 0 评论 -
深入浅出JVM(九)之字节码指令(上篇)
这篇文章是关于 JVM 字节码指令(上篇)的解析。介绍了由于指令种类多分为上下篇,上篇包括加载存储、算术、类型转换、对象创建与访问等指令。指出字节码指令多以特定字母开头,数据来源多样,算术指令用后缀表达式,类型转换有宽化和窄化且可能失精度,对象创建与访问指令包含多种具体操作。还提到了参考资料和相关交流方式。原创 2024-12-11 16:07:15 · 980 阅读 · 0 评论 -
深入浅出JVM(八)之类加载器
深入探讨了 JVM 中的类加载器,包括其分类(引导类和自定义类,后者包含扩展类、系统类等)、种类、双亲委派模型、源码解析、自定义类加载器及热替换。类加载器将字节码生成 Class 对象加载到虚拟机,有显式和隐式加载方式。双亲委派模型保证核心类库安全,某些情况存在缺点。基本类型无需加载,数组类型加载器取决于元素。不同类加载器加载的相同类不是同一个类,通过不同类加载实现热替换。原创 2024-12-11 15:55:57 · 998 阅读 · 0 评论 -
深入浅出JVM(七)之执行引擎的解释执行与编译执行
本文围绕 JVM 执行引擎展开,包括解释器与即时编译器的执行方式、优缺点及原理。执行引擎由解释器、即时编译器和垃圾收集器构成,默认混合执行。即时编译器分 C1、C2,C2 有逃逸分析优化。只编译热点代码,通过计数器探测。解释器、C1、C2 同时工作,分层编译。原创 2024-12-11 15:51:11 · 793 阅读 · 0 评论 -
深入浅出JVM(六)之前端编译过程与语法糖原理
深入浅出JVM(六)之前端编译过程与语法糖原理原创 2024-12-10 22:16:28 · 635 阅读 · 0 评论 -
深入浅出JVM(五)之Java中方法调用
深入浅出JVM(五)之Java中方法调用原创 2024-12-10 22:10:04 · 1225 阅读 · 0 评论 -
深入浅出JVM(四)之类文件结构
深入浅出JVM(四)之类文件结构原创 2024-12-10 22:05:42 · 787 阅读 · 0 评论 -
深入浅出JVM(二)之运行时数据区和内存溢出异常
主要介绍了 JVM 运行时的内存区域(包括程序计数器、虚拟机栈、本地方法栈、堆、方法区、直接内存等)及其可能出现的内存溢出异常。程序计数器线程私有且无 OOM 异常;虚拟机栈和本地方法栈服务方法,可能有栈溢出和 OOM 异常;堆存储对象,可能因内存不足或泄漏导致 OOM;方法区存储类信息等,大量加载类可能 OOM;直接内存也可能 OOM。原创 2024-12-09 16:25:32 · 813 阅读 · 0 评论 -
深入浅出JVM(一)之Hotspot虚拟机中的对象
主要介绍了 Hotspot 虚拟机中的对象相关知识,包括对象创建的五个步骤(类加载、分配内存等),对象的内存布局(对象头、实例数据、对齐填充),对象的访问定位方式(直接指针和句柄访问),还提及内存分配优化及对象占用空间的分析。原创 2024-12-09 16:21:01 · 803 阅读 · 0 评论 -
MySQL事务与锁,看这一篇就够了!
主要介绍了 MySQL 中事务与锁的相关知识,包括事务的 ACID 原则、实现方式(redo log、undo log 等)、MVCC 机制,锁的类型(行锁、表锁)、隔离级别及其可能出现的问题,以及死锁的排查和处理。还阐述了加锁规则,如不同隔离级别使用的锁、加锁单位等。原创 2024-12-09 16:18:34 · 732 阅读 · 0 评论 -
MySQL结构流程,看这一篇就够了!
MySQL结构流程,看这一篇就够了!原创 2024-12-08 09:30:00 · 491 阅读 · 0 评论 -
Java里你为什么不用这种优雅的方式封装处理和抛出异常?
Java里你为什么不用这种优雅的方式封装处理和抛出异常?原创 2024-12-06 20:16:46 · 263 阅读 · 0 评论 -
HashMap 的实现原理和扩容原理是怎样的?
HashMap 的实现原理和扩容原理是怎样的?原创 2024-12-06 20:10:00 · 881 阅读 · 0 评论 -
深入浅出kafka【3】消费者客户端详解
深入浅出kafka【3】消费者客户端详解原创 2024-12-06 20:00:57 · 883 阅读 · 0 评论 -
4年Java开发经验,应聘薪资16K却被秒杀,这是经历了些什么?
现在正值大家跳槽面试的高峰时期,今天小编给大家分享一个案例:4年Java开发经验,应聘薪资16K没过...咱先看这位老弟的简历基本情况:xx,26岁,毕业于青岛理工大学,有4年的开发经验…专业技能: 熟悉Sping 了解SpringMVC、SpringBoot、 Mybatis 等框架、了 解SpringCloud微服务 熟悉常用项目管理工具: SVN、 GIT、MAVEN、 Jenkins 熟悉 Nginx、tomcat 等的调优 熟悉多线程、并.原创 2021-08-27 21:11:20 · 1404 阅读 · 1 评论 -
爆款!Alibaba内部疯传《Java权威指南(面试)》,不肝后悔!
假如“金三银四”过得匆匆忙忙不理想,那么,满打满算还有40天的样子即是“金九银十”,这次你准备好了吗?莫慌莫慌,“面试造火箭,工作拧螺丝”说得不无道理,偶然从朋友那得到的这份Alibaba内部疯传《Java权威指南(面试)》堪称精品,或可能助你一臂之力,事半功倍!注:《Java权威指南(面试)》分七大部分:分布式、中间件、大数据与高并发、数据库、设计模式与实践、数据结构与算法、面试题举例等逐一攻克,迅速造火箭应对面试官!全文会一一详细展现,且如需源文档pdf进行深入学习的分享便是--【点我.原创 2021-07-21 14:22:02 · 660 阅读 · 2 评论 -
渣本立志阿里P7,历经4面技5面HR,收获36*16薪
前言来自一个5面阿里的面经总结:4面技术+5面HR我觉得有一个能够找一份大厂的 offer的想法,这是很正常的,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司 / 小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的。因为大厂面试一般都有专业团队负责,某个知识点你到底是掌握了还是单原创 2021-07-20 17:32:17 · 653 阅读 · 2 评论 -
牛逼!阿里出品彩印版《Elasticsearch实战》文档,必须拿下!
众所周知,ELK是包含但不限于Elasticsearch(简称es)、 Logstash、Kbana三个开源软件的组成的一个整体。这三个软件合成ELK,是用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana)的一整套解决方案,所以也称作ELK stack。Elasticsearch是ELK的核心,偶然从朋友那里获得阿里内部的彩印图文版<Elasticsearch实战>文档,从es底层对文档、索引、搜索、聚合、集群进行介绍,从搜索和聚合分析实例来..原创 2021-07-05 14:37:22 · 361 阅读 · 2 评论 -
BATJ必备神技:数据结构与算法,程序员必过的坎!
数据结构与算法,程序员必过的坎?不掌握一定挤不进BATJ的神技?为啥今天会如此突然的提到“数据结构与算法”呢?这个缘由还得从吐槽我的朋友开始...其实啊,我这个朋友一直都想进个BATJ,学历和能力也都还不错啦,但是却始终挤不进呀,太难了吧..说到底,还是数据结构与算法没有弄明白,所以哪怕刷再多的LeetCode,也永远只能掌握一些些的基础知识,一旦涉及到图、排序、递归等等这些个高级点的就凉凉了呗~所以,关于数据结构与算法,我们真的应该好好用心学一学,打好这个基础,争取拿下这项进阶原创 2021-06-28 22:17:53 · 190 阅读 · 1 评论 -
教你手撸一个Spring框架,从Spring.xml解析到注册Bean对象
一、前言你写的代码,能接的住产品加需求吗?接,是能接的,接几次也行,哪怕就一个类一片的 if...else 也可以!但接完成什么样可就不一定了,会不会出事故也不是能控制住的。那出事故时,你说因为我写 if...else 多了导致代码烂了,但可是你先动的手啊:你说的需求还得加、你说的老板让上线、你说的合同都签了,搬砖码农的我没办法,才以堆代码平需求,需求太多不好搞,我才以搬砖平需求!诸侯不服,我才以兵服诸侯,你不服,我就打到你服!但代码烂了有时候并不是因为需求加的快、也不是着急上线。因为往往在原创 2021-06-22 16:47:26 · 280 阅读 · 2 评论 -
真香!180页100+题15W+字解析的《Java高级面试指南》,果断收下!
近期有很多朋友在考虑跳槽,“面试造火箭,工作拧螺丝”这话说的十分吻合他们的现状!而说到准备面试,那是真不容易,趁着空挡我也收集了不少Java高级面试资源!而这180页100+题15W+字解析的《Java高级面试指南》更是深得我心,100+题包含:消息队列、Redis缓存、MySQL的分库分表读写分离、高并发系统设计、分布式、高可用、SpringCloud微服务架构等的内容,每一道题皆从面试官的角度分析题意,然后再附带完整的解析,先看题目,答不上的再翻阅答案!注意:考虑到篇幅原因,这份《Java原创 2021-06-22 13:21:02 · 391 阅读 · 2 评论 -
Alibaba5轮视频面:同事+组长+主管+项目+HR,收割Java岗offer!
前言前段时间有幸被阿里的一位同学内推,参加了阿里巴巴Java岗位的面试,本人19年双非本科软件工程专业,目前有一年半的工作经验,面试前就职于一家外包公司。如果在自己本人拿到offer之前,如果有人告诉我一年工作经验可以直接从外包进阿里,我肯定是不信。但是真的发生在自己身上,真的觉得非常非常幸运与不可思议。Alibaba的这次面试总共有五面,包括:第一轮电话面试(同事面):将近1h20min,主要是介绍项目与基础知识 第二轮视频面试(组长面):将近1h,同样也是介绍项目与基础知识 第三轮视频面原创 2021-06-18 14:05:05 · 481 阅读 · 2 评论 -
硬核!最全“Java25面试宝典+Java29核心知识集”,一箭双雕杠秋招!
2021年的高考就这么结束了,莫名地想起自己毕业的时候,一阵心塞满满呀...搬砖也有好几年了,计划着下半年跳槽试试,离“金九银十”也就这么两三个月...现在着手准备着以防万一自己措手不及,这不,这几天刚整理出炉的两份最全“Java面试宝典+Java核心知识集”(very very good!!!),因此有了今天咱这篇文章,没错,我又来分享干货了!!!Java面试宝典说到这Java面试宝典,我不得不说,这估摸这怕是目前最全的一份面试合集了,包含了一下整整25个Java专题知识的内容,收集的原创 2021-06-09 13:02:21 · 426 阅读 · 2 评论 -
“闭关修炼”,吃透这本“Java核心知识”,跳槽面试不心慌!
“闭关修炼”的你是不是已经在为“金九银十”跳槽季发愁呢?若是能将小编今天说的这富含30个章节的Java核心面试知识整理(包括:VM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算),好好吃透消化,让你面试原创 2021-06-08 17:51:50 · 205 阅读 · 1 评论 -
最全SpringBoot学习教程,GitHub上20K+star,帮你解决95%的问题!
灵魂发问:我们为什么要学习SpringBoot???官方对 Spring Boot 的定位:Build Anything, Build 任何东西。Spring Boot 旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置。 同时我们也来看一下官方对后面两个的定位:SpringCloud:Coordinate Anything,协调任何事情; SpringCloud Data Flow:Connect everything,连接任何东西。仔细品味一下,Spring 官网对 Spring Bo原创 2021-06-07 17:20:22 · 272 阅读 · 2 评论 -
美团一面凉凉,MySQL+Java+Redis+算法+网络+Linux等一个都讲不清,悲催!
面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为MySQL+Java+Redis+算法+网络+Linux等六类,接下来分享一下我的这次美团一面面经++一些我的学习笔记。注意注意:需要小编整理的MySQL+Java+Redis+算法+网络+Linux等六类面试答案、学习笔记、思维脑图(xmind)的朋友可以点击下面的链接进去免费领取01 MySQL相关1.1 美团面..原创 2020-05-13 13:34:09 · 547 阅读 · 0 评论 -
一箭双雕!Alibaba架构师,纯手打Cloud+Boot微服务架构笔记!
微服务技术并不复杂,开发者为啥要为它秃头?后台都是在问微服务架构的面试题怎么答,想聊聊微服务架构了。微服务架构一跃成为 IT 领域炙手可热的话题也就这两年的事,大量一线互联网公司因为庞大的业务体量和业务需求,纷纷投入了微服务架构的建设中,像阿里巴巴、百度、美团等大厂,很早就已经开始了微服务的实践和应用。一线大厂的带动,让微服务成为了Java程序员面试的必备考点。其中是否具有 Spring Cloud 技术能力的程序员,也是企业招聘中影响薪资的核心要素之一。招聘要求基本都有微服务架构!Spring原创 2020-07-31 17:46:46 · 256 阅读 · 0 评论 -
最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发
最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题。我大概是分成了Java基础、中级、高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调优,设计模式,算法与数据结构,并发,Linux等15个小模块。每个小模块文章里估计就只能只给出部分的面试题目,不然要是全部写出来,篇幅不够呀。而且还有相应的答案,太难了,所以直接给大家提供最完整的答案解析文档,点击这里一、Java基础什么是 Java 程序的主类?应用程序和小程序的主类有何不同? 构造器.原创 2020-07-31 17:47:14 · 311 阅读 · 0 评论 -
轰炸微服务:RPC+Dubbo+SpirngBoot+SpringCloud Alibaba+Docker+K8s!
又被微服务轰炸?莫慌莫怕!小编连续25天,整出这份最新最全「学习教程」送你! 微服务架构学习教程:RPC+Dubbo+SpirngBoot+SpringCloud Alibaba+Docker+K8s手绘了整个微服务架构的知识体系脑图,还有针对分部的Dubbo、SpirngBoot、SpringCloud、Docker、K8s等都有其最详细具体的知识脑图分解,不过小...原创 2020-08-26 19:22:25 · 327 阅读 · 0 评论 -
真真香!耗时大半个月收整全套「Java架构进阶pdf」没白费
2020年的“金九银十”就这么来了,也到了该发福利的阶段了,花了我大半个月时间收整了全套的「Java架构进阶pdf」,这一波下来,刷完你就会知道,真真香啊,我的心血果然,没白费!请注意:关于全套的「Java架构进阶pdf」,我会从面试-筑基-框架-分布式-微服务-调优的等六个方面展开,顾及篇幅,只截图展示大概内容,完整的全套pdf [在这]Java架构进阶之面试篇面试这一块,分别有基础、中级、高级等三部分,一步一步检测。基础面试中级开发面试高级面试...转载 2020-09-07 10:20:44 · 516 阅读 · 0 评论 -
如何通过使用“缓存”相关技术,解决“高并发”的业务场景案例?
01 前言我们将先从Redis、Nginx+Lua等技术点出发,了解缓存应用的场景。通过使用缓存相关技术,解决高并发的业务场景案例,来深入理解一套成熟的企业级缓存架构是如何设计的。02 Redis基础2.1 简介Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list),原创 2021-06-07 15:19:20 · 291 阅读 · 2 评论 -
三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经!
美团一面:1、ConcurrentHashMap实现原理2、HashMap实现原理3、锁的实现原理4、synchronized和重入所实现原理以及区别5、一个char[]数组,里面有空格,以&结束。6、jvm内存模型,都存什么。以及垃圾回收算法,垃圾回收器。7、内存溢出的场景8、设计模式,以及自己使用的场景。9、Sping的AOP实现原理,以及对象生成方式的种类,单例的还是原型的。二面:1、分布式锁。2、逐层遍历树。3、原子类实现..原创 2020-10-16 17:17:03 · 1805 阅读 · 12 评论 -
“HUAWEI”4面技术5面HR,基础-项目-技术,Offer擦肩而过?
大厂面试真题向来是求职者的最佳练兵场,华为在Java开发工程师招聘中有哪些技术性考察和倾向?那今天咱就给大家分享一下近期的华为5面面经!注:以下所分享的华为面试问题,相关的答案已整理出,且为了更加方便给想要进大厂的小伙伴一些帮助,我还专门准备了全套的《Java面试合集》(文末见),全都是一丢一丢的收集整理纯手打出来的——并收整在【我的学习笔记大全】华为Java一面· 1H闲聊偏多,问的技术性问题比较基础 ·简单说说面向对象的特征以及六大原则 ·谈谈final、f.原创 2020-10-19 21:29:36 · 840 阅读 · 10 评论