8.20实习笔记

1、地址、API、网关、HTTP请求、URL等概念

地址(Address)

地址是网络中标识设备或资源的唯一符号。最常见的地址类型包括IP地址和MAC地址。IP地址分为IPv4和IPv6:IPv4由32位组成,格式如192.168.1.1;IPv6由128位组成,格式如2001:0db8:85a3::8a2e:0370:7334,解决了IPv4地址枯竭问题。MAC地址则是网卡的物理硬件地址,由厂商分配,格式如00:1A:C2:7B:00:47,用于局域网内设备的直接通信。

IP地址具有层次性(网络号+主机号),便于路由寻址;而MAC地址虽唯一但无层次性,仅用于最终设备识别。

URL(统一资源定位符)

URL是互联网资源的定位地址,格式为协议://域名:端口/路径?查询参数#片段。例如:

协议:如HTTP/HTTPS,定义数据传输方式;

域名:人类可读的地址(如www。example。com),通过DNS解析为IP;

路径:资源在服务器的位置(如/products);

查询参数:以?key=value传递附加信息。

URL分为绝对URL(完整路径)和相对URL(基于当前路径的简写),其核心作用是唯一标识网络资源(如网页、文件),并指导浏览器处理资源。需注意URL是URI的子集,URI仅标识资源,而URL额外提供访问路径。

HTTP请求(HyperText Transfer Protocol Request)

HTTP请求是客户端(如浏览器)向服务器发送数据的过程,结构包含三部分:

1. 起始行:包括请求方法(如GET获取资源、POST提交数据)、资源路径(URI)和协议版本(如HTTP/1.1)。例如GET /search?q=network HTTP/1.1表示搜索请求;

2. 请求头:传递元数据,如客户端环境信息(User-Agent: Mozilla/5.0)、内容类型(Content-Type: application/json)和认证信息;

3. 请求正文:用于POST/PUT等请求携带数据(如表单输入username=jinqiao&password=1234或文件内容),与请求头以空行分隔。

HTTP/1.0规范定义了完整请求格式,支持状态码(如200成功、404未找到)和持久连接。

API(应用程序编程接口)补充
API是一组预定义的函数和协议,允许不同软件组件交互而无需了解内部细节。操作系统API如Windows API,提供内存分配、文件访问等底层功能;Web API基于HTTP协议,通过URL端点提供服务。例如天气API的/weather?city=Beijing可返回天气数据,数据格式通常为JSON。

API设计包含关键要素为端点(Endpoint)对应功能URL、认证机制(如API密钥或OAuth)、错误处理(明确的状态码和描述)。如RESTful API:使用HTTP方法操作资源(GET/POST/PUT/DELETE)。

概念补充

  • 端口(Port):范围0-65535,标识设备上的具体服务。
  • DNS(域名系统):将域名转换为IP地址。查询过程为:本地缓存→Hosts文件→递归查询DNS服务器→根域名服务器→顶级域服务器→权威服务器。
  • 子网掩码:如255.255.255.0,划分IP地址的网络位与主机位,定义网络边界。
  • DHCP:动态分配IP地址、子网掩码和网关,避免手动配置的繁琐。

2、Java集合框架核心基础概念

List接口用于存储有序且可重复的元素序列,通过索引实现精确访问。ArrayList基于动态数组实现,支持O(1)随机访问,但插入/删除需移动元素(O(n)),适合查询为主场景;LinkedList基于双向链表,支持O(1)增删但随机访问效率低(O(n)),适合频繁修改场景如队列/栈实现。

Set接口确保元素唯一性(依赖equals()和hashCode()),不保证顺序。HashSet基于哈希表实现O(1)操作,但无序;LinkedHashSet通过双向链表维护插入顺序;TreeSet基于红黑树实现自动排序(O(log n)),适用于有序去重场景如排行榜。

Map接口处理键值对映射(键唯一)。HashMap采用数组+链表+红黑树结构,支持O(1)操作但无序,允许null键值;LinkedHashMap通过链表维护插入或访问顺序;TreeMap基于红黑树实现按键排序(O(log n)),支持范围查询。

泛型通过类型声明(如List<String>)在编译期检查元素类型,避免运行时ClassCastException,并消除手动类型转换。集合框架中所有接口/类均支持泛型,自定义类作为元素或键时需正确重写equals()和hashCode()以确保功能正确性。

作用:提供一套标准化、高性能的数据存储与操作工具,使开发者能够高效处理不同结构的数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。