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

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://xiahunao.cn/news/3267388.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】选择语句-多行if语句

语法格式 if(条件) {条件满足后执行的操作} else {条件不满足执行的操作} 下面是一个实例 #include<iostream> using namespace std;int main() {//选择结构 - 多行if语句//输入考试分数&#xff0c;如果考试分数大于600&#xff0c;视为考上一本大学&#xff0c;在屏…

C# dataGridView 去掉左边多出来空列

1.问题 在使用winform做界面程序时&#xff0c;dataGridView控件创建好后&#xff0c;左侧会多出一列为空&#xff0c;如何删除呢 2.解决方法 你可以在属性窗口中进行设置 如图&#xff1a; 将RowHeadersVisible 属性设置为False 或者代码设置 this.dataGridView1.RowHea…

登顶官方热榜,“超级智能体创造营”一期获奖名单公开!

自超级智能体创造营活动7月11日上线以来&#xff0c;受到很多平台开发者的关注&#xff0c;很开心看到首期创造营聚集了诸多优秀的平台开发者&#xff0c;共同参与到主题创作中&#xff0c;提交了100 的创意智能体&#xff01; 经过官方伙伴历经多轮、多维度的专业评审&#x…

HDU1032——The 3n + 1 problem,HDU1033——Edge,HDU1034——Candy Sharing Game

目录 HDU1032——The 3n 1 problem 题目描述 运行代码 代码思路 HDU1033——Edge 题目描述 运行代码 代码思路 HDU1034——Candy Sharing Game 题目描述 运行代码 代码思路 HDU1032——The 3n 1 problem 题目描述 Problem - 1032 运行代码 #include <iostr…

电量采集模块—应用于工厂车间配电室电网监测系统的搭建

前言 随着社会经济发展&#xff0c;工厂配电电网系统的供电实时监测越来越重要&#xff0c;这不仅是影响工厂安全性&#xff0c;更是工厂自动化的必然环节。工厂电力监测具有长时间在线工作的可靠性、较强的现场操作和与中心站的通讯功能&#xff0c;同时具有长时间记录存储数据…

HarmonyOS 请求相应HTTPS概览

1.HTTP概述 请求和响应 2.HTTP请求开发步骤 2.1.module.json5中添加 ohos.permission.INTERNET 2.2.导入http模块 2.3.创建htppt请求 2.4.发起请求 2.5.处理响应 2.6.销毁http对象 3.几个基本概念&#xff1a; 3.1.Webview&#xff1a;提供We…

购买反向链接是明智的吗?

​在商业世界里&#xff0c;免费的午餐几乎是不存在。即便你的网站内容质量再好&#xff0c;也很难指望别人会无偿为你提供反向链接。购买反向链接绝对是明智的选择&#xff0c;纵观任何一个有排名的大网站&#xff0c;外链数量起码几千条打底&#xff0c;难不成你打算一条一条…

Linux的yum源安装MySQL5.7

linux的yum源安装MySQL5.7 一、MySQL 1、简介 MySQL 是一种流行的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典公司 MySQL AB 开发&#xff0c;后来被 Oracle Corporation 收购。它是一个开源软件&#xff0c;提供了高效、稳定和可靠的数据管理解决…

在 ArchLinux 上编译运行 axmol 引擎

本文将在 Windows 10 上安装 Arch WSL 中编译 axmol 请确保 WSL2 已正确安装 1. 在微软应用商店安装 ArchLinux 2. 打开 Arch&#xff0c;按照提示输入用户名和密码&#xff0c;尽量简单 3. 配置清华源&#xff0c;速度快的起飞&#xff0c;否则&#xff0c;各种包会安装失败…

Animate软件基础:复制、粘贴、删除或移动帧或帧序列

关键帧和其之后的常规帧范围称为关键帧序列。时间轴可以包含任意数量的关键帧序列。 FlashASer&#xff1a;Animate 2022零基础应用教程之教师篇https://zhuanlan.zhihu.com/p/555447498 FlashASer&#xff1a;Animate教程及作品源文件https://zhuanlan.zhihu.com/p/67743743…

