熟悉简单测试面经

server/2024/9/18 13:30:19/ 标签: 开发语言, 面试

SQL语句中增、删、查、改的关键字

MySQL中SQL语句删除语句有哪些?区别是啥。

“==”和equals的区别

“String s = "1"”与“String s = new String("1")”中的s一样吗?

StringBuilder与StringBuffer的区别

洗牌问题

 HTTP、HTTPS、UDP和TCP的简单介绍:

SSL/TLS层是什么


SQL语句中增、删、查、改的关键字

增(添加):INSERT INTO
删(删除):DELETE FROM
查(查询):SELECT FROM
改(更新):UPDATE


MySQL中SQL语句删除语句有哪些?区别是啥。

1. DELETE语句

DELETE FROM table_name WHERE condition;

  • 用途:DELETE语句用于从表中删除满足特定条件的行。如果不指定WHERE子句,则会删除表中的所有行(这通常是不推荐的,因为它会移除表中的所有数据)。
  • 性能:DELETE语句会逐行删除数据,并在事务日志中记录每一行的删除操作。这意味着如果表中有大量数据,DELETE操作可能会相对较慢,并且会占用更多的日志空间。
  • 可回滚性:由于DELETE语句将删除操作记录在事务日志中,因此它是可回滚的。如果在执行DELETE操作后发生了错误或需要撤销更改,可以使用事务回滚来恢复数据。

2. TRUNCATE TABLE语句

TRUNCATE TABLE table_name;

  • 用途:TRUNCATE TABLE语句用于快速删除表中的所有行,但保留表的结构(如列、索引等)。它不能用于有外键约束引用的表,除非外键约束被明确设置为ON DELETE CASCADE。
  • 性能:TRUNCATE TABLE通常比DELETE语句快得多,因为它不逐行删除数据,也不记录每行的删除操作。相反,它仅重置表中的数据并释放存储空间,这可能会更快且对系统资源的占用更少。
  • 可回滚性:TRUNCATE TABLE在某些数据库管理系统中被视为不可回滚的操作(尽管这取决于具体的数据库配置和版本)。在MySQL中,如果启用了事务并且autocommit设置为0,则TRUNCATE TABLE也是可回滚的,但通常不建议依赖于此行为。


区别总结

  • 用途:DELETE用于删除表中的特定行,而TRUNCATE TABLE用于删除表中的所有行。
  • 性能:TRUNCATE TABLE通常比DELETE更快,因为它不记录每行的删除操作。
  • 可回滚性:DELETE是可回滚的,而TRUNCATE TABLE在某些情况下可能被视为不可回滚(尽管在MySQL中,如果启用了事务,它也是可回滚的)。
  • 触发器:DELETE可以触发删除触发器,而TRUNCATE TABLE不会。
  • 外键约束:对于由外键约束引用的表,应使用DELETE而不是TRUNCATE TABLE,除非外键约束被明确设置为ON DELETE CASCADE。


“==”和equals的区别

**==**:是Java中的基本数据类型比较运算符,用于比较两个变量的值是否相等。对于对象,==比较的是两个对象的引用是否相同,即它们是否指向内存中的同一块地址。
**equals()**:是Java中所有对象都继承自Object类的一个方法。默认情况下,equals()方法的行为与==相同,即比较两个对象的引用是否相同。但是,许多类(如String、Integer等)都重写了equals()方法,以便比较两个对象的内容是否相等,而不是它们的引用。


“String s = "1"”与“String s = new String("1")”中的s一样吗?

在Java中,String s = "1"; 和 String s = new String("1"); 在功能上是相似的,因为它们都创建了一个内容为"1"的字符串,但它们在内存中的表现方式有所不同。

String s = "1";:这里,字符串字面量"1"会被放入字符串常量池中(如果它尚不存在)。s变量会被赋予指向这个常量池中字符串的引用。
String s = new String("1");:这里,首先会在字符串常量池中查找是否存在"1"这个字符串(如果存在,则不会重复创建)。然后,new String("1")会在堆内存中创建一个新的字符串对象,其内容是"1",s变量会被赋予指向这个新创建对象的引用。

因此,从内容上看,这两个字符串是相同的,但从引用的角度看,它们可能指向不同的对象(除非字符串常量池中已经存在"1")。

StringBuilder与StringBuffer的区别

线程安全性:StringBuffer是线程安全的,而StringBuilder不是。这意味着在多线程环境下,如果你不需要同步操作,使用StringBuilder可以获得更好的性能。
性能:由于StringBuilder没有线程安全的开销,所以在单线程环境下,它比StringBuffer要快。
使用场景:如果你在多线程环境下工作,并且需要频繁地修改字符串,那么StringBuffer是更好的选择。然而,在大多数情况下,尤其是在单线程应用中,StringBuilder是更受欢迎的选择,因为它提供了更好的性能。

