高级及架构师高频面试题-基础型

1、设计模式有哪些原则(待解释的更直白)

  • 单一职责原则:一个类或方法应只负责一项职责,避免一个类因为多个变化原因而改变。
  • 开闭原则:软件实体应对扩展开放,对修改封闭。比如要增加用户类别的时候可以新增一个类而不是只能去修改。
  • 里氏替换原则:子类型必须能够替换掉它们的父类型,而不会对程序造成逻辑错误。
  • 依赖倒置原则:高层模块不应依赖于低层模块,两者都应依赖于抽象;抽象不应依赖于细节,细节应依赖于抽象。
  • 接口隔离原则:使用多个专门的接口比使用单一的总接口更好。
  • 合成/聚合复用原则:尽量使用对象的组合/聚合,而不是继承关系达到复用的目的。
  • 迪米特法则(最少知道原则):一个对象应对其他对象有尽可能少的了解。在编程中,这意味着一个类不应该知道太多其他类的细节,只和直接相关的类交互。这样做可以减少系统中的耦合,使得修改一个部分的时候,不会影响到太多其他部分,保持代码的整洁和可维护性

2、spring源码中常见的设计模式有哪些?(待补充完整)

单例模式 SingletonBeanRegistry,有getSingleton()

工厂模式DefaultListableBeanFactory getBean()

代理模式Spring AOP中的JdkDynamicAopProxy和CglibAopProxy

策略模式BeanPostProcessor接口定义了一系列策略,如InstantiationAwareBeanPostProcessor和BeanFactoryPostProcessor

观察者模式 ApplicationEventPublisher接口和ApplicationListener接口实现事件发布和监听,符合观察者模式

3、jvm模型

1、堆(Heap):
主要用于存储对象实例,包括程序中创建的对象以及Java虚拟机自动创建的对象。堆是JVM中最大的一块内存区域,主要用于动态分配内存。堆空间可以分为新生代和老年代,还包括持久代(JDK 7及之前版本)或元空间(JDK 8及之后版本)。

2、栈(Stack):
每个线程在创建时都会创建一个私有的栈,用于存储局部变量、操作数栈和方法出口等信息。每个方法调用都会创建一个栈帧,用于存储该方法的相关信息。栈的大小可以通过-Xss参数来调整。

3、方法区(Method Area):
用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法区的大小可以通过JVM参数来调整,例如使用-XX:MaxPermSize参数来设置永久代的最大容量。在JDK 8及之后的版本中,方法区被元空间(Metaspace)所取代。

4、本地方法栈(Native Method Stack):
与栈类似,用于存储执行本地(native)方法的数据。它是Java虚拟机内存模型中的一部分,用于支持本地方法的调用。
5、程序计数器(Program Counter Register):用于保存当前线程的行号,即线程执行的字节码的行号指示器。程序计数器是线程私有的,每条线程都有一个程序计数器。

4、jvm如何确认哪些是垃圾,哪些可以作为根?

1.虚拟机栈(栈帧中的本地变量表)中引用的对象;

2.方法区中的类静态属性引用的对象;

3.方法区中常量引用的对象;

4.本地方法栈中JNI(即一般说的Native方法)中引用的对象

5、生产上查看cpu、内存、IO、连接常用命令

        Linux命令查看CPU、内存、IO使用情况简单介绍_linux查看cpu核数和内存大小-CSDN博客文章浏览阅读1.1w次,点赞8次,收藏56次。linux cpu 内存 io_linux查看cpu核数和内存大小https://blog.csdn.net/weixin_43024834/article/details/132572708

  1. 查看CPU使用情况:‌

    • top:‌实时显示系统中各个进程的资源占用情况,‌包括CPU使用率。‌
    • htop:‌一个增强版的top命令,‌提供更丰富的信息和更友好的界面。‌
    • mpstat:‌显示多处理器的统计信息,‌包括每个CPU的使用情况。‌
  2. 查看内存使用情况:‌

    • free:‌显示系统的内存使用情况,‌包括总内存、‌已用内存、‌空闲内存等信息。‌
    • vmstat:‌显示虚拟内存统计信息,‌包括内存的使用情况。‌
  3. 查看IO使用情况:‌

    • iostat:‌监控系统的输入/输出情况,‌可以查看磁盘的读写速度和IOPS等信息。‌
    • iotop:‌实时监控磁盘IO使用情况,‌可以查看哪些进程在使用磁盘以及磁盘的使用率。‌
  4. 查看网络连接情况:‌

    • netstat:‌显示网络连接、‌路由表、‌接口统计等信息。‌
    • ss:‌显示类似netstat的信息,‌但提供更多的信息和更快的响应速度。‌
    • tcpdump:‌用于捕获并显示网络上的数据包,‌可以用于分析网络连接和通信数据。‌

