七天零基础学java(第六天)--io多线程--网络编程--XML--注解

多线程

image

image

【】程序进入内存就成为了进程;进程,是正在进行的程序的缩写。进程进入内存就会配置相关资源。

程序是静态的,存储在硬盘;进程是动态的,在内存、

image

【】一个进程进一步细分为多条需要执行的任务,每条线(执行路径多少条)就是线程。

【】有的程序只有一条线程,叫单线程;有的程序有多条线程,叫多线程。

【】为什莫多线程,cpu解决任务速度太快,其他配合设备响应速度跟不上,cpu太闲,

所以多找点活给cpu干,

线程,是cpu任务调度执行的基本单位。

image

【】程序中无论有多少个线程,都会有一个主线程,主线程就是main方法

image

image

image

【】速成阶段只学习继承Thread类,感受线程如何争抢资源的

【】想要搞几个其他的线程,就是想要搞几个其他的线程对象,线程对象要依托于线程类

【】构建线程类:

1构建一个线程类:public class TestThread

2想要具备多线程的能力,类名后附带 extends Thread

3线程对应的任务放到run方法中,run方法属于重写Thread里面的方法(输入run后,删去大括号内容重写)

4重新定义run里面的逻辑,线程任务:输出10个数

image

【】多线程的逻辑

1main方法的第一个程序首先执行完毕后,再执行下一个程序。----此时只有一个线程

2线程对象建立后strat运行后,就多了一个线程,;参与之后程序运行的资源争夺。直到这个任务运算完关闭线程

3子线程对象和主函数在子线程之后的程序进行多线程资源争夺。

 

image

【】创建子线程对象后,使用start方法启动。

主线程任务按照顺序执行,这是主线

线程对象启动,只是争夺主线程资源,无法结束主线程的执行

 

                        |@-----------------------。

 ------@----------|------------------@-----------------。

                                   |@---------------。

 
 

image

image

image

【】网络:两台或两台以上计算机组成网络

【】ip简单理解为设备地址即可(设备地址号)

【】设备上有众多用用程序,每个应用也有个号,就是端口号,端口号用于识别不同的应用。(应用号)

image

image

【】七层iso协议只在理论,现行四层tcp/ip模型。

【】程序员在应用层层次,向下接触传输层两个协议tcp、udp。快速课程只学tcp协议

 

image

【】对于应用层的程序员来说,他们通过套接字实现网络通信

 

 

【1】自己和自己进行通信------单向通信

客户端通过套接字发送信息,服务器端接收响应。

需要服务器先启动处于接收状态才能收到客户端发来的信息。

【客户端程序】

image

【】先建立套接字对象,套接字就像File

套接字安装输出流,

利用输出流write方法发出信息

从下依次关闭流、网络

【】在客户端上,套接字需要录入服务器的ip字符串和端口号

ip通过命令行ipconfig来找(ip配置)ipv4的数串

image

【服务器】

image

【】服务器套接字并启动accept方法接收

【】套接字套上输入流

【】调用输入流读入方法

【】自下依次关闭流、网络

【2】自己和自己进行通信------双向通信

【】服务器端

【】服务器端在接收后,原来套接字套上输出流调用输出流方法

多关闭新开的两个输出流

image

 【】客户端

image

【】利用套接字,套上输入流,利用输入流的读取,读入信息

【】关闭多开的两个流

 

image

image

 

【】是一种语言,有自己的规则

【】标记,就是标签,<a></a>这就是a标签,<a>开始+</a>结束,构成一组标签。HTML也是标签语言。

【】是可自己定义的一组标签,而HTML规定好的、预定义的一组标签

image

【】xml就是纯文本,需要相应程序才能利用

image

【】第一行这句,写不写都行。写就一定要写对,粘贴复制就好。这句话意思是:定义1.0版本,编码格式utf-8

基本程序中编码格式都是utf-8     

可以在src新建File文件,命名为studens.xml

注释<!--             

             -->

image

【】文件中必须要有元素,标签就是元素,

第一个标签就是根标签,其他标签都要放到根标签里面作为根标签的子标签

【】标签里面可以加id这类元素,需要双引号括起来

image

 

 

【】xml确实做不了什么事情,只能结构化一些数据。

想要后续做一些读取,必须对xml做解析。

image

【】将dom4j的jar包引入idea

1在模块里面新建一个文件夹:选中模块文件--new--directory--命名为lib(jar包都放在lib下面)

2把jar包复制到文件夹内:将jar包ctrlc,然后在lib文件夹ctrlv,点击同意,就复制过来了。但此时还无法使用

3运行这个jar包:选中domj4文件,右键,点击add as library后,domj4文件左侧出现折叠号,才能使用

【】建立一个包,创建一个类,对xml进行操作

import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;

public class Test {
    public static void main(String[] args) throws DocumentException {
        //读取XML:
        //1.创建一个xml解析器对象:(就是一个流)
        SAXReader sr = new SAXReader();
        //2.读取xml文件,返回Document对象出来;
        Document dom = sr.read(new File("TestFirstModule/src/students.xml"));
        System.out.println(dom);//这里就相当于将整个文档封装为Document对象了啊!
        //3.获取根节点:(根节点只有一个啊!)
        Element studentsEle = dom.getRootElement();
        //4.获取根节点下的多个子节点:
        Iterator<Element> it1 = studentsEle.elementIterator();
        while (it1.hasNext()) {
            //4.1获取到子节点:
            Element studentEle = it1.next();
            //4.2获取子节点的属性:
            List<Attribute> atts = studentEle.attributes();
            for (Attribute a : atts) {
                System.out.println("该子节点的属性:" + a.getName() + "---" + a.getText());
            }
            //4.3获取到子节点的子节点啊:
            Iterator<Element> it2 = studentEle.elementIterator();
            while (it2.hasNext()) {
                Element eles = it2.next();
                System.out.println("节点:" + eles.getName() + "---" + eles.getText());
            }
            //5.每组输出后加一个换行:
            System.out.println();
        }
    }
}
image

【】搞一个解析器

【】解析器读取xml文件,这个xml文件包装为文档对象

【】文档获取根元素---students

【】对students的子元素进行遍历,获取student,(it1指向student

【】获取子元素名,获取子元素属性进行遍历,对子元素的子元素进行遍历

【】hasNext()相当于指针,判断这个水平线下是否还有下一个元素

next()获取hasNext()指向的这个元素内容,并将hasNext()下移一位

image

【】hasNext在物体上平面,has指向物体中间

 

image

image

 

image

 

【】注解不是注释,可以被读取,但是不会改变原来的代码逻辑,只是嵌入一些补充信息

【】加上@后和注释用法一样

【】在快速阶段学的注解简单,深入后很重要

image

【】注解至少告诉别人这部分是用来搞什么的,比如@Override告诉我们这是重写,同时起到一个检查的作用

 
 
 
posted @ 2025-08-12 09:36  ibddindonon  阅读(7)  评论(0)    收藏  举报