消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记 最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了。额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka 等的纯手绘知识体系图、面试以及相关的学习笔记。容器化时代来了 虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生。(1)物理机时代...
前言 大家在面试的时候不同程度会被问到JVM的垃圾回收,看面试官水平,有些就背个书就行,比如GC的工作原理,有哪些GC算法和回收器,分别优点和缺点等等,有些面试官估计自己也就背书水平,都没个追问;有些面试官就能追问,一追问就歇菜,比如低延迟的垃圾回收器有哪些以及其原理,跨代引用及解决方案,三色标记及漏标问题处理,等等。 还是那句话,虽然都是些理论的问题,但是在实际开发过程中真的能遇到这些问题来解决实际问题,...
前言 永远不会有正当其时的时候,你总会觉得要么年纪太轻,要么太老,要么太忙,抑或是其他什么原因。如果你总是为找不到完美的时刻而困扰,那么,完美的时机永远不会出现。 阿里一面 1.自我介绍,包括做过项目。 2.有看过哪些JDK源码,了解哪些常用库。 3.集合框架HashMap的扩容机制,ConcurrnetHashMap的原理 4.jvm内存模型与gc内存回收机制 5.classloader结构,是否可以自己定义一个java.lang.String类,为什么? 双亲代理机制...
以下内容来自网络整理,侵删 JVM 垃圾回收机制 什么是垃圾? 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾 对象什么时候进入老年代? 大对象直接进入老年代 大对象是指需要大量连续内存空间的对象,例如很长的字符串以及数组。虚拟机设置了一个-XX:PretenureSizeThreshold参数,令大于这个设置的对象直接在老年代分配。目的就是为了防止大对象在Eden空间和Survivor空间来回大量复制。 长期存活的对象...
目录 链接一下目录方便查找 菜鸡的2021春招实习之旅(面经+自己总结的笔记) JVM 1.JVM体系结构 背烂了 2.什么是垃圾?如何判断一个对象是否可以回收? 简单来说就是内存汇中已经不再使用到的空间就是垃圾 使用标记算法: 标记算法有两种,一种引用计数器算法,另一种是可达性分析算法 引用计数器算法就是如果A对象被引用,则给计数器加1,如果引用接触则减去1,下次垃圾回收的时候如果计数器为0则表示为垃圾,但是存在严重的问题,就是如果...
一、概念 1、JVM是什么 JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。JVM具备着计算机的基本运算方式,它主要负责把 Java 程序生成的字节码文件,解释成具体系统平台上的机器指令,让其在各个平台运行。JVM是运行在操作系统上的,它与硬件没有直接的交互。 2、java程序的运行过程 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器...
一. Spring 1. 谈谈你对Spring的理解 关键点 企业框架,目前最流行,没有之一AOP、IOC、Spring MVC 2. Spring中用到了哪些设计模式 工厂模式,比如 BeanFactory代理模式,在Aop实现中用到了JDK的动态代理单例模式,Bean的创建默认就是单利的 3. IoC的启动过程 Resource文件的定位,即找到bean的配置文件通过特定的reader解析该bean配置文件,抽象成beanDefinition类将beanDefinition向容器注册,写入到一个大的HashMap中 4. BeanFa...
JAVA面试题库-JVM面试题-GC原理 1、GC是什么?2、为什么要进行垃圾回收?3、三种基本的GC算法1.标记-清除算法2.复制算法(新生代回收算法)3.标记整理算法(老年代回收算法) 4.补充:Minor GC/Major GC/Full GC1、GC是什么? ????GC(Garbage Collection):JAVA/.NET中的垃圾回收器。Java是由C++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。而C#又借鉴了JAVA。 ????在老式的C/C++程序中,程序员定义了一个变...
Java平台无关性如何实现Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java语言在不同的平台 上运行的时候不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令。 为什么JVM不直接将源码解析成机器码去执行 准备工作:每次执行都需要各种检查;兼容性:可以将别的语言解析成字节码; JVM如何加载class文件ClassLoader:依照特定格式,加载class文件到内存;Execution Engine:对命令...
推荐使用小程序阅读 为了能让您更加方便的阅读 本文所有的面试题目均已整理至小程序《面试手册》 可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验!目录推荐使用小程序阅读1. JVM 基础1.1 JVM 内存分哪几个区,每个区的作用是什么?方法区虚拟机栈:本地方法栈堆程序计数器1.2 对象的访问定位有几种方式?句柄访问直接指针访问1.3 JVM内存模型是什么?1.4 finalize()方法什么时候被调用?析构函数(finalization)的目的是什么...
Java Vitual Machine 1.JVM运行时数据区有哪些,并且每个区放什么?1.JVM运行时数据区有哪些,并且每个区放什么? JVM运行时数据区有: 1. 栈(Stack):(线程私有的)存放方法出口、局部变量表、操作数栈、动态链接等。 2. 堆(Heap):(线程公用有的)内存区域中,最大的一块。 存放new出来的对象。静态属性。 3. 方法区(Method Area) :存储已经加载的类信息、常量、静态变量、即时编译后的代码等。 4. 本地方法栈:与虚拟机...
前言 早在2017年我们就建了第一个进击BAT的Android开发进阶交流群,两年期间很多群友都分享了自己的Android面试经历。其中就有很多群友已经斩获蚂蚁金服,天猫,高德,盒马等阿里系offer 收集反馈的面经资料比较乱,最近疫情期间终于空出大量时间,我们进行了分类,循序渐进,由基础到深入,由易到简。 将内容整理成了五个章节、计算机基础面试题、数据结构和算法面试题、Java面试题、Android面试题、其他扩展面试题、非技术面试题...
起因 事情是这样的。 4年前毕业那会,呆在公司的短视频项目,做 视频。那会做得比抖音还早,但是由于短视频太烧钱了,项目被公司关掉了。当时需要开发横竖屏直播/异步视频的场景,就研究下了市场上的 app,发现输入弹幕的交互并不友好。最直接的体验就是,微信比绝大部分IM软件在聊天场景下输入法与表情面板频繁切换时表现得更为平滑,不会给用户很突兀的闪烁感。但我们除了适配竖屏,们还需要兼容横屏/满屏/沉浸等场景。 摸索了一...
我的自述: 我工作4、5年了,平时也会研究一些新技术,但是绝大多数时间也只是做CURD的事情,没办法,小公司的业务有限。 2、3月份受疫情的影响,公司在家办公,搞什么只发保障薪资,工作强度比在公司还要狠!好多同事纷纷离职,我也是其中一员。自己工资已经两年没涨了,早就想换个工作了。 没想到,找了快一个月工作,要么简历石沉大海,要么,问几个问题就结束了…感觉要自闭了!也不知道问题出在哪里… 后来找当时一起离职的某...
三类加载器: 1. 启动类加载器(BootstrapClassLoader) 2. 扩展类加载器(ExtClassLoader) 3. 应用类加载器(AppClassLoader)加载器特点: ?双亲委托 ?负责依赖 3. 缓存加载一 字节码: Java bytecode 由单字节(byte)的指令组成,理论上最多支持 256 个操作码(opcode)。 实际上 Java 只使用了200左右的操作码, 还有一些操作码则保留给调试操作。 根据指令的性质,主要分为四个大类: 1. 栈操作指令,包括与局部变量交互的指...