每天一套面试题Day30-八股高频(11)

链接题目来自牛客p6

我的每日一套面试题专栏,每天更新一起打卡

61.你知道哪些线程安全的集合?举例你是怎么使用的?

ConcurrentHashMap 链接:https://www.nowcoder.com/questionTerminal/beb3188055e240e486ae425fbed1e0e6?examPageSource=25mianshitop 来源:牛客网

blog

常见线程安全的集合包括ConcurrentHashMap、CopyOnWriteArrayList和BlockingQueue系列。例如在多线程统计时使用ConcurrentHashMap的compute方法保证原子计数,用CopyOnWriteArrayList维护监听器列表避免遍历时加锁,通过LinkedBlockingQueue实现生产者-消费者任务队列。Java并发包中的集合通过分段锁或写时复制机制实现高效线程安全。

62.说说Bean的生命周期。

my blog

63.SpringBoot 自动配置原理。

my blog

64.String、StringBuffer、Stringbuilder有什么区别?

alt

65.请你说说==与equals()的区别

== 运算符

  • 基本数据类型:比较的是值本身
  • 引用数据类型:比较的是对象的内存地址(是否指向同一个对象) equals() 方法 Object类的默认实现
// Object类的equals方法源码
public boolean equals(Object obj) {
    return (this == obj); // 默认就是==,比较地址
}

但是,很多类(如String、Integer等)重写了equals方法,使其比较的是对象的内容是否相等。因此,对于这些类,equals方法用于比较两个对象的内容是否相同。 重写自己类的equals方法时,必须同时重写hashCode()方法,这是为了满足equals和hashCode之间的契约(例如在HashMap、HashSet等集合中正常工作)。HashMap在散列的时候哈希值相同后会调用equals方法,不重写的话,原本认为相同的对象的哈希值不同,直接散列到了不同的位置。

#面试真题#
每日一套面试真题 文章被收录于专栏

记录刷过的面试真题

全部评论

相关推荐

ESLint 是一个 JavaScript 代码静态分析工具,主要用于检查和规范代码风格,并发现潜在的问题和错误。它可以帮助开发团队建立一致的代码风格,提高代码质量,减少潜在的 bug。ESLint 的工作原理如下:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=07d53be4cd034a4ab270d500feebcc8d配置: ESLint 首先需要一个配置文件,通常是一个 .eslintrc 文件,用于指定代码规则和插件。配置文件可以是 JSON 格式或 JavaScript 模块,具体配置规则可以根据项目需求进行定义。解析器: ESLint 使用解析器(Parser)将 JavaScript 代码转换成抽象语法树(AST)。常见的解析器有 Espree、Babel Parser 等,用于支持 ES6+ 语法和 JSX 语法的解析。规则: ESLint 根据配置文件中指定的规则,对 AST 进行遍历和检查。规则可以是内置的,也可以是通过插件扩展的。每个规则都定义了一条或多条代码规范,例如变量命名规范、缩进规范、禁用未使用的变量等。报告问题: 当 ESLint 在代码中发现与规则不符的问题时,它会生成相应的警告或错误信息。开发者可以根据这些提示来进行代码修复或优化。插件和扩展: ESLint 可以通过插件进行功能扩展。插件提供了额外的规则和检查器,用于检测特定类型的问题或优化代码。开发者可以根据项目需求选择合适的插件。总结起来,ESLint 的作用是帮助开发团队统一代码风格,减少错误和潜在问题,从而提高代码质量。它通过静态分析 JavaScript 代码,根据预先定义的规则对代码进行检查,并提供相应的报告和提示。通过合理的配置和规则选择,可以将 ESLint 集成到开发工作流程中,确保代码的一致性和可维护性。
前端学习交流
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务