6、jvm启动常用参数有哪些

  1. 堆内存设置:‌

    • -Xmx:‌指定Java堆内存的最大限制,‌例如-Xmx512m表示最大堆内存为512兆字节。‌
    • -Xms:‌指定Java堆内存的初始大小,‌例如-Xms256m表示初始堆内存为256兆字节。‌
    • -Xmn:‌指定年轻代的大小,‌例如-Xmn256m表示年轻代大小为256兆字节。‌
    • -XX:SurvivorRatio:指定年轻代中Eden区与Survivor区的大小比例。例如,-XX:SurvivorRatio=8 表示Eden区与每个Survivor区的大小比例为8:1。
    • -XX:NewRatio:指定年轻代与老年代的大小比例。例如,-XX:NewRatio=2 表示年轻代和老年代的比例为1:2
  2. 线程堆栈大小:‌

    • -Xss:‌指定每个线程的堆栈大小,‌例如-Xss256k表示每个线程的堆栈大小为256千字节。‌
  3. 垃圾回收器设置:‌

    • -XX:+UseConcMarkSweepGC:‌启用并发标记清除垃圾回收器。‌
    • -XX:+UseG1GC:‌启用G1(Garbage First)垃圾回收器。‌
  4. 元空间设置(‌针对Java 8及以后的版本)‌:‌

    • -XX:MaxMetaspaceSize:‌指定元空间的最大大小。‌
    • -XX:MetaspaceSize:‌指定元空间的初始大小。‌
  5. 其他参数:‌

    • -verbosegc 和 -XX:+PrintGCDetails:‌用于监视垃圾回收的运行。‌

7、redis缓存的使用场景

8、springboot的启动原理

9、是否做过mysql相关的集群部署?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/384367.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示

2024第三届钉钉杯大学生大数据挑战赛今天已经开赛,【A题】思路解析代码,资料预览:

Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)

湖仓一体(Data Lakehouse)融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势,帮助用户更加便捷地满足各种数据处理分析的需求。在过去多个版本中,Apache Doris 持续加深与数据湖的融合,已演进出一套成熟…

在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法各有不同。以下是针对每种操作系统的详细步骤: Linux 使用DHCP客户端:大多数Linux发行版都使用DHCP(动态主机配置协议)来自动获取IP地址…

php--高级反序列化

🎼个人主页:金灰 😎作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️ 🍊易编橙终身成长社群&#…

必应快速收录自动提交链接到IndexNow代码

近来发现bing的搜索量也越来越大了,为了更好的对必应进行seo优化,我们可以把最新的网站文章链接提交给必应IndexNow,以此来加快必应快速收录网站文章链接,那么我们我如何使用php代码来实现提交网站文章链接到必应IndexNow呢&#…

【QAC】分布式部署下其他机器如何连接RLM

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描,必须先连接RLMLicense管理器,如何连接? 3、软硬件环境 1、软件版本:HelixQAC23.04 2、机器环境…

快手可灵视频生成大模型全方位测评

快手视频生成大模型“可灵”(Kling),是全球首个真正用户可用的视频生成大模型,自面世以来,凭借其无与伦比的视频生成效果,在全球范围内赢得了用户的热烈追捧与高度评价。截至目前,申请体验其内测…

路由表与IP数据报转发:基础小白指南

