当前位置: 首页 > news >正文

熟悉简单测试面经

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层还通过证书认证机制,验证通信双方的身份,确保数据发送到正确的客户机和服务器。

相关文章:

熟悉简单测试面经

SQL语句中增、删、查、改的关键字 MySQL中SQL语句删除语句有哪些?区别是啥。 “”和equals的区别 “String s "1"”与“String s new String("1")”中的s一样吗? StringBuilder与StringBuffer的区别 洗牌问题 HTTP、HTTPS、U…...

IoTDB 入门教程 实战篇④——C#示例(开源)

文章目录 一、前文二、新建C#项目三、NuGet安装四、示例源码五、查询数据六、参考 一、前文 IoTDB入门教程——导读 本文详细阐述了如何通过一个C#项目成功连接到IoTDB时序数据库,进而展示了如何向该数据库高效地写入数据以及执行精确的数据查询操作。 此示例旨在为…...

STL-vector容器

目录 一、常见接口 1.1 构造函数 1.2 访问与遍历 1.3 容量操作 1.4 增删查改 二、模拟实现 2.1 迭代器失效 2.2 源代码 一、常见接口 vector数据结构实际上是顺序表 详细解释与使用请参见官方网站:vector - C Reference (cplusplus.com) 1.1 构造函数 函…...

python字符串与变量名互相转换,字典,list操作

locals是python的内置函数,他可以以字典的方式去访问局部和全局变量 vars()本函数是实现返回对象object的属性和属性值的字典对象 eval()将字符串str当成有效的表达式来求值并返回计算结果 #!/usr/bin/python3 #-*- coding uft-8 -*- guo 666 str1 "guo&qu…...

企业及园区电力能源管理系统方案

概述 面对中小型的用能集团、园区能耗监测分析等场景需求,拓扑未来公司推出标准化的企业及园区电力能源管理系统方案,力求高效高质地为目标客户提供高效部署、轻松运维的本地化能源管理解决方案。 本方案以软硬件一体的方式,集成了标准电力监…...

5.3 需求分析

需求分析 软件需求定义分类练习题 需求工程需求获取练习题 需求分析状态转化图数据流图DFD顶层数据流图0层数据流图1层数据流图 练习题 需求规约需求定义方法 需求验证需求管理版本控制需求跟踪变更控制练习题 考试大概3分 软件需求 定义 软件需求:是指用户对目标…...

【C++】list介绍以及模拟实现(超级详细)

欢迎来到我的Blog,点击关注哦💕 list的介绍和模拟实现 前言list介绍标准库容器 std::list 与 std::vector 的优缺点缺点 list的基本操作构造函数list iteratorlist capcacitylist modify list模拟实现存贮结构(双向带头循环)itera…...

从艺术创作到作物生长,农业AI迎来“GPT“时刻

(于景鑫 国家农业信息化工程技术研究中心)"GPT"一词早已不再神秘,其在文本、图像生成领域掀起的风暴正以摧枯拉朽之势席卷全球。人们惊叹于ChatGPT对话之智能、思维之敏捷,更对Stable Diffusion、Midjourney创作的艺术画作赞叹不已。而大语言模…...

前端使用 Konva 实现可视化设计器(19)- 连接线 - 直线、折线

本章响应小伙伴的反馈,除了算法自动画连接线(仍需优化完善),实现了可以手动绘制直线、折线连接线功能。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ github源码 gitee…...

C#:通用方法总结—第15集

大家好&#xff0c;今天继续分享我们的通用方法系列。 下面是今天的通用方法&#xff1a; &#xff08;1&#xff09;这个通用方法为用文件流写数据 /// <summary> /// 用文件流写数据 /// </summary> /// <param name"data"></param> //…...

LoadRunner12 添加事务并添加检查点

1、先要添加事务开始函数lr_start_transaction("登陆事务");&#xff0c;在接口上方右击点击-插入-开始事务。输入事务名称&#xff1b; 2、在某个接口想法 右击点击-插入-结束事务&#xff0c;输入事务名称&#xff0c;与开始事务名称要保持一致&#xff0c;lr_end_…...

python中的文件

绝对路径和相对路径 一般情况下绝对路径就是从根目录开始描述的路径 相对路径就是相对于当前目录 . 没错,就是一个点,表示的是当前文件夹;.. 两个点表示的是上一层文件夹 os模块与os.path os 和 os.path 是两个非常重要的标准库模块,它们分别用于操作系统相关的功能操…...

Powerdesigner连接mysql数据库,逆向工程生成ER图 (保姆级教程:下载->连接->配置)看这一篇就够了

一、下载powerdesigner 下载的教程请看如下链接&#xff0c;我太懒了&#xff0c;直接借鉴&#xff01; 把别大佬的博客搬过来了嘿嘿~我真聪明&#xff01;ㄟ( ▔, ▔ )ㄏ 操作到完成汉化就好&#xff01;&#xff01;第5步不看了&#xff0c;别按那个走&#xff0c;因为新手…...

商家转账到零钱分销返佣申请方案及驳回处理办法

分销返佣场景是商家申请最多的场景&#xff0c;因而申请被驳回也是最多的&#xff0c;根据我们上万次成功开通商家转账到零钱的经验&#xff0c;当商家转账到零钱的分销返佣场景被驳回时&#xff0c;按照以下步骤&#xff0c;商家都可以快速过审&#xff1a; 一、分析驳回原因 …...

荟萃科技:国外问卷调查有没有实时更新的题库?

有的&#xff0c;口子查和渠道查都是。 口子查的题目都是国外的公司发放在网络上&#xff0c;都是实时发布&#xff0c;所以我们需要去国外的各大社交平台做题。 这些题目不是集中的&#xff0c;而是散布在网站里面&#xff0c;需要我们去找&#xff0c;都是老外上班实时发放…...

【课程总结】Day18:Seq2Seq的深入了解

前言 在上一章【课程总结】Day17&#xff08;下&#xff09;&#xff1a;初始Seq2Seq模型中&#xff0c;我们初步了解了Seq2Seq模型的基本情况及代码运行效果&#xff0c;本章内容将深入了解Seq2Seq模型的代码&#xff0c;梳理代码的框架图、各部分组成部分以及运行流程。 框…...

C++利用开发人员命令提示工具查看对象模型

1.跳转文件路径 cd 具体路径 2.输入c1 /d1 reportSingleClassLayout类名 文件名 操作示例如下图&#xff1a;...

白骑士的PyCharm教学高级篇 3.4 服务器部署与配置

系列目录 上一篇&#xff1a;白骑士的PyCharm教学高级篇 3.3 Web开发支持 在开发完成后&#xff0c;将代码部署到服务器上是一个关键步骤。PyCharm不仅提供了强大的本地开发支持&#xff0c;还为远程服务器配置与部署、自动化部署流程提供了便捷的工具和功能。本文将详细介绍如…...

数据库管理-第226期 内存至超线程(20240805)

数据库管理226期 2024-08-05 数据库管理-第226期 内存至超线程&#xff08;20240805&#xff09;1 CPU内缓存结构2 缓存与内存3 单核单线程4 超线程5 超线程的利弊总结 数据库管理-第226期 内存至超线程&#xff08;20240805&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xf…...

Django学习-数据迁移与数据导入导出

文章目录 一、数据迁移二、数据导入导出1. 数据导出2. 数据导入 一、数据迁移 数据迁移是将项目里定义的模型生成相应的数据表。主要的迁移指令如下&#xff1a; # 第一次生成自定义模型与django admin自带模型迁移文件&#xff0c;后续只生成新增模型迁移文件。后面加App名…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...