首页 > 数据库 >阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂

阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂

时间:2023-07-07 21:33:11浏览次数:50  
标签:服务 Redis 凉凉 面试 64 内存 JVM

前言:

金三银四刚刚过去了,不知道很多小伙伴都拿到自己心仪的offer没有,我这边也收到了一个粉丝投来的消息,说看到阿里的面试真题之后人都是懵的,发现自己一窍不通,下面给大家分享我这个粉丝的经历,以及我在这方面学习的经验。

阿里微服务面试真题

1.单片,SOA 和微服务架构有什么区别?

单片 SOA 和微服务之间的比较 – 微服务访谈问题

单片架构类似于大容器,其中应用程序的所有软件组件组装在一起并紧密封装。

一个面向服务的架构是一种相互通信服务的集合。通信可以涉及简单的数据传递,也可以涉及两个或多个协调某些活动的服务。

微服务架构是一种架构风格,它将应用程序构建为以业务域为模型的小型自治服务集合。

2.在使用微服务架构时,您面临哪些挑战?

开发一些较小的微服务听起来很容易,但开发它们时经常遇到的挑战如下。

  • 自动化组件:难以自动化,因为有许多较小的组件。因此,对于每个组件,我们必须遵循 Build,Deploy 和 Monitor 的各个阶段。
  • 易感性:将大量组件维护在一起变得难以部署,维护,监控和识别问题。它需要在所有组件周围具有很好的感知能力。
  • 配置管理:有时在各种环境中维护组件的配置变得困难。
  • 调试:很难找到错误的每一项服务。维护集中式日志记录和仪表板以调试问题至关重要。

3.SOA 和微服务架构之间的主要区别是什么?

4.什么是领域驱动设计?

5.为什么需要域驱动设计(DDD)?

6.什么是 REST / RESTful 以及它的用途是什么?

7.什么是 Spring 引导的执行器?

8.在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?

微服务面试学习路线

 

注意,注意,上面的学习路线都是自己总计的,需要的朋友可以点击获取思维导图以及面试答案

阿里Redis面试真题:

1.Redis 与其他 key-value 存储有什么不同?

Redis 有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis 的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。Redis 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

2.Memcache 与 Redis 的区别都有哪些?

1、存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis 有部份存在硬盘上,这样能保证数据的持久性。

2、数据支持类型 Memcache 对数据类型支持相对简单。 Redis 有复杂的数据类型。

3、使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis 直接自己构建了 VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

3.Redis持久化机制

4.缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

5.热点数据和冷数据是什么

6.redis的数据类型,以及每种数据类型的使用场景

7.Redis 常见性能问题和解决方案?

8.为什么Redis的操作是原子性的,怎么保证原子性的?

Redis面试学习路线

 

注意,注意,上面的学习路线都是自己总计的,需要的朋友可以点击获取思维导图以及面试答案

阿里JVM面试真题:

1.Java 中 WeakReference 与 SoftReference 的区别?

虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率,但是 WeakReference ,一旦失去最后一个强引用,就会被 GC回收,而软引用虽然不能阻止被回收,但是可以延迟到 JVM 内存不足的时候。

2.JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用

当你将你的应用从 32 位的 JVM 迁移到 64 位的 JVM 时,由于对象的指针从32 位增加到了 64 位,因此堆内存会突然增加,差不多要翻倍。

这也会对 CPU缓存(容量比内存小很多)的数据产生不利的影响。因为,迁移到 64 位的 JVM主要动机在于可以指定最大堆大小,通过压缩OOP 可以节省一定的内存。通过-XX:+UseCompressedOops 选项,JVM 会使用 32 位的 OOP,而不是 64 位的 OOP。

3.怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?

4.32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?

5.JRE、JDK、JVM 及 JIT 之间有什么不同?

6.怎么获取 Java 程序使用的内存?堆使用的百分比?

7.描述一下 JVM 加载 class 文件的原理机制

8.GC 是什么?为什么要有 GC?

JVM面试学习路线

 

注意,注意,上面的学习路线都是自己总计的,需要的朋友可以点击获取思维导图以及面试答案

