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 :传输控制协议
- 面向连接的协议,具有可靠性;
- 采用三次握手建立连接;客服端向服务端发起连接请求等待确认,服务端向客户端发送响应,客户端向服务端再次发送确认连接建立
- 可传输大量数据;
- 连接发送数据都要确认,且传输完毕需要断开连接,断开连接四次挥手
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:将约束规则定义在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 有四大检索方式
工厂模式
装饰模式