第四周day12 1. IP:计算机地址 (1) 2. 端口号:计算机内软件地址 3. 通信协议:可以理解为人与人之间交流必须要有相同的语言,相当于规则 4. 使用UDP协议发送数据 (1) 步骤 ① 创建发送端Socket ② 创建数据并打包 ③ 发送数据 ④ | | file:///C:\Users\乃东\AppData\Local\Temp\ksohtml\wps1417.tmp.jpg | 释放资源
打包实例↓ 5. 使用UDP协议接收数据 (1) 步骤 ① 创建接收端Socket ② 接收数据 ③ 解析数据 ④ 输出数据 ⑤ 释放资源 实例↓ DatagramSocket ds=new DatagramSocket(9900);//创建接收端 byte[] buf=new byte[1024];//接收的数据 int len=buf.length;//接收数据的长度 DatagramPacket dp=new DatagramPacket(buf, buf.length);//接收的数据存在包里 System.out.println("1"); ds.receive(dp);//用ds接收dp System.out.println("2"); System.out.println(dp.getAddress());//打印dp接收的ip地址 System.out.println(new String(dp.getData(),0,len));//打印接收的内容,new String是把byte数组转成String ds.close(); 6. 注意事项: (1) 发送端和接收端端口要一直,否则接收不到 (2) 一个端口同一时间只能用一次 7. 使用TCP协议发送数据 (1) 创建发送端Socket(创建连接) (2) file:///C:\Users\乃东\AppData\Local\Temp\ksohtml\wps1418.tmp.jpg获取输出流对象 (3) 发送数据 (4) 释放资源 实例→ 8. 使用TCP协议接收数据 (1) 创建接收端ServerSocket (2) 监听(阻塞) (3) 获取输入流对象 (4) 获取数据 (5) 输出数据 (6) file:///C:\Users\乃东\AppData\Local\Temp\ksohtml\wps1419.tmp.jpg释放资源 实例↓ 9. 小结: (1) 用tcp协议接收数据的时候,一般情况下回给与发送端一个反馈,比如登录账号的时候,是否登录成功,因为监听的时候会创建一个Socket对象,所以可以用这个对象获取一个输出流对象,这样可以做一个if判断给发送端反馈一个信息,而发送端只需要再用Socket对象获取一个输入流对象,用于接收服务端反馈的信息。 day131. 反射: (1) 在运行时,我们可以获取任意一个类的所有方法和属性 (2) 在运行时,让我们调用任意一个对象的所有方法和属性 2. 反射前提: (1) 要获取类的对象(class对象) ① Class.forName(“对象全名”) ② 对象名.getClass ③ 类名.class 3. 字节码对象:相当于是Java用于描述类的对象,那么每个类都是独一无二的,所以每个类的字节码对象都是唯一的,通过三种方法获取同一类的字节码对象,一定是相等的。 4. 常用方法: (1) Constructor<?>[] getConstructors():获取所有public修饰构造方法,并返回Constructor数组 (2) Constructor<T> getConstructor(Class<?>...parameterTypes) ① 不传参数,获取无参构造,并且可以用newInstance创建对象 ② 传指定参数,获取带参构造,并且可以用newInstance创建对象 ③ 注意:通过newInstance创建对象的时候,对于是否要传入参数与getConstructor保持一致,也就是说,getConstructor传了参数,newInstance也要传入参数。 5. 可变参数: (1) 可以传多个或者零个参数,方法小括号里类型和类型名之间加“...”,其他不变,比如传int类型:(int ...num) (2) 默认将传递过来的元素封装成数组,上面的num就变成了数组名 6. 通过反射获取成员变量并使用 (1) Field[] getFields():获取所有public修饰的成员变量,返回值是数组 (2) Field getField(String name):根据传入的名称获取public修饰的对象,返回Field对象 (3) Field[] getDeclaredFields():获取所有的成员变量,返回数组 (4) Field getDeclaredField(String name):根据传入的名称获取变量,发挥Field对象 ① 然后变量有个get和set方法,调用的是上面传入的变量名的值 7. JavaBean:用于封装数据 (1) 规范 ① 类使用public修饰 ② 提供private修饰的成员变量 ③ 为成员变量提供public修饰的get和set方法 ④ 提供public修饰的无参构造 ⑤ 实现序列化接口 ⑥ 其他:在实际开发中可以根据需求变化 8. 小结: (1) 一般用字节码对象调用的什么返回的对象就是什么,比如getField就返回的是Field对象,getmethod返回的就是method,getconstructor就是constructor (2) 想要获取私有的成员变量、成员方法或构造方法,可以在get和方法之间加Declared,比如:getDeclaredConstructor,然后获取私有之后还不能调用,需要用setAccessible(true)跳过检查私有 9. eclipse常用快捷键: (1) alt+上或者下 移动选中代码 (2) ctrl+alt+上或下 复制选中代码 (3) alt+shift+z 将选中代码放入一个指定的代码块中 (4) alt+shift+m 提取成方法 (5) alt+shift+r 重命名所有相同的代码 以上是基础加强阶段内容以下是web阶段内容day011. 学前要点(重点加强) (1) 面向对象 (2) 集合 (3) IO流 (4) 反射 2. HTML (1) 概念:hyper text markup language超文本标记语言 ① 标记语言:指的是通过一组标签的形式描述事物的一门语言 ② 超文本:比普通的文本更强大 (2) 作用: ① 制作页面(目前学的是静态页面,没有数据库的参与) (3) 使用场景: ① 在设计网页的时候 3. 基本标签:大部分标签都是收尾照应的 (1) <html></html>: (2) <head></head>:头, (3) <body></body>:体,正文部分 (4) <title></title>:标题,这个标签是写在head里面的 4. 常用标签 (1) <font>字体 ① color: 字体颜色 ② size: 字体大小 ③ face: 字体样式(比如宋体,楷体) (2) <br/> 换行,快捷键:shift+enter (3) : 一个空格 (4) <h1><h2>...<h6>: 标题,没有<h>这个标签 (5) < p> 段落 (6) <b> 粗体<i>斜体 (7) <u> 下划线 (8) <centre> 居中 (9) <hr/> 分割线 5. 在页面中插入图片 (1) <img> 图片标签 ① 常用属性 1) src: 来源 a. ../ 上一级目录 b. ./ 当前目录 2) width: 宽度 3) height: 高度 4) alt: 默认显示 6. 列表标签 (1) <ol>: 有序列表 ① 属性 1) type: 列表类型(比如1,a,i) 2) start: 从多少开始 ② <li> (2) <ul>: 无序列表 ① 属性 1) type: 列表样式 ② <li> 7. 超链接标签 (1) <a> ① href: 连接路径 ② target: 打开方式 1) _self: 在自身页面打开(这是默认状态) 2) _blank: 新打开一个页面 8. 表格标签(重点了解) (1) <table> ① <tr>:一行 1) <td>:一个单元格 a. 属性 a) colspan 列数,用作合并单元格 b) rowspan 行数,用作合并单元格 ② 属性 1) width:宽度 2) height:高度 3) border:边框 4) align:水平位置 9. 表单标签(重点掌握) (1) 作用:可以提交数据 (2) <form> ① 常用属性 1) action:把数据提交到目的路径,默认提交到当前页面 2) method:提交方式 a. 值 a) get(默认):不安全,数据会显示到地址栏中,有大小限制 b) post:不会显示到地址栏中,相对安全 ② 元素 1) <input> a. 属性 a) type i. 值 i) text 文本框 ii) password 密码框 iii) radio 单选按钮,name需要设置得一样 iv) checkbox复选按钮 v) button 普通按钮,没有任何功能的按钮 vi) submit 提交按钮 vii) reset 重置按钮 viii) file 文件上传的表单项 ix) hidden 隐藏字段 x) image 图片按钮 b) name:表单元素的名称,用于后台接收数据 c) value:默认值 d) size:长度 e) maxlength:最大长度 f) readyonly:只读文本框 g) checked: 默认选择,可以不给值 2) <select>:下拉列表 a. 元素 a) <option>:选项 3) <textarea> 文本域 a. 属性 a) cols列数 b) rows行数 10. form里的其他功能,这是h5的功能,有些浏览器不支持 (1) <input type=”email”> 必须是email格式 (2) <input type=”date”> 时间格式 (3) <input type=”color”> 颜色 day021. 后台页面 (1) 用《frameset》 ① 属性 1) rows=“10%,20%,*”:把页面分成3行,分别占百分之10、20和剩余部分。 2) cols=“比例”:把页面分成n列,效果如rows (2) 然后切分完后,如果不用再切分,用《frame》表示,如果还需切分,再用《frameset》表示 2. 外部css注意调用的时候用《link href=“路径” rel=“stylesheet”》 (1) 优先级:外部<页面<内部 3. css选择器:id名和class名不能以数字命名 (1) 元素选择器:标签{} (2) id选择器:#名字{} ① body里面的标签属性设置id比如:<h1 id=a> ② id选择器一般是唯一的 (3) 类选择器:.类名{} ① 类选择器一般可以对应多个元素,也要给元素设置class (4) 后代选择器 ① 父标签+空格+子标签,比如:#d1 input{},这个案例#d1里面所有input都会被选择。 ② 父标签 > 子标签,父标签里第一层的子标签 (5) 属性选择器 ① 标签名[属性]{ } (6) 并列选择器 ① 标签a,标签b{ } 4. 今天重点掌握 (1) 什么是css (2) 声明css的三种方式 (3) 选择器 (4) div+css=页面布局
|