4.百度健康

  1. Java有哪些基本数据类型:

Java有8种基本数据类型:byte, short, int, long, float, double, char(16bit), boolean(内存1bit 数组32bit)。

  1. 接口和抽象类的区别:

    • 接口只能包含抽象方法和默认方法(Java 8+),属性默认是public static final的;抽象类可以包含具体实现的方法和属性。

    • 一个类可以实现多个接口,但只能继承一个抽象类。

    • 接口主要用于定义公共的方法规范;抽象类可以包含具体实现,提供更灵活的抽象。

  2. 介绍JVM内存模型:

JVM内存模型主要包括程序计数器、虚拟机栈、本地方法栈、堆和方法区(或元空间)。

  1. 介绍虚拟机栈:

虚拟机栈是线程私有的,每个方法执行时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

  1. 栈溢出和堆溢出抛出什么类型的异常:

    • 栈溢出抛出 StackOverflowErrorOutOfMemoryError

    • 堆溢出抛出 OutOfMemoryError

  2. 介绍堆和栈的内存释放机制(垃圾回收)。启动堆的时候可以指定堆大小吗?有什么参数指定的?

    • 栈的内存释放是自动的,方法执行完毕,对应的栈帧就会出栈,内存随之释放。

    • 堆的内存释放是通过垃圾回收器来进行的。

    • 可以通过JVM参数 -Xms-Xmx 来指定堆的初始大小和最大大小。

  1. 介绍类加载的过程:

包括加载、链接(验证、准备、解析)、初始化、使用、卸载。

  1. 介绍Spring的ioc和aop,项目中怎么使用aop的:

    • IOC(控制反转)是通过依赖注入实现对象之间的解耦。

    • AOP(面向切面编程)用于在不修改源代码的情况下,添加额外的功能。

    • 项目中可以通过定义切面(Aspect)和通知(Advice)来使用AOP,例如日志记录、事务管理。

  2. Bean的作用域有哪些,项目中常用什么作用域:

    • 作用域:singleton(单例)、prototype(原型)、request、session、application、websocket。

    • 常用:singleton。

  1. 依赖注入的方式:

构造器注入、setter注入、字段注入。

  1. MySQL中char和varchar的区别:

    • char是固定长度的,varchar是可变长度的。

    • char在存储时会用空格填充至固定长度,varchar则不会。

  2. MySQL有哪些索引类型:

    • B-Tree索引、哈希索引、全文索引、R-Tree索引。
  1. 常见的join类型。使用左连接的方式连接A/B两张表,若B中某数据行缺失,但在A中改行存在,最终结果能查出来这一行数据吗?

    • 常见的join类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)。

    • 能,左连接会返回左表(A表)的所有行,即使在右表(B表)中没有匹配的行。

  2. 聚簇索引和非聚簇索引有什么区别:

    • 聚簇索引的叶节点包含了完整的数据行;非聚簇索引的叶节点包含指向数据行的指针。
  1. 什么情况下应该使用索引,什么情况不该使用索引。某字段只有十种数据值,应当对其使用索引吗?

    • 应该使用索引的情况:数据量大、经常查询的字段。

    • 不应该使用索引的情况:数据量小、更新频繁的字段。

    • 如果字段只有十种数据值,但数据量大且查询频繁,可以考虑使用索引。

  2. redis为什么快:

    • 基于内存、单线程模型、优化的数据结构。
  1. redis怎么在项目中使用的:

    • 用于缓存、会话管理、消息队列等。
  2. redis持久化怎么实现的:

    • RDB(快照持久化)、AOF(追加文件持久化)。
  1. redis常见的数据结构。其中list是双向链表还是单向:

    • 常见数据结构:字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted sets)、哈希(hashes)。

    • List是双向链表。

  2. HTTP状态码的401和403表示什么意思:

    • 401:未授权,请求需要用户验证。

    • 403:禁止,服务器理解请求但拒绝执行。

  1. 如何设计token?token如何鉴权?介绍项目中使用到的SA-Token框架:

    • Token设计应该包含唯一标识、发行者、过期时间等信息,通常使用JWT(JSON Web Tokens)格式。 - 鉴权通常通过在请求头中携带Token,服务器端验证Token的有效性。 - SA-Token是一个轻量级Java权限认证框架,提供了诸如登录认证、权限验证、Session会话、单点登录、OAuth2.0、微服务网关鉴权等功能。
#秋招提前批启动你开冲了吗##我的失利项目复盘##简历中的项目经历要怎么写##牛客创作赏金赛#
Java大中厂秋招八股一本通 文章被收录于专栏

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

全部评论

相关推荐

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