某小厂java后端初面,记录一下

好吧,,,,,本人很菜,再接再励吧,继续刷。简单记录一下面试题,未亡羊补牢呗。

1.lift join ;inner join ;right join 的区别

  1. union 和union all的区别

3.like查询会走索引吗?

4.主键和索引的区别

5.count(*),count(1),count(ID)的区别

6.exists了解吗?作用是什么

7.线程池了解吗?

8.spring创建的bean是单例模式还是多例模式,怎么区分?

9.国产数据库了解吗?

10.hashmap和hashTable的区别

11.list是有序的吗?

12.如果一个程序中有个方法响应很慢,你会怎么排查?说说你的思路

13.你有没有什么问题要问我的?没有,好吧,我给你介绍一下我们做的事情,巴拉巴拉...

1.lift join ;inner join ;right join 的区别

INNER JOIN(内连接): 只返回两个表中匹配的行,即只返回连接条件为真的行。

如果一个表中的行在另一个表中没有匹配的行,那么这些行不会出现在结果中。 INNER JOIN返回的是两个表的交集部分。 LEFT

JOIN(左连接): 返回左边表中的所有行,以及与右边表匹配的行。 如果右边表中没有与左边表匹配的行,则返回NULL。 LEFT

JOIN以左表为基础,返回左表的所有记录,以及右表中与左表匹配的记录。如果右表中没有匹配项,则结果中对应字段的值将为NULL。 RIGHT

JOIN(右连接): 返回右边表中的所有行,以及与左边表匹配的行。 如果左边表中没有与右边表匹配的行,则返回NULL。 RIGHT

JOIN以右表为基础,返回右表的所有记录,以及左表中与右表匹配的记录。如果左表中没有匹配项,则结果中对应字段的值将为NULL。

2. union 和union all的区别

1.对结果集的处理方式 :Union会对两个或多个结果集进行并集操作,并自动压缩掉其中的重复行,只显示唯一的值,相当于执行了distinct操作。而Union All也会进行并集操作,但它会包括所有的结果,无论是否重复,即所有的结果全部显示。

2.执行效率 :由于Union需要对结果集进行去重操作,而Union All则不需要,因此在处理大量数据时,Union All的执行效率通常会比Union高。当可以确认合并的两个结果集中不包含重复数据且不需要排序时,使用Union All会更合适。

  1. 是否排序:Union会按照字段的顺序对结果集进行排序,而Union All只是简单地将两个结果合并后就返回,不会对结果进行排序。

3.like查询会走索引吗?

LIKE查询在一定条件下是可以走索引的 ,关键在于查询的具体形式以及数据库系统的实际处理方式。为了确保LIKE查询能够有效利用索引,最佳实践是尽量避免在搜索词首使用通配符,并确保为常作为LIKE查询条件的列创建合适的索引。

在实际应用中,为了确定LIKE查询是否使用了索引,可以使用数据库的执行计划工具来查看查询的执行计划。这些工具可以显示查询是如何使用索引的,以及是否进行了全表扫描。

4.主键和索引的区别

主键是用于确保数据唯一性的关键约束,同时也自带了一个隐含的唯一索引;而索引则是为了提高数据检索效率的辅助结构,它并不直接涉及数据完整性约束,但能极大提高查询性能。

5.count(*),count(1),count(ID)的区别

count(*):计算结果集中所有行数,包括那些含有null值的行; 它只是简单计算行数,并不关心里面的数据 count(1):

功能上与count(*)类似,也是计算所有行数。

count(ID):计算列(ID)中非null的值的数量。如果ID列中有null的值,这些值不会计算在总数中。由于COUNT(ID)会检查ID中的值是否为null,所以查询效率相对低一些。

6.exists了解吗?作用是什么

EXISTS 是一个重要的关键字,它的主要作用是用来检验一个子查询是否至少会返回一行数据 。EXISTS 并不关注子查询 返回的具体数据内容 ,而是关心是否存在满足子查询条件的结果行。

具体作用如下:
结果判断 :EXISTS 子查询的结果是一个布尔值 (TRUE 或 FALSE)。如果子查询的结果集中包含至少一行数据,那么 EXISTS

子查询的结果就是 TRUE;若子查询没有返回任何数据,则结果是 FALSE。

过滤行:在主查询中配合 WHERE 子句使用 EXISTS 时,可以用来过滤主查询的结果集。只有当 EXISTS 子查询的结果为 TRUE时,对应的主查询中的行才会被选择出来。

例如,下面是一个使用 EXISTS 的 SQL 查询语句示例:

sql 复制代码
Sql SELECT column1, column2 FROM table1 WHERE EXISTS (
     SELECT 1 FROM table2 WHERE 
     table2.columnA = table1.columnA 
     AND table2.columnB = 'some_value' ); 

在这个查询中,将从 table1 中选择那些在 table2 中具有相同 columnA 值并且

columnB 为 'some_value' 的行。如果对于 table1中的任何一行,子查询能找到匹配的记录,那么这一行就会被包含在最终的结果集中。

相对于 IN 子查询,EXISTS 在某些情况下可能具有更好的性能表现,特别是在主表较小而子查询结果集较大 的场景下,因为 EXISTS

只需找到匹配的第一行即可得出结论。而 IN 子查询 通常需要构造完整的子查询结果集并进行比较 。此外,EXISTS 更适用于检查相关性而非具体值

7.线程池了解吗?(高频问题好吧)

我的回答是不了解,惭愧惭愧

后面几个明天再总结,晚安,玛卡巴卡

8.spring创建的bean是单例模式还是多例模式,怎么区分?

9.国产数据库了解吗?

10.hashmap和hashTable的区别

11.list是有序的吗?

12.如果一个程序中有个方法响应很慢,你会怎么排查?说说你的思路

相关推荐
无心水1 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
Boilermaker19928 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS8 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂9 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs9 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_999 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子9 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34169 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
古城小栈9 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust