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

好吧,,,,,本人很菜,再接再励吧,继续刷。简单记录一下面试题,未亡羊补牢呗。
1.lift join ;inner join ;right join 的区别
2. 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会更合适。
3. 是否排序: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 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.如果一个程序中有个方法响应很慢,你会怎么排查?说说你的思路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器的工作原理

从输入一个url到页面加载完成,中间都发生了什么? 参考原文地址 首先在浏览器地址栏输入一个地址并回车之后, 1. DNS查找 浏览器会进行DNS查找,把域名https://example.com转化为真实的IP地址10.29.33.xx,根据IP地址找…

linux驱动——中断

1.Cortex-A系列的中断的简介 中断的基本概念:(interrupt) 中断本质上是系统内部的异常机制,当中断产生之后,他会停下当前正在执行的任务,转而去做其他的事情,在停下当前正在执行的任务之前,要先入栈(保护现场,其他的事情做完之后…

Mysql/Redis缓存一致性

如何保证MySQL和Redis的缓存一致。从理论到实战。总结6种来感受一下。 理论知识 不好的方案 1.先写MySQL,再写Redis 图解说明: 这是一幅时序图,描述请求的先后调用顺序; 黄色的线是请求A,黑色的线是请求B; 黄色的…

python之面向对象

面向对象 class Func:def a1(self,name,age):print("我是{}今年{}岁了".format(name,age))def a2(self,home,price):print("我家在{}有{}钱".format(home,price)) objFunc() obj.a1("杨振浩",19) obj.a2("河南",100) #一般传递的参数…

基础 | 并发编程 - [线程状态]

INDEX 操作系统的线程状态 NEW:刚 newREDAY:刚 start()RUNNING:刚 run()BLOCKING:cpu 不能给此线程分配时间片TERMINATED:停止 JAVA 中的线程状态 NEW:刚 newRUNNING:刚 run()BLOCKING&#…

TYPE C模拟耳机POP音产生缘由

关于耳机插拔的POP音问题,小白在之前的文章中讲述过关于3.5mm耳机的POP音产生原因。其实这类插拔问题的POP音不仅仅存在于3.5mm耳机,就连现在主流的Type C模拟耳机的插拔也存在此问题,今天小白就来讲一讲这类耳机产生POP音的缘由。 耳机左右…

vue从零到一创建项目?

创建一个Vue项目通常需要经过以下步骤,从零开始构建一个基本的Vue项目: 步骤一:安装Node.js和npm 下载安装Node.js: 在Node.js官网下载适合你操作系统的Node.js安装包,并按照提示进行安装。安装完Node.js后&#xff…

Amazon Kinesis Analytics

现在让我们将注意力集中在 Amazon Kinesis Analytics 上。 Amazon Kinesis Analytics 使您能够快速编写 SQL 代码,以近乎实时的方式连续读取、处理和存储数据。 借助 Amazon Kinesis Analytics,您可以实时摄取数十亿个小数据点。 然后可以聚合每个单独…

两个笔记本如何将一个笔记本作为另一个笔记本的拓展屏

需求是有两个笔记本,一个笔记本闲置,另一个笔记本是主力本。想将另一个闲置的笔记本连接到主力本上作为拓展屏使用。网上搜了好久,有一些人提到了,也有一些视频但是文章比较少。简单总结一下吧 上述需求有两种方式 第一种&#x…

浅谈Redis 的 保护模式(protected-mode)

今天在一台服务器上面部署了redis,发现始终无法用工具远程连接,项目里面是正常的,就是工具不行,防火墙也关闭了.折腾了一会才突然想起来,是不是触发了保护模式. 什么时候触发保护模式protected-mode: 同时满足以下两个: 1.bind未指定ip 2.未配置密码 解决方案: 编辑redis…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要:本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程,并提供了完整的实现代码。该系统采用了先进的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比,分析了性能指标如mAP、F1 Score等。文章深入探…

计算机组成原理实验报告1 | 实验1.1 运算器实验(键盘方式)

本文整理自博主大学本科《计算机组成原理》课程自己完成的实验报告。 —— *实验环境为学校机房实验箱。 目录 一、实验目的 二、实验内容 三、实验步骤及实验结果 Ⅰ、单片机键盘操作方式实验 1、实验连线(键盘实验) 2、实验过程 四、实验结果的…

代码随想录-java-栈与队列总结

栈(Stack):是只允许在一端进行插入或删除的线性表。栈是一种线性表,限定这种线性表只能在某一端进行插入和删除操作。进行操作的这一端称为栈顶。 队列(Queue)是只允许在一端进行插入操作,而在另…

Python使用FastAPI提供图片缩略图生成接口

使用pillow的thumbnail生成缩略图时,会保持原图的宽高比;使用的opencv的resize则不会 具体代码如下: #!/usr/bin/env python import re import sys from enum import Enum from io import BytesIO from pathlib import Path from typing im…

汇编课设——秒表2

1. 设计要求 基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。 功能要求: (1)计时精度达到百分之一秒; (2)能按键记录下5次时间并通过按键回看 (3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。 2. 设计思…

P1955 [NOI2015] 程序自动分析题解

题目 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设x1​,x2​,x3​,⋯ 代表程序中出现的变量,给定n个形如xi​xj​或xi​!xj​ 的变量相等/不等的约束条件,请判…

美国欲在菲律宾扩大半导体芯片投资

近年来,在复杂的国际形势和保障供应链安全需求的影响下,东南亚国家如新加坡、马来西亚和越南已经成为众多半导体巨头设立海外业务的重要选址地。现在,菲律宾也有望加入这些国家的行列。 最近,美国商务部长吉娜雷蒙多表示希望帮助…

思科网络中如何进行动态NAT配置

一、什么是动态NAT?动态NAT与静态NAT的区别是什么? (1)动态NAT(Network Address Translation)是一种网络地址转换技术,它会动态地将内部私有网络中的局域网IP地址映射为公共IP地址,…

Hack The Box-Codify

目录 信息收集 rustscan nmap dirsearch WEB 提权 get user get root 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -b 2250 10.10.11.239 --range0-65535 --ulimit4500 -- -A -sC .----. .-. .-. .----..---. .----. .---. .--. .-. …

JVM 类的加载篇

我们都知道一个类从加载到卸载一共分为七个过程 加载 - 链接(验证 - 准备 - 解析) - 初始化 - 使用 - 卸载 下文我们将详细解析这些过程 谁需要加载? 在Java中数据类型分为基本数据类型和引用数据类型,基本数据类型由虚拟机预定义,引用数据类型则需要类的加载 1.加载/装载(loa…