经典JAVA面试题

本文详细解析了从浏览器输入URL到页面展示的全过程,包括DNS解析、TCP/IP连接建立及HTTP请求响应流程。同时深入探讨了数据库事务的并发问题、锁机制、隔离级别及其默认设置,并介绍了索引的作用及其实现数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.浏览器中输入:“www.xxx.com” 之后都发生了什么?请详细阐述。

解析:经典的网络协议问题。

答:

  1. 由域名→IP 地址
    寻找 IP 地址的过程依次经过了浏览器缓存、系统缓存、hosts 文件、路由器缓存、 递归搜索根域名服务器。

  2. 建立 TCP/IP 连接(三次握手具体过程)

  3. 由浏览器发送一个 HTTP 请求

  4. 经过路由器的转发,通过服务器的防火墙,该 HTTP 请求到达了服务器

  5. 服务器处理该 HTTP 请求,返回一个 HTML 文件

  6. 浏览器解析该 HTML 文件,并且显示在浏览器端

  7. 这里需要注意:

  • HTTP 协议是一种基于 TCP/IP 的应用层协议,进行 HTTP 数据请求必须先建立 TCP/IP 连接

  • 可以这样理解:HTTP 是轿车,提供了封装或者显示数据的具体形式;Socket 是发动机,提供了网络通信的能力。

  • 两个计算机之间的交流无非是两个端口之间的数据通信 , 具体的数据会以什么样的形式展现是以不同的应用层协议来定义的。

2.事务的并发问题有哪几种?

  答:丢失更新、脏读、不可重复读以及幻读

3.数据库中的锁有哪几种?

 答:独占锁、排他锁以及更新锁

4.事务的隔离级别有哪几种?

  答:读未提交、读已提交、可重复读和序列化

扩展问题:MySQL 事务默认隔离级别是哪个?

答:可重复读。

问:SQLServer事务默认隔离级别是哪个?

答:读已提交

05. 数据库的索引有什么作用?(必考) 底层数据结构是什么,为什么使用这种数据结构?

答:

  1. 索引  是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息;

  2. 底层数据结构是 B+ 树;

  3. 使用 B+ 树的原因:查找速度快、效率高,在查找的过程中,每次都能抛弃掉一部分节点,减少遍历个数。( 此时,你应该在白纸上画出什么是 B+ 树 )

扩展问题:聚簇索引和非聚簇索引的区别?

转载于:https://blog.youkuaiyun.com/cuixiaoming1994/article/details/80090190

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值