面试
文章平均质量分 87
孩儿他爹爹
这个作者很懒,什么都没留下…
展开
-
消息队列经典十连问
前言金三银四即将来临,整理了十道十分经典的消息队列面试题,看完肯定对面试有帮助的,大家一起加油哈~ 什么是消息队列 消息队列的应用场景 消息队列如何解决消息丢失问题 消息队列如何保证消息的顺序性。 消息有可能发生重复消费吗?如何幂等处理? 如何处理消息队列的消息积压问题 消息队列技术选型,Kafka还是RocketMQ,还是RabbitMQ 消息中间件如何做到高可用? 如何保证数据一致性,事务消息如何实现 如转载 2022-03-01 10:55:29 · 122 阅读 · 0 评论 -
Spring Cloud架构的各个组件的原理分析
原理讲解前,先看一个最经典的业务场景,如开发一个电商网站,要实现支付订单的功能,流程如下:创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”扣减相应的商品库存通知仓储中心,进行发货给用户的这次购物增加相应的积分如上,微服务的应用场景和核心竞争力:降低耦合:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。...转载 2021-10-11 11:21:34 · 101 阅读 · 0 评论 -
Java 对象不使用时,要赋值为 null
示例代码我们来看看一段非常简单的代码:Javapublicstaticvoidmain(String[]args){if(true){byte[]placeHolder=newbyte[64*1024*1024];System.out.println(placeHolder.length/1024);}System.gc();}我们在if中实例化了...转载 2021-10-09 15:15:11 · 490 阅读 · 0 评论 -
为什么不把基本类型放堆中呢?
为什么要把堆和栈区分出来呢?第一,从软件设计的角度看,栈代表了处理逻辑,而堆代表了数据。这样分开,使得处理逻辑更为清晰。分而治之的思想。这种隔离、模块化的思想在软件设计的方方面面都有体现。第二,堆与栈的分离,使得堆中的内容可以被多个栈共享(也可以理解为多个线程访问同一个对象)。这种共享的收益是很多的。一方面这种共享提供了一种有效的数据交互方式(如:共享内存),另一方面,堆中的共享常量和缓存可以被所有栈访问,节省了空间。第三,栈因为运行时的需要,比如保存系统运行的上下文,需要进行地址段的划分。转载 2021-10-09 11:53:04 · 302 阅读 · 0 评论 -
公司项目中Java的多线程一般用在哪些场景?
多线程使用的主要目的在于:1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。鉴于是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。举个简单的例子:假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据转载 2021-08-31 15:35:48 · 577 阅读 · 0 评论 -
反射和多态的实现原理是什么?
反射和多态事实上,反射和多态这两种技术并无直接联系,之所以把它们放在一起说,是因为,在Java技术体系中所提供的能够让我们在运行时识别对象和类的类型信息的方式,一共有两种:即反射和多态关键技术RTTIRTTI,即run-Time Type Identification运行时类型判定,它的作用是在我们不知道某个对象的确切的类型信息时,即某个对象是哪个类的实例的时候,可以通过RTTI相关的机制帮助我们在编译时获取对象的类型信息,这其实也就是多态的实现基础。反射机制允许我们在运行时发现和使用类的信息。转载 2021-08-31 15:34:29 · 150 阅读 · 0 评论 -
大厂Java面试题精选:第一模块答案
Java 基础1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程转载 2021-08-23 16:52:17 · 207 阅读 · 0 评论