试水一家面试问题

1.简单做个自我介绍
2.介绍一下JVM内存模型(JMM)

  1. JVM内存模型(JMM)是Java虚拟机规范定义的一种抽象的计算机模型,它定义了线程之间的共享内存区域和私有内存区域的访问规则。JMM包括主内存、工作内存和线程之间的通信方式,确保多线程程序在不同平台上都能达到一致的内存访问效果。

3.程序计数器是线程私有的吗?主要的作用是什么?

  1. 程序计数器是线程私有的,每个线程都有自己的程序计数器。它的主要作用是记录当前线程执行的字节码指令地址,是线程切换后能够恢复到正确的执行位置。

4.堆内存的分配策略是什么?

  1. 堆内存的分配策略是根据对象的大小动态分配内存空间,并且采用分代垃圾回收算法对内存进行管理。

5.堆对大的对象有什么优化?

  1. 堆对大的对象有优化,可以通过设置参数来控制大对象的分配和回收。

6.遇到过什么内存问题需要排查jvm情况?

  1. 内存问题可能包括内存泄漏、内存溢出等,需要排查JVM情况,查看内存使用情况、垃圾回收情况等。

7.OOM一般会出现在什么情况?

  1. OOM(Out Of Memory)一般会出现在内存不足的情况下,例如堆内存溢出、永久代内存溢出等。

8.反射的原理?

  1. 反射的原理是通过运行时动态获取类的信息,可以操作类的属性、方法等。

9.获取Class对象有哪些方式?

  1. 获取Class对象的方式包括通过类的静态属性class、通过对象的getClass()方法、通过Class.forName()方法。

10.hashmap的put()方法的流程?

  1. hashmap的put()方法的流程是先根据key的hashCode找到对应的桶(数组位置),然后根据key的equals方法找到具体的节点,如果节点存在则更新值,不存在则新增节点。

11.hashmap扩容是怎么实现的?

  1. hashmap扩容是通过创建一个新的更大的数组,然后重新计算每个元素的位置,将元素重新放入新的数组中。

12.每次扩容都会扩容到2倍的原因?

  1. 每次扩容都会扩容到2倍的原因是为了减少哈希冲突,提高哈希表的性能。

13.spring的循环依赖怎么解决?

  1. Spring的循环依赖可以通过三级缓存解决,即在对象创建的过程中,将正在创建的对象放入缓存,如果发现循环依赖,则返回缓存中的对象。

14.bean的生命周期?

  1. Bean的生命周期包括实例化、属性赋值、初始化、销毁等阶段。

15.单例对象和多例对象的生命周期有什么不同?

  1. 单例对象的生命周期是整个应用程序的生命周期,而多例对象的生命周期是根据使用情况动态创建和销毁。

16.作用域上有什么区别?

  1. 作用域上的区别是单例对象全局共享,多例对象每次获取都会创建一个新的实例。

17.微服务的调用是使用RPC还是HTTP协议?

  1. 微服务的调用可以使用RPC协议或者HTTP协议,具体取决于微服务架构的设计和实现。

18.微服务有哪些组件?

  1. 微服务的组件包括服务注册与发现、服务调用、负载均衡、断路器、API网关等。

19.负载均衡是如何处理的?(负载均衡策略)

  1. 负载均衡通过轮询、随机、加权轮询、加权随机等策略来处理请求分发。

20.注册中心使用是什么?

  1. 注册中心是用来管理微服务的注册和发现,可以通过注册中心来实现服务之间的通信和调用。

21.外部对硬件的检测是如何实现的?

  1. 外部对硬件的检测可以通过传感器、设备接口等方式实现。

22.通信的协议是什么?

  1. 通信的协议可以是TCP/IP协议、HTTP协议、WebSocket协议等。

23.websocket使用的是java原生的吗?

  1. WebSocket使用的是Java原生的,可以通过Java的WebSocket API来实现。

24.怎么保证websocket链接的有效和安全?

  1. 保证WebSocket连接的有效和安全可以通过心跳机制和加密传输来实现。

25.设备的并发数据量有多少?

  1. 设备的并发数据量取决于设备的性能和网络环境,可以通过性能测试来评估。

26.服务器有几台?

  1. 服务器的数量取决于系统的负载和性能需求,可以根据实际情况进行扩展。

27.会主动监测设备吗?

  1. 可以通过监控系统来主动监测设备的状态和性能。

28.用户管理是直接和前端交互得吗?

  1. 用户管理可以通过前端交互,也可以通过后端接口来实现。

29.开发过程中又遇到什么让你头疼的问题吗?

  1. 在开发过程中可能会遇到性能问题、安全问题、兼容性问题等让人头疼的问题。

30.有没有遇到cpu飙升的情况,但是吞吐量却很低?如何去排查?

  1. 遇到CPU飙升但吞吐量低的情况可能是因为线程阻塞、死锁等问题,可以通过监控工具来排查

31.你有什么问题吗?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值