总结:

金三银四过去了也不要气馁,还有新的金九银十,主要是要总计自己在面试中不够的点,多增加自己实战项目的经验,然后也可以多刷刷面试题,以免面试的时候不知道说什么,上面的面试真题就没有把所有的答案都总结给大家了,需要答案以及上面高清思维导图的朋友,可需要的朋友可以点击获取思维导图以及面试答案

标签:服务,Redis,凉凉,面试,64,内存,JVM
From: https://www.cnblogs.com/fcjedorfjoeij/p/17536109.html

相关文章

  • JVM 基础知识
    一、基础概念数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte、shor......
  • 阿里面试官:谈谈对Redis哈希表的理解
    不少朋友问我,能不能搞个八股文精讲,把面试问题讲讲透,于是系列就这样诞生了。咱们第一期先聊聊Redis。相信哈希表大家并不陌生,今天顺便聊聊Redis的哈希表。Hash表回顾哈希表是一种存储数据的结构,它有很多名字(键值对、字典、符号表、映射、关联数组)。在哈希表中,键和值是一一对应的......
  • redis 启动报错oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    1:C07Jul202306:48:05.705#Redisversion=6.0.6,bits=64,commit=00000000,modified=0,pid=1,juststarted1:C07Jul202306:48:05.705#Configurationloaded1:C07Jul202306:49:07.098#oO0OoO0OoO0OoRedisisstartingoO0OoO0OoO0Oo1:C07Jul2023......
  • 解决pm2重启Redis的具体操作步骤
    PM2重启Redis在开发和部署过程中,我们经常需要使用Redis作为缓存或数据存储。而在生产环境中,Redis的稳定性和高可用性是非常重要的。本文将介绍如何使用PM2来重启Redis,以确保系统的稳定性。什么是PM2?PM2是一个流行的Node.js进程管理器,它帮助我们在生产环境中管理Node.js应用程序......
  • 解决Redis版本选择的具体操作步骤
    Redis版本选择Redis是一个开源的内存数据存储系统,它支持各种数据结构,如字符串、哈希、列表、集合等。在选择使用Redis时,我们需要考虑选择合适的Redis版本,以满足我们的需求并获得最佳的性能和功能。主要Redis版本目前,Redis有两个主要的版本可供选择:Redis2.x和Redis6.x。Redis......
  • 如何实现Redis6.0和以前版本有何不同的具体操作步骤
    Redis6.0和以前版本的不同概述Redis是一个开源的内存数据存储系统,它提供了高性能、可扩展、持久化的数据结构。随着时间的推移,Redis不断进行改进和升级,引入了许多新功能和优化。Redis6.0是最新版本,与以前的版本相比,有一些重要的变化和改进。在本文中,我将向你介绍Redis6.0与以......
  • 解决Redis 设置有效期命令的具体操作步骤
    Redis设置有效期命令实现教程1.整体流程下面是实现Redis设置有效期命令的整体流程。我们将使用Redis的SET命令和EXPIRE命令来设置键的值和有效期。步骤描述1连接到Redis服务器2使用SET命令设置键的值3使用EXPIRE命令设置键的有效期4关闭Redis连接2.......
  • 基于Redis的分布式锁实现方案
    本文介绍基于RedisLUA脚本实现分布式锁的具体方案。为了便于在微服务架构的项目中使用,方案以注解切面的方式实现,可单独提炼项目打成jar包。一、注解核心注解有两个CacheLock和CacheParam。@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documen......
  • python下使用redis分布式锁
    python下使用redis分布式锁1.什么场景需要分布式锁?我们在写业务逻辑的时候,如果多个线程同时访问某个共享变量,一般是对变量进行上锁或者使用queue.Queue()实现,以做到线程安全保证数据不被污染。在单机部署的情况下这样做完全没问题,但是随着业务规模的发展,某些单机部署的系统......
  • Redis学习笔记(上)
    Redisremotedictionaryserver远程字典服务是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。和memcached一样,为了保证效率,数据都是缓存在内存中的。区别的是redis会周期性的把更新的数据写入磁盘或者修......