洗牌问题

  public static void shuffle(int[] arr) {Random random = new Random();for (int i = arr.length - 1; i > 0; i--) {// 生成一个[0, i]之间的随机数int index = random.nextInt(i + 1);// 交换arr[i]和arr[index]int temp = arr[i];arr[i] = arr[index];arr[index] = temp;}}

 HTTP、HTTPS、UDP和TCP的简单介绍:

  • HTTP(超文本传输协议):HTTP是一种应用层协议,用于在万维网上传输超媒体文档(如HTML)。它基于客户端-服务器模型,是互联网上应用最广泛的一种网络协议,用于从WWW服务器传输超文本到本地浏览器的传送协议。
  • HTTPS(超文本传输安全协议):HTTPS是HTTP的安全版本,通过在HTTP下加入SSL/TLS层来提供加密传输、身份认证和数据完整性保护。它广泛用于互联网上安全敏感的通信,如在线购物和网银事务。()
  • UDP(用户数据报协议):UDP是一种无连接的、不可靠的传输层协议,它不需要在发送数据之前建立连接。UDP提供面向事务的简单不可靠信息传送服务,适合对实时性要求高而准确性要求不高的应用,如视频流、在线游戏等。
  • TCP(传输控制协议):TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP在传输数据之前必须建立连接,数据在传输时采用三次握手和四次挥手的方式确保数据的可靠传输。TCP适用于对可靠性要求高的应用,如文件传输、电子邮件等。

SSL/TLS层是什么

  • SSL/TLS层是一个安全通信框架,它为网络通信提供加密、身份认证和数据完整性保护。
  • HTTP加上SSL/TLS层就成了HTTPS
  • SSL/TLS层位于TCP/IP协议与应用层协议之间,它利用密码学中的对称密码、公钥密码、数字签名、消息认证码等技术,对传输的数据进行加密和完整性校验,确保数据在传输过程中不被窃听、篡改或伪造。同时,SSL/TLS层还通过证书认证机制,验证通信双方的身份,确保数据发送到正确的客户机和服务器。


http://www.ppmy.cn/server/96079.html

相关文章

大模型行业,根本没有什么“真”开源?

最近一段时间开源大模型市场非常热闹,先是苹果开源了70亿参数小模型DCLM,然后是重量级的Meta的Llama 3.1 和Mistral Large 2相继开源,在多项基准测试中Llama 3.1超过了闭源SOTA模型。 不过开源派和闭源派之间的争论并没有停下来的迹象。 一…

解决报错:AssertionError: Torch not compiled with CUDA enabled

首先查看自己的cuda是否可用 torch.cuda.is_available()这里我的cuda是不适配torch的,所以需要重新安装适配的torch 查看自己的cuda版本 方法1 方法2 在cmd处输入nvidia-smi 这样可以找到的自己的CUDA版本安装符合自己版本的pytorch 进入pytorch官网https://pyt…

OSPF 命令 Default-router-advertise 之 always 选项解析

1、关于 default-route-advertise 命令 Ospf 是可以通过 import-route 命令引入外部路由的,但很少有人会注意到,在默认情况下,ospf 是不会引入来自外部路由的缺省路由的。 但 ospf 有一个变通的方法,就是通过 default-route-adv…

C语言 | Leetcode C语言题解之第318题最大单词长度乘积

题目&#xff1a; 题解&#xff1a; int maxProduct(char ** words, int wordsSize){int masks[wordsSize];memset(masks, 0, sizeof(masks));for(int i 0; i < wordsSize; i) {int len strlen(words[i]);for(int j 0; j < len; j) {masks[i] | 1 << (words[i]…

SQL注入(闯关游戏)

目录 关卡1 关卡2 关卡3 关卡4 关卡5 关卡6 关卡7 关卡8 关卡9 关卡10 关卡11 关卡12 关卡13 关卡14 关卡15 关卡16 关卡17 关卡18 关卡19 关卡20 关卡21 关卡22 关卡23 关卡24 关卡1 (联合查询) ?gid1 第一件事情就是逃脱单引号的控制——》为了闭…

Router路由的使用

目录 一.Vue Router的使用&#xff1a; 二.使用vue-router来实现登录页面与主页面展示效果&#xff1a; 1.创建 index.js &#xff1a; 2.在 main.js 导入创建的路由器&#xff1a; 3.在App.vue声明标签&#xff1a; 三.子路由的使用&#xff1a; 1.添加五个组件 2.配置…

每天一个数据分析题(四百五十八)- 根因分析

对根因分析描述合理的是&#xff1f; A. 根因分析是一种非结构化的调查活动 B. 根原因消除是根因分析的核心 C. 根因分析不是一个单一方法&#xff0c;也不是一组工具 D. 根因分析是一种结构化的调查活动 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库…

MVVM模式

MVVM模式 应用通过状态去渲染更新UI是程序设计中相对复杂&#xff0c;但又十分重要的&#xff0c;往往决定了应用程序的性能。程序的状态数据通常包含了数组、对象&#xff0c;或者是嵌套对象组合而成。在这些情况下&#xff0c;ArkUI采取MVVM Model View ViewModel模式&am…

【从零开始一步步学习VSOA开发】开发环境搭建

开发环境搭建 开发 VSOA 首先需要搭建开发环境&#xff0c;这里讲解 Windows 下 C/C 开发环境搭建方法。 下载 IDE 并申请授权码 SylixOS 的开发和部署需要 RealEvo-IDE 的支持&#xff0c;因此您需要先获取 RealEvo-IDE 的安装包和注册码。 RealEvo-IDE 分为体验版和商业版…

Vue系列面试题

大家好&#xff0c;我是有用就扩散&#xff0c;有用就点赞。 1.Vue中组件间有哪些通信方式&#xff1f; 父子组件通信&#xff1a; &#xff08;1&#xff09;props | $emit &#xff08;接收父组件数据 | 传数据给父组件&#xff09; &#xff08;2&#xff09;ref | $refs&a…

“八股文“在现代编程面试中的角色重塑:助力、阻力还是桥梁?

&#x1f308;所属专栏&#xff1a;【其它】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点…

C++面试基础算法的简要介绍

C是一种广泛使用的编程语言&#xff0c;尤其在算法和数据结构的实现中占据重要地位。以下是对C基础算法的一些介绍&#xff0c;涵盖了排序、查找、搜索算法以及基本的遍历算法等方面。 排序算法 快速排序&#xff08;Quick Sort&#xff09; 快速排序是一种分而治之的排序算法…

Axure八大优质Web端系统框架模版

在当今数字化转型的浪潮中&#xff0c;Axure作为一款强大的原型设计工具&#xff0c;以其快速、直观和易用的特点&#xff0c;成为了众多设计师和产品经理的首选。本文将详细介绍六套基于Axure制作的智慧系统原型框架模版&#xff0c;包括智慧园区、智慧社区、智慧乡村、智慧驾…

提升C++开发效率的利器:深入解析Clang Power Tools

目录 一、引言 二、Clang Power Tools 简介 什么是 Clang Power Tools&#xff1f; 背景与发展历史 与 Clang 编译器的关系 主要开发团队和社区支持 系统要求 安装步骤 基本配置和使用 三、主要功能 代码格式化&#xff08;Clang-Format&#xff09; 代码质量提升 …

二维码生成原理及解码原理

☝☝☝二维码配图 二维码 二维码&#xff08;Quick Response Code&#xff0c;简称QR码&#xff09;是一种广泛使用的二维条形码技术&#xff0c;由日本公司Denso Wave在1994年开发。二维码能有效地存储和传递信息&#xff0c;广泛应用于商品追溯、支付、广告等多个领域。二维…

FAT32、NTFS、FAT的区别

FAT&#xff08;File Allocation Table&#xff09; 特点 簇大小限制&#xff1a;FAT文件系统的簇大小是固定的&#xff0c;这限制了单个文件的大小和文件系统的效率。 存储效率&#xff1a;由于簇大小的限制&#xff0c;FAT文件系统在存储小文件时可能会浪费空间。 文件系统结…

win7安装mysql-installer-community-8.0.11.0

1、安装Microsoft Visual C 2019 Redistributable Package (x64) 官网下载地址&#xff1a;https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?viewmsvc-160#latest-microsoft-visual-c-redistributable-version 通过百度网盘分享的文件&#xff1…

记录阿里云部署gitlab

登录阿里云&#xff1a; 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 选择自己的ECS实例。我的实例是 使用VNC登录&#xff1a;输入用户名和密码 安装所需的依赖包&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm2 添…

WordPress网站被入侵,劫持收录事件分析

7.15&#xff0c;网站被入侵&#xff0c;但是直到7月17日&#xff0c;我才发现被入侵。 16日&#xff0c;17日正常更新文章&#xff0c;17日查询网站收录数据时&#xff0c;在站长资源平台【流量与关键词】查询上&#xff0c;我发现了比较奇怪的关键词。 乱码关键词排名 起初…

手写chatGPT——fetch解析text/event-stream会话流并逐字回显到页面——js技能提升

直接上效果图&#xff1a; 页面分上下两部分&#xff0c;上面是会话界面&#xff0c;底部是提交框。 直接上代码&#xff1a; 解决步骤1&#xff1a;引入vueelementUi <head><meta charset"UTF-8" /><title>Fetch Stream Example</title>…