IT评测·应用市场-qidao123.com

标题: 高级及架构师高频面试题-基础型 [打印本页]

作者: 道家人    时间: 2024-7-30 09:41
标题: 高级及架构师高频面试题-基础型
1、计划模式有哪些原则(待表明的更直白)


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

单例模式

SingletonBeanRegistry,有getSingleton()
工厂模式

DefaultListableBeanFactory getBean()
署理模式

Spring AOP中的JdkDynamicAopProxy(有接口)和CglibAopProxy(无接口情况)
策略模式

BeanPostProcessor接口界说了一系列策略,如InstantiationAwareBeanPostProcessor和BeanFactoryPostProcessor
观察者模式

ApplicationEventPublisher接口和ApplicationListener接口实现变乱发布和监听,符合观察者模式;
装饰器模式:

BeanWrapper计划模式是一种装饰器计划模式的应用,‌它允许在运行时动态地给对象添加额外的职责或功能,‌而不影响其原有的结构或活动。‌这种模式通过组合而不是继承来实现功能的扩展,‌特殊实用于必要为对象添加多个功能,‌而且这些功能可以机动组合的情况。‌BeanWrapper计划模式遵循单一职责原则,‌每个装饰器类只关注一个特定的功能,‌从而保持类的职责清晰和可维护性。‌
在Spring框架中,‌BeanWrapper计划模式的应用体现在多个方面,‌其中之一是AOP(‌面向切面编程)‌的实现。‌Spring框架通过AOP提供了对应用程序的横切关注点的模块化处理,‌如日记记录、‌事件管理、‌安全查抄等。‌这些功能的实现基于装饰器模式,‌通过界说切面(‌Aspect)‌和连接点(‌JoinPoint)‌,‌将横切关注点应用到程序实行过程中的关键点上。‌Spring框架中的AopProxy和Cglib2AopProxy等类就是署理模式的实现,‌它们为其他对象提供了一种署理,‌以控制对这个对象的访问,‌从而实现功能的增长或限制。‌
此外,‌Spring中的DataBinder类也表现了装饰器计划模式的应用。‌DataBinder实现了TypeConverter接口,‌该接口提供了类型转换服务,‌底层基于BeanWrapper实现。‌这意味着在数据绑定时,‌可以通过装饰器模式动态地添加类型转换功能,‌从而增强了数据的机动性和可扩展性。‌
总的来说,‌BeanWrapper计划模式在Spring框架中的应用,‌通过动态地为对象添加额外的职责或功能,‌提高了系统的机动性和可维护性。‌这种模式实用于必要动态扩展对象功能且希望保持对象原有结构稳定的场景。
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

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

7、redis缓存的使用场景



8、springboot的启动原理


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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4