6.6/6.7日java笔记

6.6java笔记

网络编程

结构:c/s b/s

Tcp/ip协议
TCP/IP协议里最重要的一点就是分层。TCP/IP协议族按层次分别为 应用层,传输层,网络层,数据链路层,物理层。
TCP与UDP
TCP/UDP 都是传输层协议,但是两者具有不同的特效,同时也具有不同的应用场景。
在这里插入图片描述

ip地址

P地址(Internet Protocol Address)是指互联网协议地址,IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异

IP地址表示方式

IP地址由32位二进制位表示,提供月2^32 ≈ 42亿个地址
点分十进制表示:32位分成了4个8位组,相邻8位组之间用’.'分割,每个8位组转换成十进制数,从0到255

端口号

端口号:是一个逻辑端口,我们无法直接看到 ,可以使用一些软件查看端口号
当我们使用网络软件一打开,那么操作系统就会为网络软件分配-个随机的端口号
或者网络软件在打开的时候和系统要指定的端口号
端口号是由两个字节组成,取值范围在0-65535之间
注意:
1024之前的端口号我们不能使用,已经被系统分配给己知的网络软件了
网络软件的端口号不能重复

Tcp通信

通信的步骤:
服务器端先启动
服务器端不会主动的请求客户端
必须使用客户端请求服务器端
客户端和服务端就会建立-个逻辑连接
而这个连接中包含-个对象
这个对象就是I0对象
客户端和服务器端就可以使用
IO对象进行通信
通信的数据不仅仅是字符
所以IO对象是字节流对象

客户端与服务器进行一次交互,需要四个io流对象

服务器端必须明确两件事情:
1.多个客户端同时和服务器进行交互服务器必须明确和哪个客户端进行的交互
在服务器端有一个方法,叫accept客户端获取到请求的客户端对象
2.多个客户端同时和服务器进行交互,就需要使用多个IO流对象
服务器是没有IO流的,服务器可以获取到请求的客户端对象Socket
使用每个客户端Socket中提供的IO流和客户端进行交互
服务器使用客户端的字节输入流读取客户端发送的数据
服务器使用客户端的字节输出流给客户端回写数据
简单记:服务器使用客户端的流和客户端交互
我请你吃饭但是没钱和你借10元请你吃饭

TCP通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据
表示客户端的类:

java.net. . Socket :此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。
套接字:包含了IP地址和端口号的网络单位
构造方法:
Socket(String host, int port)创建一一个流套接字并将其连接到指定主机上的指定端口号。
参数:
String host :服务器主机的名称/服务器的IP地址
int port; 服务器的端口号
成员方法:
Outputstream getOutputStream( )返回此套接字的输出流。
InputStream get InputStream()返回此套接字的输入流。
void close() 关闭此套接字。
实现步骤:
1.创建一一个客户端对象Socket ,构造方法绑定服务器的IP地址和端口号
2.使用Socket对象中的方法getoutputstream( )获取网络字节输出流0utputstream对象
3.使用网络字节输出流outputStream对象中的方法write,给服务器发送数据
4.使用Socket对象电的方法getInputstream( )获取网络字节输入流InputStream对象
5.使用网络字节输入流InputStream对象中的方法read,读取服务器回写的数据
6.释放资源(Socket)
注意:
1.客户端和服务器端进行交互。必须使用Socket中提供的网络流,不能使用自己创建的流对象
2.当我们创建客户端对象Socket的时候,就会去请求服务器和服务器经过3次握手建立连接通路
这时如果服务器没有启动,那么就会抛出异常
如果服务器已经启动,那么就可以进行交互了

Jdk8新特性

函数式接口
函数式接口:有且只有一-个抽象方法的接口

方法引用
方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。

当Lambda表达式中只是执行一个方法调用时,不用Lambda表达式,直接通过方法引用的形式可读性更高一些。方法引用是一种更简洁易懂的Lambda表达式。

注意方法引用是一个Lambda表达式,其中方法引用的操作符是双冒号"::"。

简单地说,就是一个Lambda表达式。在Java 8中,我们会使用Lambda表达式创建匿名方法,但是有时候,我们的Lambda表达式可能仅仅调用一个已存在的方法,而不做任何其它事,对于这种情况,通过一个方法名字来引用这个已存在的方法会更加清晰,Java 8的方法引用允许我们这样做。方法引用是一个更加紧凑,易读的Lambda表达式,注意方法引用是一个Lambda表达式,其中方法引用的操作符是双冒号"::"。

Mysql

操作数据库

增删查改
查询数据库
show databases;
创建数据库
create database db1;
修改数据库
alter database db1 character set utf8
删除数据库
drop database db1

操作数据表

增删查改
查询数据
show databases;
创建数据
create table db1(
列名一 数据类型
);
在这里插入图片描述
在这里插入图片描述
修改数据
alter table 表名 rename to db2(修改表名)
alter table 表名 character set utf8
alter table 表名 add 列名 数据类型(添加一行)
alter table 表名 change 列名 新列名 数据类型
alter table 表名 nodify 列名 新数据类型
alter table 表名 drop 列名 (删除列)
删除数据
drop table db1 if exists db1

操作数据

添加数据
*insert into 表明 (列名1,列名2,…列名n)values(值1,值2,…,值n)
删除数据
delete from 表名 [where 条件]
修改数据

updata 表名 set 列明1 =值1,列名2=值2 where 条件;

查询数据
select
字段列表
from
表名列表
where
条件
group by
分组字段
order by
排序
limit
分页限定

去除重复的纪录
select distinct

如果有null
在这里插入图片描述

起名
在这里插入图片描述

条件查询

模糊查询
在这里插入图片描述

排序查询
在这里插入图片描述
多条件排序
在这里插入图片描述
聚合函数
在这里插入图片描述
分组查询
在这里插入图片描述
在这里插入图片描述

约束

在这里插入图片描述
非空约束
在这里插入图片描述
主键约束
在这里插入图片描述
级联操作
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值