面试中面试官问了一些针对我项目的问题,注意项目不要说具体的代码细节,应该直接解释技术点
比如说关于数据库如何实现的?Mybatis
知识性内容大概总结一下
1.解释一下多态?
参考我的另一篇文章,里面有详细说明(面试的时候回答概念就好,背记一下!)多态
2.post和get的区别
POST 和 GET 是两种最常见的HTTP请求方法,用于客户端与服务器之间进行数据传输。它们的主要区别在于数据的传输方式和使用场景。
- GET 请求
功能:GET 请求用于从服务器请求数据。它通常用于获取网页内容或向服务器查询一些数据。
特点:参数放在URL中: GET 请求的参数是通过URL传递的,这些参数附加在URL的末尾,并以?分隔,多个参数之间用&分隔。例如:
http://example.com/api/resource?key1=value1&key2=value2
数据可见性: 由于参数直接放在URL中,所有传递的数据都是可见的,不适合传输敏感信息。
长度限制: URL长度有限制(不同浏览器和服务器的限制不同),因此GET请求不适合传输大量数据。
幂等性: GET 请求通常是幂等的,这意味着对同一资源的多次请求会产生相同的结果,不会对服务器状态造成影响。
使用场景:
获取网页内容或资源。
请求查询数据(例如搜索操作)。
不修改服务器上的资源,只获取信息。
2. POST 请求
功能:POST 请求用于向服务器提交数据。它通常用于上传文件、提交表单、发送复杂数据等。
特点:参数放在请求体中: POST 请求的参数放在HTTP请求的主体部分,而不是URL中。这意味着数据不会出现在URL中,而是以隐秘的方式发送。
数据量大: POST 请求没有数据长度的限制,可以发送大量数据。
安全性相对较高: 虽然POST请求本身并不加密数据,但由于数据不在URL中展示,敏感信息不会被直接暴露在浏览器历史记录中。为了提高安全性,通常结合HTTPS协议使用。
非幂等性: POST 请求通常是非幂等的,多次请求可能会导致不同的结果。例如,多次提交表单可能会导致在数据库中创建多个相同的记录。
使用场景:
提交表单数据。
上传文件。
发送复杂的数据结构(如JSON、XML)。
执行需要对服务器资源进行修改的操作(如创建新资源)。
总结
GET: 用于从服务器获取数据,参数在URL中传递,数据可见,适合查询操作。
POST: 用于向服务器发送数据,参数在请求体中传递,适合提交表单、上传文件等操作。
在实际开发中,GET 常用于请求数据,而 POST 常用于提交或发送数据。
数据传输位置:GET将数据放在URL中,而POST将数据放在请求体中。
数据大小:GET有数据大小限制,POST没有固定大小限制。
安全性:POST相对更安全,因为数据不会出现在URL中,但真正的安全需要依赖HTTPS。
幂等性:GET是幂等的,POST通常不是幂等的。
缓存:GET可以被缓存,而POST通常不会被缓存。
3.数据库的四层隔离
- 未提交读(READ UNCOMMITED):事务隔离的最低级别,仅可保证不读物理损坏的数据。
- 提交读(READ COMMITED):SQL Server的默认级别,可以保证不读“脏”数据。
- 可重复读(REPEATABLE READ):可以保证读一致性。
- 可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离,在该级别上可以保证并发事务均是可串行的。
数据库中的索引介绍一下
-
索引的关键点
加速查询:
索引通过为表中的一列或多列创建一个有序的列表,使数据库可以更快地找到和访问特定的数据行。没有索引的情况下,数据库可能需要扫描整个表来找到所需的数据。 -
索引类型(底层实现!重要):
- B-tree 索引:最常用的索引类型,适合大多数查询操作。它通过平衡树结构,提供高效的插入、删除和查询性能。
- 哈希索引:用于等值查询(如=),通过哈希函数直接定位数据,但不适合范围查询。
- 全文索引:用于文本搜索,支持关键词的全文检索。
- 唯一索引:确保索引列中的所有值都是唯一的,通常用于主键。
索引的优点:
-
提高查询速度:显著减少数据检索时间,特别是在大型表中。
-
强制唯一性:唯一索引可以确保数据列中的值是唯一的,防止重复数据。
-
索引的缺点:
- 占用存储空间:索引需要额外的存储空间来维护数据结构。
- 影响写性能:插入、更新和删除操作时,索引需要同步更新,可能会降低写操作的性能。
计算机网络中 三次握手
挺多文章介绍的
link一篇我觉得写的很好的三次握手四次挥手
回收机制?
这个问题我完全不会啊