java 基础知识7

视频教程:https://www.bilibili.com/read/cv9965357

网络编程基础

常见通信模式
CS 客户端服务端
BS 浏览器服务端

网络编程三要素
ip 地址:设备在网络中的地址 唯一标识
ipv4:32bit 4字节大小

ipv6:128bit 16字节大小

ip 地址形式分为公网地址与私有地址(局域网)
局域网常见为 192.168.0.0 ~ 192.168.255.255
ipconfig ifconfig 分别查看本地与虚拟机的 ip
ping ip地址 可判断是否连通网络
本机地址 127.0.0.1 或 localhost 称为回送地址 本地回环地址,只会寻找当前所在本机

port 端口:应用程序在设备的唯一标识
标识正在计算机上运行的程序,由 16 位二进制数组成,范围位 0 ~ 65535

协议:数据在网络中的传输规则,常见的 UDP TCP

传输层的协议
TCP Transmission Control Protocol :传输控制协议

  1. 面向连接的协议,具有可靠性;
  2. 采用三次握手建立连接;客服端向服务端发起连接请求等待确认,服务端向客户端发送响应,客户端向服务端再次发送确认连接建立
  3. 可传输大量数据;
  4. 连接发送数据都要确认,且传输完毕需要断开连接,断开连接四次挥手



UDP User Datagram Protocol :用户数据报协议




Junit

反射
对于任何一个 Class 类,在运行时可以得到这个类的全部部分,通过获取类的字节码文件再解析这是关键
动态获取类的信息,动态调用类的成分的能力叫反射
构造器对象:Constructor
方法对象:Method
变量对象:Filed
反射第一步时得到 Class 类对象,然后才能得到 Class 的全部成分



私有不影响获取,但是必须破坏封装才能执行



由于编译成字节码文件后泛型会擦除,所以可以用反射给集合添加其他类型的数据

注解

自定义注解
public @interface 注解名{
public 属性类型 属性名() default 默认值;
}
设置属性值时,如果只有一个属性或其他属性由默认值则可以省略属性名

元注解
放在注解上的注解,
@Target 用来规定注解可以用在哪些地方,
@Retention 声明注解的生命周期


注解在哪先得到对应的对象再用方法 getDeclaredAnnotations 拿到注解对象

动态代理

cjlib 不需要实现接口也可以,可参考 spring 中相关随笔

XML
可扩展标记语言 eXtensible Mark Language
描述复杂的数据结构,用于传输和存储数据

XML 语法规则
文件后缀必须是 .xml 开头第一行是文档声明 version:xml 文件的版本 encoding:xml 文件的字符编码



在 CDATA 区可以正确使用字符

文档约束
强制约束 xml 文件中标签与属性的样式
有 DTD 和 schema 两种约束

点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
<!--方式一:外部dtd文件-->
<!DOCTYPE students SYSTEM "D:\Idea-workspace1\JavaWeb\06_xml\src\com\lin\dtd\student.dtd">
 
<!--方式二:内部dtd约束文档-->
<!--<!DOCTYPE students [
		<!ELEMENT students (student+) >
		<!ELEMENT student (name,age,sex)>
		<!ELEMENT name (#PCDATA)>
		<!ELEMENT age (#PCDATA)>
		<!ELEMENT sex (#PCDATA)>
		<!ATTLIST student number ID #REQUIRED>
		]>-->

但是 DTD 只能约束文件的编写,不能约束具体的数据类型
点击查看说明
   * 内部dtd:将约束规则定义在xml文档中(用的较少,复用性差)
   * 外部dtd:将约束的规则定义在外部的dtd文件中
   * 如果dtd文件在本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件本地的位置">
   *如果dtd文件在 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件URL">


点击查看代码
<!--导入Schema约束:-->
 <a:students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xsi:schemaLocation="
                         http://www.itcast.cn/xml  student.xsd
                         http://www.itcast.cn/xml2  D:\...\student.xsd"
			 xmlns:a="http://www.itcast.cn/xml"
                         xmlns:b="http://www.itcast.cn/xml2"
 		    >
以上代码,说明本XML文件中,引入了两个XSD约束文件:

                    http://www.itcast.cn/xml  student.xsd             (使用相对路径)
                    http://www.itcast.cn/xml2  D:\...\student.xsd"    (使用绝对路径)

给http://www.itcast.cn/xml名称空间声明一个前缀a,

给http://www.itcast.cn/xml2名称空间声明一个前缀b,

这样在标签前加上前缀,就代表此标签元素是来自哪个约束文件了,就不会搞不清相同元素到底是来自哪里了。

XML解析
使用程序读取 XML 文件中的数据

DOM 解析
适合做整个文件的解析



XPath 解析
适合做信息的检索

与 DOM 相同,首先要用 SAXReader 的 reader 方法获得整个文档对象

XPath 有四大检索方式




工厂模式

装饰模式

posted @ 2022-06-15 15:48  xy7112  阅读(29)  评论(0)    收藏  举报