目录 1. 路由表的基本概念 2. 路由表中的默认路由 3. IP数据报的转发流程 4. 路由聚合 5. 最长前缀匹配 总结 在网络世界中,IP数据报的转发是如何进行的? 这篇文章将带你深入了解路由表的基本概念和IP数据报的转发流程。我们会用简洁明了的语言和实…

MYSQL 第四次作业

任务要求: 具体操作: 新建数据库: mysql> CREATE DATABASE mydb15_indexstu; Query OK, 1 row affected (0.01 sec) mysql> USE mydb15_indexstu; Database changed 新建表: mysql> CREATE TABLE student( ->…

计算机网络知识-面试点1

1. 三握四挥 定义: 在计算机网络中,特别是TCP/IP协议中,“三握”指的是三次握手(Three-way Handshake),而“四挥”则指的是四次挥手(Four-way Handshake)。这两个过程分别用于TCP连接…

用python程序发送文件(python实例二十六)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.文件上传 3.1 代码构思 3.2 服务端代码 3.3 客户端代码 3.4 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具…

k8s中部署nacos

1 部署nfs # 在k8s的主节点上执行 mkdir -p /appdata/download cd /appdata/download git clone https://github.com/nacos-group/nacos-k8s.git 将nacos部署到middleware的命名空间中 kubectl create namespace middleware cd /appdata/download/nacos-k8s # 创建角色 kub…

KamaCoder 98. 所有可到达路径 + LC 797. All Paths From Source to Target

题目要求 给定一个有 n 个节点的有向无环图,节点编号从 1 到 n。请编写一个函数,找出并返回所有从节点 1 到节点 n 的路径。每条路径应以节点编号的列表形式表示。 输入描述 第一行包含两个整数 N,M,表示图中拥有 N 个节点&…

ctfshow-web入门-php特性(web137-web141)

目录 1、web137 2、web138 3、web139 4、web140 5、web141 1、web137 直接调用 ctfshow 这个类下的 getFlag 函数,payload: ctfshowctfshow::getFlag 查看源码: 拿到 flag:ctfshow{dd387d95-6fbe-4703-8ec5-9c8f9baf2bb5} 在…

每天一个设计模式之职责链模式(第一天)

特别感谢刘伟老师,看他的书我学到了很多东西,从今天开始我要开始更新啦! 在csdn个人博客来总结知识,把他们变成自己的能力。 对三,要不起,张三李四王五几个人在玩斗地主,过过过,一…

杰发科技Bootloader(1)—— Keil配置地址

IAP方式 BootLoader方式 UDSBoot方式 AC7801的地址分配 用户空间的的地址从8000000开始分配,大小是64页,即128K。 RAM地址从20000000开始 基于UDSboot调试-Boot 烧录Boot之后,ATClinkTool无法连接 用keil查看内存,地址到8005388…

vscode 调试web后端

1、调试环境配置 一、安装python环境管理器 其中要先在vscode选择对应的python环境,最方便的是按照环境管理器后从中选择。其中在【externsions】里面安装python即可。 如下: 二、编写launch.json文件 其中如下: {// Use IntelliSense …

oracle中存储过程的写法

存储过程常规语法: 实际业务例子: CREATE OR REPLACE TRIGGER "TRI_B00_02_ONLY_GUID" BEFORE/AFTER INSERT OR UPDATE OR DELETE ON B00_02 FOR EACH ROW declare t_guid varchar2(300) : ; --GUID t_cnt int : 0; BEGIN t_guid : :NEW…

快速入门C#设计模式【2】结构型模式

结构型模式 适配器模式 (Adapter)桥接模式 (Bridge)组合模式 (Composite)装饰模式 (Decorator)外观模式 (Facade)享元模式 (Flyweight)代理模式 (Proxy) 适配器模式(Adapter Pattern) 适配器模式(Adapter Pattern)是一种结构型设计…

Pytorch深度学习实践(5)逻辑回归

逻辑回归 逻辑回归主要是解决分类问题 回归任务:结果是一个连续的实数分类任务:结果是一个离散的值 分类任务不能直接使用回归去预测,比如在手写识别中(识别手写 0 − − 9 0 -- 9 0−−9),因为各个类别…