Roadmap模板

https://www.officetimeline.com/roadmaps https://venngage.com/blog/product-roadmap/ https://roadmunk.com/guides/roadmap-definition/

数据结构 | LinkedList与链表

前言 ArrayList底层使用连续的空间,任意位置(尤其是0位置下标)插入或删除元素时,需要将该位置后序元素 整体 往前或往后搬移,故时间复杂度为O(N). 优点(给定一个下标,可以快速查找到对应的元素,时间复杂度为O(1))增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗.增容一…

Vue3计算属性终极实战:可媲美Element Plus Tree组件研发之节点勾选

前面完成了JuanTree组件的节点编辑和保存功能后&#xff0c;我们把精力放到节点勾选功能实现上来。**注意&#xff0c;对于组件的开发者来说&#xff0c;要充分考虑用户的使用场景&#xff0c;组件提供的多个特性同时启用时必须要工作良好。**就拿Tree组件来说&#xff0c;用户…

标准IO

目录 思维导图&#xff1a; 学习内容&#xff1a; 1. IO基础 2. 标准IO 2.1 标准IO提供的内容 2.2 FILE结构体 2.2.1 结构体解析 2.3 fopen 打开文件 2.4 fclose&#xff1a;关闭文件 例如&#xff1a; 2.5 fgetc\fputc:单字符的输入输出 例如&#xff1a; 2.6 错…

概率论--最大似然估计

目录 概念 基本原理 应用领域 实际应用案例 优缺点 优点&#xff1a; 缺点&#xff1a; 延伸 最大似然估计在机器学习中的具体应用案例是什么&#xff1f; 如何解决最大似然估计在处理小样本数据时的偏差问题&#xff1f; 最大似然估计与其他参数估计方法&#xff08…

uniapp手写滚动选择器

文章目录 效果展示HTML/Template部分&#xff1a;JavaScript部分&#xff1a;CSS部分&#xff1a;完整代码 没有符合项目要求的选择器 就手写了一个 效果展示 实现一个时间选择器的功能&#xff0c;可以选择小时和分钟&#xff1a; HTML/Template部分&#xff1a; <picker…

【文件fd】文件描述符fd | 文件描述表

目录 1.文件描述符fd 2.系统调用的0/1/2 3.C语言的stdin/stdout/stderr 4.系统调用的0/1/2和C语言的stdin/stout/stderr二者的关系❓ 5.文件描述表 5.1 文件描述符概念 5.3 文件对象strcut file 5.4 进程和文件对应关系 5.5 文件描述符理解 5.6 源码查看 1.文件描述…

AI行业合适做必应bing推广吗?怎么开户呢?

快速发展的AI行业中&#xff0c;有效的市场获客渠道是关键&#xff0c;随着数字营销领域的不断演进&#xff0c;必应Bing以其独特的市场定位、庞大的用户基础和高效的广告系统&#xff0c;成为AI企业推广策略中的重要一环。特别是针对那些寻求精准触达、高效转化的AI企业而言&a…

C++初级学习:⼊⻔基础

本文内容&#xff1a; 1.C参考⽂档&#xff1a;2.C第一个程序3.命名空间3.1namespace的价值3.2namespace的定义3.3命名空间的使用 4.C输⼊&输出5.缺省参数6.函数重载 1.C参考⽂档&#xff1a; https://legacy.cplusplus.com/reference/ https://zh.cppreference.com/w/cp…

【React】JSX:从基础语法到高级用法的深入解析

文章目录 一、什么是 JSX&#xff1f;1. 基础语法2. 嵌入表达式3. 使用属性4. JSX 是表达式 二、JSX 的注意事项1. 必须包含在单个父元素内2. JSX 中的注释3. 避免注入攻击 三、JSX 的高级用法1. 条件渲染2. 列表渲染3. 内联样式4. 函数作为子组件 四、最佳实践 在 React 开发中…