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

http://www.lryc.cn/news/415242.html

相关文章:

  • IoTDB 入门教程 实战篇④——C#示例(开源)
  • STL-vector容器
  • python字符串与变量名互相转换,字典,list操作
  • 企业及园区电力能源管理系统方案
  • 5.3 需求分析
  • 【C++】list介绍以及模拟实现(超级详细)
  • 从艺术创作到作物生长,农业AI迎来“GPT“时刻
  • 前端使用 Konva 实现可视化设计器(19)- 连接线 - 直线、折线
  • C#:通用方法总结—第15集
  • LoadRunner12 添加事务并添加检查点
  • python中的文件
  • Powerdesigner连接mysql数据库,逆向工程生成ER图 (保姆级教程:下载->连接->配置)看这一篇就够了
  • 商家转账到零钱分销返佣申请方案及驳回处理办法
  • 荟萃科技:国外问卷调查有没有实时更新的题库?
  • 【课程总结】Day18:Seq2Seq的深入了解
  • C++利用开发人员命令提示工具查看对象模型
  • 白骑士的PyCharm教学高级篇 3.4 服务器部署与配置
  • 数据库管理-第226期 内存至超线程(20240805)
  • Django学习-数据迁移与数据导入导出
  • 【Nuxt】编程式导航和动态路由
  • 14. 计算机网络HTTPS协议(二)
  • 【算法设计题】实现以字符串形式输入的简单表达式求值,第2题(C/C++)
  • Kylin系列-入门
  • 力扣-46.全排列
  • 博物馆展厅AI交互数字人,解锁创新的文化交互体验
  • DS18B20数字温度传感器操作解析
  • 你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。
  • 医疗设备漏费控制管理系统的必然性及未来发展性
  • 软件设计师笔记-网络基础知识
  • MMC和eMMC的区别