JSON
1.JSON定义:
(1)轻量级的文本数据交换格式
(2)具有自我描述性【看到某个JSON数据就能知道它的特点】
(3)比XML传输速度快【跨平台】
2.JSON语法规则:
(1)语法:
(2)构成要素:
1.对象{ } 2.数组[ ] 3.属性名:属性值 4.逗号(多个数据之间由逗号分隔)
(3)属性值类型种类:字符串(常用)、数字、布尔值、null、数组、对象
3.JSON实战
步骤1:JSON解析框架fastjson-1.2.47.jar【使用maven的pom依赖管理】
下载地址:http://central.maven.org/maven2/com/alibaba/fastjson/1.2.47/fastjson-1.2.47.jar
步骤2:创建maven工程,并创建标准目录
步骤3:实现Java对象换成JSOM字符串
(1)创建Java对象
(2)pom引入Fastjson的依赖
(3)测试类转换
拓展:定义集合属性
(4)实现JSON字符串转成对象
实战:
多线程
1. 进程和线程的定义
进程:应用程序的执行实例【一个应用至少对应一个进程】
线程:CPU调用和分派基本单元,进程当中执行的最小单位
2.创建线程的种类
继承java.lang.Thread类
实现java.lang.Runnable接口
3.继承java.lang.Thread类 --- 单线程
步骤1:定义MyThread类继承Thread类
步骤2:重写run()方法,编写线程执行体
步骤3:创建线程对象,调用start()方法启动线程
继承java.lang.Thread类 --- 多线程
核心要点:多个线程之间存在交替执行,不是真正的并行(并发)
4.实现Runnable接口创建 --- 单线程
步骤1:定义MyRunnable类实现Runnable接口
步骤2:实现run()方法,编写线程执行体
步骤3:创建线程对象,调用start()方法启动线程
实现Runnable接口创建 --- 多线程
5.线程的状态
(1)正常情况下流程:创建状态 ---> 就绪状态 ---> 运行状态 ---> 死亡状态
(2)异常情况下流程:创建状态 ---> 就绪状态 ---> 运行状态 ---> 阻塞(休眠)状态 --->
就绪状态 ---> 运行状态 ---> 死亡状态
6.线程优先级
线程优先级由1~10表示,1最低,默认优先级为5
优先级高的线程获得CPU资源的概率较大
7.线程休眠
核心要点:sleep()可以使线程阻塞【休眠】(以毫秒为单位)
8.多线程实战 --- 网络购票
问题:
发现的问题
不是从第1张票开始
存在多人抢到一张票的情况
有些票号没有被抢到
同步代码块:
核心要点:在非集群状态下,使用synchronized可以保持线程的安全,如果是集群状态下,synchronized会失效
网络编程
1.网络概述
(1)多台相互连接的计算机
(2)资源共享
(3)交换数据
2.网络类型分类
3.网络体系结构
4.网络通信协议概述
核心要点:在网络中,多台计算机如果希望进行通信/数据传递,必须遵循某种规约,如果不遵循,则无法进行资源共享或是数据的传递
5.网络通信协议种类
UDP特点:无连接,数据不可靠/不安全
TCP 特点:面向连接,数据稳定/安全
6.Socket简介
(1)Socket:套接字【通信链路的节点/端点】
(2)Socket:提供给应用程序的接口
7.Socket路径
java.net包路径
8.Java网络编程三要素
(1)IP地址:设备在网络中的唯一标识
(2)端口号:应用程序在设备中的唯一标识
(3)协议:信息在网络传递的过程中必须遵循的规约,例如UDP,TCP协议
9.基于UDP协议的Socket编程 --- 发送数据
10.基于UDP协议的Socket编程 --- 接收数据
11.基于TCP协议的Socket编程 --- 发送数据
12.基于TCP协议的Socket编程 --- 接收数据
13.中文乱码问题解决