6.新国都一面

  1. 自我介绍:

请简要介绍您的个人背景、工作经历、技术专长以及为什么对这个职位感兴趣。

  1. Java有哪些集合:

    • List:ArrayList、LinkedList、Vector、Stack

    • Set:HashSet、LinkedHashSet、TreeSet

    • Map:HashMap、LinkedHashMap、TreeMap、Hashtable、Properties

    • Queue:PriorityQueue、ArrayDeque、LinkedList

    • Collection:包含所有集合类型

    • Deque:双端队列,如ArrayDeque、LinkedList

    • SortedSet:有序集合,如TreeSet

    • SortedMap:有序映射表,如TreeMap

  2. ArrayList和LinkedList区别,数组为什么能随机访问,ArrayList怎么扩容的,原数组怎么办,GC流程是怎么样的:

    • 区别:ArrayList基于动态数组实现,LinkedList基于双向链表实现。ArrayList随机访问效率高,LinkedList插入和删除效率高。

    • 数组为什么能随机访问:因为ArrayList底层使用数组存储元素,数组支持随机访问。

    • ArrayList扩容:当ArrayList的容量达到当前容量和负载因子的乘积时,会进行扩容。扩容后,新数组的大小是旧数组的1.5倍。原数组不会立即被GC,因为旧数组中的元素可能还被引用。

    • GC流程

      • 标记阶段:标记出所有可达对象。

      • 清除阶段:清除未被标记的对象。

      • 整理阶段:移动活动对象以减少内存碎片。

  1. SpringBoot自动配置:

    • SpringBoot通过@EnableAutoConfiguration注解启用自动配置。

    • 它会读取classpath下的META-INF/spring.factories文件,加载所有可用的配置类。

    • 这些配置类会被SpringBoot的自动配置机制识别,并根据条件进行相应的配置。

  2. Spring IoC:

    • IoC(Inversion of Control,控制反转)是Spring的核心理念之一。

    • 通过依赖注入(DI),实现了将对象的创建和绑定交给Spring容器管理。

    • 容器在运行时动态地将依赖关系注入到对象中,而不是由程序代码直接创建和绑定依赖关系。

  1. Spring Bean生命周期,循环依赖:

    • 生命周期

      • 实例化(Instantiation):当容器第一次使用Bean时,会创建一个新的Bean实例。

      • 属性设置(Population):如果Bean需要依赖其他Bean,Spring容器会在实例化后,根据依赖注入规则,将这些依赖注入到Bean中。

      • 初始化(Initialization):如果Bean实现了InitializingBean接口或使用@PostConstruct注解,会在属性设置后执行初始化方法。

      • 使用(Usage):Bean可以被Spring容器或应用程序使用。

      • 销毁(Destruction):如果Bean实现了DisposableBean接口或使用@PreDestroy注解,会在使用后被销毁。

    • 循环依赖:如果两个或多个Bean之间存在循环依赖,Spring容器会通过三级缓存(singletonFactories、earlySingletonObjects、singletonObjects)来解决循环依赖问题。

  2. SpringMVC工作流程:

    • 接收请求:客户端发送HTTP请求到SpringMVC前端控制器(DispatcherServlet)。

    • 解析请求:DispatcherServlet解析请求,提取请求路径和参数。

    • 查找HandlerMapping:根据请求路径查找对应的HandlerMapping。

    • 执行Handler:根据HandlerMapping找到对应的Handler(通常是Controller中的方法)。

    • 处理返回值:Handler处理请求,返回ModelAndView。

    • 渲染视图:DispatcherServlet将ModelAndView发送给视图解析器(ViewResolver)。

    • 响应客户端:视图解析器找到对应的视图,渲染视图并返回给客户端。

  1. JWT(JSON Web Tokens)如何工作:

    • 三部分组成

      • 头部(Header):包含类型(Type)、算法(Algorithm)等信息。

      • 载荷(Payload):包含用户信息、创建时间、过期时间等。

      • 签名(Signature):使用HMAC算法

      • **对称加密:**使用相同的密钥进行加密和解密

      • 密钥泄露怎么办:

      • 如果密钥泄露,需要立即更换密钥,并通知所有使用该密钥的服务和客户端

      • 对所有已签名的Token进行重新签名,以保证安全。

      • 确保新密钥的安全存储,防止再次泄露

      • 监控Token的使用情况,及时发现异常。

#秋招提前批启动你开冲了吗##我的失利项目复盘##我的成功项目解析##简历中的项目经历要怎么写##牛客创作赏金赛#
Java大中厂秋招八股一本通 文章被收录于专栏

八股文分类整理 老哥们点点赞,订阅一下,纯福利做数据。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务