2021-08-12第二十八天

第二十八天

TCP细节

客户端的一个文本文件,服务器端进行复制到指定的某个文件中 ,复制完毕了,服务器端需要给客户端反馈!(反馈的消息,客户端能不能获取到)

加入反馈操作:出现客户端和服务器端互相等待的情况—>但是文件已经复制完毕!

针对服务器端:不知道客户端是否还需要从通道内的输出流对象中写入数据(此时文件读写复制结束条件:只是null)
文件读完毕的条件是null,但是TCP通过流的方式 要进行结束; 服务器端不知道客户端是否还需要写入数据,客户端等待着服务器反馈的数据!

解决方案:
1)自定义结束条件
在客户端读完文件中,通知一下服务器端
写入一行内容(“886/over”),服务器端只要读取到886或者over

2)可以使用客户端Socket的一个方法 标记(通知服务器端,客户端已经没有数据输出了)
public void shutdownOutput()
throws IOException

反射

获取当前类的字节码文件对象Class,通过它就可以获取当前类的构造方法并且创建当前类的实例,获取当前类的成员变量并去赋值.

public class ReflectDemo3 {
    public static void main(String[] args) throws Exception {
        //获取Person类的字节码文件对象
        Class clazz  = Class.forName("com.qf.reflect_03.Person");

        //获取构造器对象
        //public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
        Constructor con = clazz.getDeclaredConstructor(String.class,int.class,String.class) ;

        //取消Java语言访问检查
        con.setAccessible(true);
        //通过构造器对象创建当前类实例
        Object obj = con.newInstance("高圆圆", 20, "西安市");
        System.out.println(obj);//Person{name='高圆圆', age=20, address='西安市'}
    }
}

注解annotation

注解可以被解析,是一种标记,通过这种标记可以被程序所解析,注解的本质上就是一个接口.
jdk内置注解以及元注解,

Mysql基本语法

Mysql:存储数据的数据库.

创建库

create database 数据库名;

创建表

create table 表名(表字段名1,表字段名2,.....表字段名n);

修改库的字符集

alter database 数据库名 character set utf8mb4;

修改表

alter table 表名 修改选项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值