
Java面试题笔记
文章平均质量分 87
Java知识的笔记
Android_la
Java入门到进阶级别
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java初级到中级:技术提升的策略与方法
本篇内容倾向从方法论的角度去介绍如何提升,基本不涉及代码,不涉及具体要学习哪些技术栈。方法论是从高级开发(称得上是资深级别的开发,技术牛、业务强,用技术支撑业务)那里得来的,笔者基于此调整为适合自己的方法论,希望对大家有帮助,同时也希望大家给出更佳的建议。笔者从事跨境电商领域,所以本文可能会涉及电商场景偏多,且都是生产环境,日活量有十万级别,页面浏览量有百万级别。电商场景复杂,应该算是能覆盖市面上很多的技术。原创 2023-09-24 22:53:53 · 453 阅读 · 2 评论 -
技术广度必备——高并发设计之分布式锁的实现方式
本文参考过的文章有分布式锁的几种实现方式方式大致分为3种:基于磁盘存储的关系型数据库MySQL;基于内存的数据库Redis;基于Zookeeper。原创 2023-08-14 22:21:45 · 309 阅读 · 0 评论 -
面试必备——MySQL解决幻读的底层实现原理
本篇的理论知识偏多会略显枯燥,但这也是解决电商项目高并发的关键理论知识笔者旨在将MVCC以及锁这些知识串通起来,使得更加系统,同时也理顺自己混乱的思绪。建议先阅读笔者写的InnoDB锁和事务模型之锁MySQL锁之InnoDB锁实战面试必备——MySQL的MVCC实现原理,简单阅读了解个大概即可由于写写并发操作的场景下会涉及间隙锁,因此在这里简要介绍间隙锁,下文也会提到它。InnoDB支持3种行锁如下,详情可以见InnoDB锁和事务模型之锁行锁(Record Lock):锁是直接加在索引。原创 2023-02-06 23:23:03 · 460 阅读 · 0 评论 -
二次阅读Nacos源码——Nacos自动服务注册架构设计原理
客户端启动后,会发布一个WebServerInitializedEvent。spring cloud的服务发现组件会监听该事件,底层会调用将客户端注册到Nacos服务端的逻辑。底层实际是封装好一个客户端实例的数据发送HTTP请求给Nacos服务端:如果当前Nacos服务端没有当前要注册的服务,则创建一个服务。存储服务的容器是,他的分别是,第一个key对应的value是类型。1.1 创建完服务后会把服务放入容器。1.2 健康检查 。启动一个带延迟事件的调度循环执行(线程池的应用),每5000毫秒检查客户原创 2022-10-27 17:34:28 · 1734 阅读 · 0 评论 -
线程池基本知识
本篇博客旨在对线程池的各个参数有一个基本的全局了解,基本不涉及案例demo代码。不必背诵这些知识点,有不懂之处需要上下文反复阅读,反复思考。本文描述线程池是JDK1.8中提供的类。本文基本都是从Java线程池实现原理及其在美团业务中的实践搬来的,有需要了解更详细的信息可以直接看它。原创 2022-09-24 17:07:22 · 660 阅读 · 0 评论 -
面试必备——synchronized底层原理的基础知识
文章目录1 问题背景2 前言3 研究synchronized底层原理为什么要了解Java对象头?1 问题背景利用下班时间花了半个月研究完volatile关键字,详情见面试必备——说说你对volatile关键字的理解,因为其不保证原子性,可以用synchronized保证。因此来研究synchronized的底层原理。参考自:子路系列:java高并发编程原理、源码分析2 前言本篇博文参考自b站的子路老师,他讲的视频都挺好(无论是spring源码、nacos服务注册、还是并发),与网上普罗大原创 2022-06-09 23:20:45 · 286 阅读 · 1 评论 -
面试必备——说说你对多线程编程的理解
1 问题背景很多招聘岗位的要求中都列出了了解多线程编程, 甚至是熟悉多线程编程,笔者也常常对这个词感到很疑惑。今天从系统整体架构的角度以及自己在工作中遇到的疑惑阐述什么是多线程编程。参考自:《大型网站架构》的作者李智慧写的程序运行原理:程序是如何运行又是如何崩溃的?,该篇文章需要有极客时间的VIP账号才能阅读。大家可以百度搜搜有没有资源下载。2 前言笔者从事Java开发,因此本篇将以Java开发的一些列技术栈讲解。其中可能会涉及到略多的JVM知识,大家不必纠结个别不懂的细节,先从整体上阅读原创 2022-05-17 13:52:57 · 619 阅读 · 0 评论 -
面试必备——说说你对volatile关键字的理解
文章目录1 问题背景2 说说你对volatile关键字的理解2.1 硬件效率2.1.1 引入高速缓存2.1.2 处理器内部优化——乱序执行2.2 带来缓存一致性的问题2.3 Java内存模型JMM2.4 8个原子性操作2. 5 有顺序2.6 8条交互规则2.71 问题背景复习完面试必备——Java内存模型Java Memory Model(JMM),仍处于一种懂原理但是不懂如何组织语言回答给面试官听。今天再次整理一下回答的思路。本文仅供自己总结参考使用,如有不正确之处请指正。如对底层原理有兴趣,原创 2022-05-09 22:30:23 · 426 阅读 · 0 评论 -
面试必备——ThreadLocal底层实现原理源码讲解
文章目录1 问题背景2 前言3 ThreadLocal简介及用法4 ThreadLocal在JVM中的分布1 问题背景从大三暑期实习到毕业转正,不知不觉已经工作1年了,感觉自己什么都不会。2022年4月13日凌晨,闲逛牛客的1-3年社招的面经,发现很基本都是偏向校招风格的问底层实现原理,很少问到项目或者业务相关的东西。阅读至少3篇面经,基本上都是问volatile关键字、Java锁知识(CAS、锁升级、Java锁与synchronize的区别)、synchronize关键字、ThreadLocal、线原创 2022-04-18 14:36:53 · 743 阅读 · 0 评论 -
面试必备——MySQL的MVCC实现原理
文章目录1 问题背景2 前言3 什么是MVCC4 必备知识4.1 行记录的三个隐藏字段1 问题背景生产环境上的电商项目中,常常遇到MySQL等待锁超时的报错,实际场景常见于批量更新店铺的税费(针对地区批量更新)、批量更新商品系列的内容等等。因此来研究MySQL的MVCC知识。参考自MySQL官方文档——InnoDB Multi-VersioningMySQL专有名词文档——MySQL Glossary2 前言本篇博客注重讲述实现原理,很多处地方可能晦涩难懂,读一次半次理解不了是原创 2022-03-27 17:41:38 · 3365 阅读 · 5 评论 -
电商缓存之如何更新20万个商品缓存
文章目录1 问题背景2 前言3 详细背景4 解决方案1 问题背景需要在商品缓存中新增2个字段,redis中已存在20万个商品缓存,如何更新这20万个商品缓存2 前言本博客是笔者在真实的生产环境遇到的问题,非自学的demo或者单纯地研究理论。本博客仅供笔者自己总结参考,如有不正确的地方请指出。3 详细背景假如在redis中有如下结构的商品缓存:{ id: 1, title: "Iphone", skus: [ { id: 1001, .原创 2022-02-15 23:21:34 · 1597 阅读 · 0 评论 -
电商营销活动的优惠金额精度问题
文章目录1 问题背景2 前言3 子优惠金额的累加值与总优惠金额不相等的影响4 如何解决4.1 思想1 问题背景电商为了提高销量,常常会做一些优惠活动,吸引顾客购买。优惠活动的优惠金额会存在精度问题。比如,购买A商品3件、B商品5件、C商品7件,享受满额打折、满件减价、满额赠送等等的优惠活动。那么生单的时候需要记录A商品的优惠金额、B商品的优惠金额、C商品的优惠金额,整个订单的总优惠金额。此时每种商品的优惠金额加起来是否等于总的优惠金额呢?如果不相等要怎么处理?2 前言本博客是笔者在真实的生产.原创 2022-02-10 22:26:43 · 936 阅读 · 0 评论 -
电商缓存的设计思想
1 问题背景在电商领域,分为B端和C端。B端是提供给卖家使用的,主要用于商品上下架、库存、订单、营销等等。C端主要是面向广大买家,用于展示商品、商品评论、购物车、结算页、活动展示、推荐商品等等。缓存在电商中的地位尤其重要,今天阐述电商的缓存设计思想。2 前言本博客阐述的内容来自笔者工作中,是真实的生产环境,非自学的demo那种或本地搭建虚拟机环境那种。仅供笔者自己做笔记总结使用,如有不正确之处请指出。3 业务背景卖家在B端修改了商品的售价,点击保存。买家在C端浏览商品,点击购买。此时的问原创 2022-02-01 14:58:34 · 2490 阅读 · 1 评论 -
面试必备——MySQL的ACID实现原理
文章目录1 问题背景2 事务3 原子性4 持久性4.1 redo log的存在背景4.2 为什么将redo log的数据写到磁盘比将Buffer中的数据写到磁盘快?4.3 redo log什么时候同步到磁盘里去?1 问题背景前面用sql语句演示了MySQL锁导致的现象,从现象去认知了MySQL锁到底是怎么样的。在本博客MySQL高级系列的文章中也有研究过InnoDB引擎的架构。今天来串联一下InnoDB引擎的架构以及MySQL事务、MySQL锁的知识。参考自:MySQL事务ACID实现原理2原创 2022-01-31 15:15:52 · 3451 阅读 · 2 评论 -
如何阅读源码
文章目录1 问题背景2 如何阅读源码2.1 了解源码的功能2.2 找切入点2.3 抓大放小2.4 多断点debug2.5 画流程图3 阅读源码的作用1 问题背景我的导师,项目leader,分享了如何阅读源码。方法大致与我总结下来的大同小异,估计阅读源码的方法都是这样了。2 如何阅读源码2.1 了解源码的功能必须要对待研究的源码的功能有一定的认知以及了解,最好能跑一遍代码或者做一个小demo。仅需了解有什么功能、作用即可。2.2 找切入点任何一个开源项目的源码都是很庞大的,研究其源码必须要.原创 2021-08-12 23:11:54 · 367 阅读 · 0 评论 -
浅拷贝与深拷贝的实现
文章目录1 问题背景1 问题背景实现业务的时候,需要在旧的方法上做添加,但是又不能改变原有的数据,所以要采用深拷贝。简单研究了浅拷贝深拷贝的解决方案。参考自原创 2021-07-07 15:20:19 · 276 阅读 · 0 评论 -
Spring Bean生命周期的源码分析(超级详细)
文章目录一. 问题背景二. 储备知识三. 问题引入3.1 循环依赖3.2 对循环依赖的分析3.3 两个小结论3.4 验证两个小结论四. Spring如何创建一个Bean4.1 预备知识4.2 Java对象和Spring对象的产生过程的区别:4.3 BeanDefinition对象是什么4.3.1 BeanDefinition对象存了什么4.4 Spring bean的实例化过程4.4.1 总体概览图4.4.2 细节过程图4.5 实现简单的Spring扩展4.6 初步debug分析spring实例化bean.原创 2021-04-24 11:00:26 · 382 阅读 · 0 评论 -
ThreadLocal简介及用法
文章目录问题背景前言Thread ThreadLocal ThreadLocalMap 之间的关系什么是ThreadLocal初探ThreadLocalThreadLocalMapEntryINITIAL_CAPACITYEntry[] tablesizethresholdHASH_INCREMENTnextHashCodethreadLocalHashCodeSuppliedThreadLocalinitialValue()withInitial()小试牛刀玩玩并发测试总结总结问题背景场景:公司项原创 2021-03-26 18:10:01 · 375 阅读 · 0 评论 -
关于电商库存的读取
文章目录一. 问题背景二. 前言三. 创建订单四. 加载sku信息并锁库存五. 获取库存的代码六. 为什么获取库存的时候要用分布式锁?七. 为什么要做两个判null?八. Redis分布式锁一. 问题背景背景起因在单例模式之懒加载模式。对懒加载不熟悉的伙伴推荐先阅读单例模式之懒加载模式。此篇只对电商库存做分析。二. 前言电商的库存是用redis做缓存来解决的,估计是应对秒杀活动时页面流量很高,频繁读取数据库效果不佳,也会出现超卖现象。三. 创建订单获取库存的缘于创建订单,如下是创建订单涉及到的原创 2021-03-12 15:04:48 · 468 阅读 · 0 评论 -
单例模式之懒加载模式
文章目录一. 问题背景二. 什么是单例模式?三. 为什么要用单例模式?四. 实现单例模式的思路五. 懒汉模式5.1 最简单的懒汉模式5.2 给方法加锁5.3 双重检查锁定5.4 指令重排序5.5 禁止指令重排序一. 问题背景公司的电商项目,创建订单的过程中,涉及加载sku信息,又涉及到加载sku库存信息。加载sku库存信息先去缓存查库存,查不到再去数据库,获取到数据再写进缓存。加载sku库存信息这里用到了锁机制,类似于单例懒加载的双重检查机制。锁是用了Redis分布式锁。 笔者对单例懒加载、Redis原创 2021-03-12 13:59:26 · 3071 阅读 · 0 评论 -
@Autowired与@Resource的区别
一. 问题背景研究spring整合redis的时候,出现如下:@Autowiredprivate StringRedisTemplate stringRedisTemplate;有一次面试也问到过@Autowired与@Resource的区别参考自:知乎的秦子轩用户给出的回答二. 两者的区别处理这2个注解的BeanPostProcessor不一样:CommonAnnotationBeanPostProcessor是处理@ReSource注解的AutoWiredAnnotat.原创 2021-03-09 23:25:43 · 396 阅读 · 3 评论 -
分布式共识算法之Raft算法
文章目录一. 问题背景二. 知识储备2.1 共识算法2.2 CAP定理三. 前言四. Raft和Paxos的因缘?五. Raft原理5.1 节点个数5.2 节点的角色5.3 多数派协议5.4 随机超时机制5.5 正常情况下,Raft集群是怎么样的?5.6 Candidate的日志长度要等于或者超过半数节点才能选为Leader5.7 为什么不是检查Commit Index?5.8 Followers日志补齐5.9 Followers未提交日志的更新5.10 新旧Leader的交替5.10.1 Term5.1.原创 2021-02-11 23:18:48 · 1546 阅读 · 1 评论 -
计算机网络通信协议常见问题
文章目录一. 问题背景二. 网络协议常见问题2.1 详细说一下TCP三次握手的过程2.1.1 三次握手2.1.2 为什么两次握手不可以?2.1.3 为什么不需要四次握手?2.1.4 Server端接收到Client端的SYN后,为什么还要传回SYN?2.1.5 为什么发送了SYN,还要发送ACK?2.1.6 详细说下TCP四次挥手的过程?一. 问题背景为实习面试做准备,笔者真的很菜,肥肠慌二. 网络协议常见问题2.1 详细说一下TCP三次握手的过程2.1.1 三次握手TCP连接建立的过程叫做握手原创 2021-01-25 17:33:45 · 1725 阅读 · 2 评论 -
HTTPS相关原理
文章目录一. 问题背景二. HTTP有哪些风险?三. 安全通信的四大原则四. 简述HTTPS通信原理4.1 对称加密4.2 对称加密的通信双方要使用同一把密钥,这个密钥是如何协商出来的?4.3 server 怎么把公钥安全地传输给 client ?4.4 如何验证证书的真实性,如何防止证书被篡改4.5 如何防止证书被调包五. 其他HTTPS相关问题5.1 什么是双向认证?5.2 什么是证书信任链?5.3 如果站点申请的是二级 CA 颁发的证书,client 收到之后会如何验证这个证书呢?六. 总结一. 问原创 2021-01-24 21:54:49 · 236 阅读 · 0 评论 -
关于腾讯一面(投的是运营开发岗)
一. 事情缘由2020年8月份投的简历,运营开发方向,但是印象中没有进行笔试(那天太忙了,完全忘记有这回事),在2020年10月14号晚上九点左右收到腾讯的面试邀请。二. 面试官背景资料所在部门是CDN加速之类的吧,部门里面有前端、后端开发。所用的语言是php、python。前端用php、后端用python。面试官是负责后端开发,主要使用python,对来自各个地方的已经处理好的 数据进行二次加工处理,然后返回给其他项目组使用。三. 面试过程自我介绍,我是学Java的,面试官问的问题也大多是关于学原创 2020-10-15 23:35:13 · 1057 阅读 · 1 评论 -
锁升级的过程
文章目录一. 问题背景二. 锁升级的过程一. 问题背景面试的过程中可能会问到“锁升级的过程”。二. 锁升级的过程锁的状态有无锁、偏向锁、轻量级锁、重量级锁。锁的状态会随着锁的竞争升级,这是一个不可逆的过程。代码进入同步块的时候,首先在栈帧中创建一个锁记录(Lock Record),锁记录是一个数据结构。锁对象的Mark Word会被复制到锁记录中,此时锁记录中称为Displaced Mark Word。一开始是无锁状态,对象锁的对象头Mark Word中的锁标记是01,是否偏向锁的位原创 2020-06-27 16:04:05 · 1443 阅读 · 0 评论 -
ArrayList与LinkedList
文章目录一. 问题背景二. ArrayList三. LinkedList四. ArrayList与LinkedList的区别一. 问题背景面试过程中可能会问到ArrayList与LinkedList,所以要了解一下二. ArrayList打开ArrayList的源码(jdk1.8)。ArrayList的底层数组结构是用Obejct[]数组实现的,如果没有指定容量,则默认容量是10,往ArrayList中添加或者删除元素,都需要做一次复制操作,复制元素越多,那么性能就越低。ArrayList每次扩原创 2020-06-27 11:01:44 · 181 阅读 · 0 评论 -
JDK动态代理和cglib代理的区别
一. 问题背景面试题可能会问到AOP,然后其中涉及了动态代理,所以描述完了aop实现了哪些功能后,最好回答一下jdk动态代理和cglib代理的区别参考自:Spring AOP中的JDK和CGLib动态代理哪个效率更高?JDK和Cglib实现动态代理优缺点分析和Java的三种代理模式CGlib二. 两者的区别jdk动态代理是生成一个目标类的代理类,而且代理类必须实现 目标类实现的接口,所以如果目标类没有实现接口的话,使用jdk动态代理可能不太合适,因为它生存不了代理类。jdk动原创 2020-06-25 15:13:38 · 571 阅读 · 0 评论 -
Spring常见问题
一. 问题背景复习完了spring后,对一些面试时问的spring常见问题总结一下。此笔记仅供自己参考,如有错误请指正参考自:Spring常见面试题总结(超详细回答)原创 2020-06-13 08:50:49 · 391 阅读 · 0 评论 -
Spring bean生命周期的源码分析(超级详细)
文章目录一. 问题背景二. 储备知识三. 问题引入3.1 循环依赖3.2 对循环依赖的分析3.3 两个小结论3.4 验证两个小结论一. 问题背景遇到面试题“Spring Bean的生命周期是怎么样?”,很多网上的博客博文都有总结性的阐述,但是笔者想知道是从哪里开始切入到Spring Bean的生命周期,从什么时候开始,从哪句代码开始研究。因此今天研究一下Spring源码分析Spring Bean的生命周期。此笔记仅供自己参考,如有错误请指正参考自:请别再问Spring Bean的生命周期了!【原创 2020-06-12 16:47:16 · 3442 阅读 · 10 评论 -
基于Java方式配置Spring
文章目录一. 问题背景二. 基于Java方式配置Spring2.1 @Configuration 和 @Bean一. 问题背景在面试题中“Spring是什么”中说到“Spring的3种配置方式有:基于xml方式;基于注解方式;基于Java配置”,笔者不懂基于Java配置,所以今天了解一下。此笔记仅供自己参考,如有错误请指正参考:Spring的Java配置方式二. 基于Java方式配置Spring2.1 @Configuration 和 @Bean@Configuration:该注释标注在一个类原创 2020-06-06 13:56:50 · 549 阅读 · 0 评论 -
基于jdk的动态代理
文章目录一. 问题背景二. 基于jdk的动态代理2.1 获取代理对象的2个方法2.1.1 getProxyClass(ClassLoader loader,Class<?>... interfaces)2.1.2 newProxyInstance(ClassLoader loader,Class<?>[] interfaces, InvocationHandler h)2.2 原理分析2.3 例子:使用ne原创 2020-06-05 12:01:18 · 267 阅读 · 0 评论 -
JVM常见问题
一. 回顾在java中级程序员必会的教程,解密JVM【黑马程序员出品】粗略学习了jvm,现做笔记总结。此笔记仅供自己参考,如有错误请指正二. 常见问题2.1 jvm内存模型以及分区,需要详细到每个分区放什么分区解释程序计数器(PC)存放下一条jvm指令的地址。特点:是 线程私有 的; 不会发生OOM (OutOfMemory,内存溢出)本地方法栈(Native Method Stacks)主要为native方法服务虚拟机栈(JVM Stacks)虚拟机栈: 线原创 2020-06-05 10:19:49 · 571 阅读 · 0 评论 -
面试必备——Java内存模型Java Memory Model(JMM)
文章目录一. 问题背景二. 储备知识2.1 并发和并行2.2 硬件效率与一致性2.2.1 引入Cache提高效率2.2.2 迎来新的问题:缓存一致性Cache Coherence2.2.3 解决方案:缓存一致性协议2.2.4 处理器内部优化:乱序执行三. Java内存模型3.1 主内存与工作内存3.2 内存间交互操作3.3 对volatile型变量的特殊规则3.4 对long和double型变量的规则3.5 原子性、可见性与有序性3.6 先行发生原则一. 问题背景遇到一条面试题“简述Java内存模型”,原创 2020-06-02 14:25:24 · 404 阅读 · 0 评论 -
GC中的STW、OopMap、safePoint安全点、safeRegion
文章目录一. 问题背景二. 为什么会有safePoint三. safePoint是什么四. 线程停顿的方式4.1 抢先式中断4.2 主动式中断五. safePoint出现在哪些位置六. safeRegion七. 总结一. 问题背景遇到一个面试题“垃圾收集器”,其中涉及到了safepoint安全点,所以今天了解一下safepoint安全点此笔记仅供自己参考,如有错误请指正参考:GCRoot与safePoint二. 为什么会有safePointGC Root包括以下对象:虚拟机栈中引用的对象方原创 2020-05-31 11:06:18 · 1177 阅读 · 0 评论 -
jvm类加载器
文章目录一. 问题背景二. 类加载器2.1 简介2.2 类与类加载器三. 双亲委派模型Parents Delegation Model3.1 自带的3种类加载器3.1.1 启动类加载器Bootstrap ClassLoader3.1.2 扩展类加载器Extension ClassLoader3.1.3 应用程序类加载器Application ClassLoader3.2 详述双亲委派模型3.2.1 双亲委派模型工作过程一. 问题背景遇到一个面试题“简述java类加载机制”,今天了解一下类加载器此笔记仅原创 2020-05-30 19:54:47 · 231 阅读 · 0 评论 -
jvm类加载
文章目录一. 问题背景二. 类加载2.1 简介2.2 加载阶段2.3 链接阶段2.3.1 验证阶段2.3.2 准备阶段2.3.3 解析阶段2.4 初始化阶段2.4.1 导致类初始化的情况2.4.2 不导致类初始化的情况一. 问题背景遇到一道面试题“简述java类加载机制”。今天了解一下类加载。此笔记仅供自己参考,如有错误请指正参考:java中级程序员必会的教程,解密JVM【黑马程序员出品】二. 类加载我们编译的java代码都是以.java格式文件保存的,而它是不能被jvm执行。jvm需要将.ja原创 2020-05-29 16:29:36 · 265 阅读 · 0 评论 -
Java对象什么时候死亡、finalize()方法的执行过程
文章目录一. 问题背景二. 储备知识2.1 引用2.1.1 强引用Strong Reference2.1.2 软引用Soft Reference2.1.3 弱引用Weak Reference2.1.4 虚引用Phantom Reference2.2 可达性算法2.3 哪些对象可以作为GC Root一. 问题背景遇到一个面试题“GC的两种判定方法(如何判断一个对象是否存活?)”,其中涉及引用计数法和可达性算法,而当一个对象经过可达性分析,会涉及两次标记,其中又涉及finalize()。因此今天了解一下Ja原创 2020-05-25 14:20:50 · 438 阅读 · 0 评论 -
Java的对象组成简介
文章目录一. 问题背景二. 对象的组成2.1对象头Object Header2.1.1 Mark Word2.1.2 Klass Word(指向类的指针)2.1.3 数组长度array length2.2 实例数据Instance Data2.3 对齐填充字节padding一. 问题背景遇到一个面试题“对象的内存布局”,其中涉及对象的组成。今天了解一下Java对象组成。(以HotSpot虚拟机为例子)此笔记仅供自己参考,如有错误请指正参考:Java的对象头和对象组成详解二. 对象的组成对象的组成原创 2020-05-24 15:28:39 · 5026 阅读 · 0 评论 -
Jav的空闲链表简介
一. 问题背景有一条面试题”对象的创建方法“涉及空闲链表,与之对应的内存分配规则还有指针碰撞,今天来简单的了解一下指针碰撞。此笔记仅供自己参考,如有错误请指正参考自:一张图解释指针碰撞和空闲列表二. 空闲链表简单介绍空闲链表...原创 2020-05-24 11:22:54 · 13080 阅读 · 0 评论