自我介绍
- 讲一下 SpringBoot
SpringBoot是一个快速开发的框架,能过快速整合第三方框架,他是如何快速整合的呢?其实他是的基本原来是Maven依赖关系,Maven的集成,完全采用注解化,简化XML配置,内嵌HTTP服务器(Tomcate,jetty),默认嵌入Tomcate,最终以Java应用程序进行执行。
Spring 注入 Bean 的几种方式
属性注入
set 方法注入
构造方法注入上面说到的注入 Bean 方式的先后顺序是怎么样的
讲一下 Spring 中用到的设计模式
工厂设计模式,(IOC)Spring 使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。
单例设计模式 ,单例 Bean 存在线程安全问题吗?
代理模式在 AOP 中的应用
观察者模式 一种对象行为型模式。它表示的是一种对象与对象之间具有依赖关系,当一个对象发生改变的时候,依赖这个对象的所有对象也会做出反应。Spring 事件驱动模型就是观察者模式很经典的一个应用。
适配器模式 我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是AdvisorAdapter 。Spring MVC 中的适配器模式违反了设计模式中的开闭原则 – 对扩展开放,对修改关闭。
装饰者模式可以动态地给对象添加一些额外的属性或行为。
讲一下单例模式的构造方式有哪些
懒汉式 synchronized关键字进行加锁,保证了线程安全性
饿汉式 饿汉式是利用类加载机制来避免了多线程的同步问题,所以是线程安全的。加载时就初始化实例,造成内存浪费。
双重校验锁 利用了volatile修饰符的线程可见性(被一个线程修改后,其他线程立即可见),即保证了懒加载,又保证了高性能,所以推荐使用。
静态内部类 该模式利用了静态内部类延迟初始化的特性,
枚举类 该方式利用了枚举类的特性Java 想要共享一块内存区域该怎么做
Java进程间通信(IPC)的一种方式
JNI:Java Native Interface是Java平台上的本地方法接口,它允许Java代码与C/C++代码进行交互。通过JNI,Java应用程序可以调用本地方法来访问操作系统提供的共享内存机制。
直接内存:直接内存是一种基于内存映射文件的机制,它可以在Java虚拟机(JVM)和主机操作系统之间直接分配和释放内存。通过使用直接内存,Java应用程序可以在不涉及JVM内部数据结构的情况下,高效地处理大量数据。
进程间通信(IPC):IPC是一种通用的进程间通信机制,不同的操作系统提供了不同的IPC实现方式。在Java中,可以使用JNI或其他IPC机制来实现进程间通信,例如管道、信号量、消息队列等。实现多线程的方式
1.继承Thread类,重写run方法
2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target
3.通过Callable和FutureTask创建线程
4.通过线程池创建线程Spring Cloud 的组件有哪些
Eureka : 注册中心,用于服务的注册和发现
Ribbon/Feign : 负载均衡/服务调用
Hystrix :断路器,提高分布式系统的弹性
GateWay/Zuul :网关管理,由GateWay 网关转发请求给对应的服务,服务同一的转发,以及权限管理和过虑
SpringConfig:分布式配置中心讲一下Java8 的一些新特性
1.Lambda表达式
2.新的日期API
3.引入Optional
4.使用Base64
5.接口的默认方法和静态方法
6.新增方法引用格式
7.新增Stream类
8.注解相关的改变
9.支持并行(parallel)数组
10.对并发类(Concurrency)的扩展。