- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------
1. 线程通信,分析实现思路,保证数据安全,同步技术,等待与唤醒机制,wait notify notifyAll写Object类,锁的原因。sleep,wait两个方法区别。Lock接口,程序看明白。优先级,toString ,加入,让步,守护线程。图形界面awt(重量组件,依赖操作系统),swing(轻量组件,不依赖操作系统)组件的区别。创建窗体,进行设置,事件监听。标准格式:方法中嵌套一个匿名内部类,事件源.addXXXListener(new XXXAdapter){重写方法
public voidxxx(XXXEvent e){
}
2. 第二十六天学习内容,图形界面中的鼠标,键盘两个事件,做一个磁盘的文件列表,菜单,子菜单,模拟记事本。网络编程,网络互联模型OSI TCP IP,IP地址对象InetAddress,通信协议UDP TCP 端口号,Socket服务对象,UDP的数据发送接收。TCP的通信协议的特点
3. 鼠标事件
使用按钮实现Button
按钮事件源.addMouseListener(newMouseAdapter(){
//点击 mouseClicked
//移入 mouseEntered
//移出 mouseExited
})
事件监听器调用的方法后,传递一个鼠标的事件对象MouseEvent类的对象,MouseEvent类的方法 int getClickedCount()获取到鼠标的点击次数
4. 键盘事件
使用文本框事件TextField,单行文本,实现事件
用户按下的是什么键,过滤非法字符。组合键使用Ctrl+Enter
事件源.addKeyListener(newKeyAdapter(){
public voidxxx(KeyEvent e)
})
KeyEvent类的对象,监听器传递给方法,包装了所有键盘事件的信息
KeyEvent类的静态常量,写的是ASCII码,不需要去记录键盘的码,知道键盘的ASCII值,直接找这个类的静态常量,常量名字都是键盘上键的名字
KeyEvent.VK_A
KeyEvent类方法
int getKeyCode()获取到按下的键盘的ASCII码值
char getKeyChar()获取到按下的键盘的键的char值
KeyEvent类的父类方法 consume()结束当前键盘事件
KeyEvent类的父类方法 返回都是布尔值isAltDown isControlDown() isShiftDown().如果用户按下的是这个键,返回真
5. TextField组件的使用
单行文本区域,不能换行
构造方法,空参数,带有String参数,文本框的默认文字内容
setEchoChar(char c)回显字符,参数写的是*,按下键盘的时候,文本框中显示的永远都是星号
setText(String s)设置文本框中的内容
String getText()获取文本框内容
6. 文件列表展示案例
需要的图形界面中的组件,窗体,对话框,输入框,按钮,多行文本区域,对话框有按钮和标签Label
实现点击按钮,输入框的回车键效果
Dailog对话框,也是一个窗体容器
构造方法,两个参数Dialog(Framefrm,String titile)
三个参数Dialog(Framefrm,String titile,boolean model) 如果是真,阻挡后面的所有窗体
7. 菜单
菜单也是对象,描述菜单对象的类
MenuBar 菜单栏
Menu 菜单
MenuItem 菜单条目 -- 点击后的功能实现
MenuBar类构造器空参数,窗体方法setMenuBar将菜单栏绑定到窗体中
Menu类构造器,传递字符串的标签,标签显示在菜单上,MenuBar类的方法add,把菜单添加进去
MenuItem类构造器,传递字符串的标签,标签显示在菜单上,Menu类方法add,吧菜单条目添加进去
MenuItem注册事件监听器,活动事件
8. 简单的模拟记事本功能
打开,保存
窗体,菜单,多行文本区域
FileDailog文件对话框,用户可以选择文件。构造方法三个参数,窗体,标题,模式
文件对话框获取用户选择的文件
StringgetDircetory()获取选择的路径
String getFile()获取选择的文件
保存功能,将文本区域中的内容获取出来,写入一个文件
已经保存过的文件,还有从来没有保存过的文件
9. 网络模型
10. IP地址
每个接入互联网的计算,都有一个唯一的身份标识,IP地址,采用4个数字段组成,每个数字段0-255
IP地址的分类
A
B
C
D
E
访问互联网使用的都是IP地址,地址数字不好记忆,域名
192.168开头,局域网
127.0.0.1 本地回环地址,只要你机器网卡工作正常,自己有一个识别自己的IP地址,自己找自己,或者写localhost
IP地址也是对象,Java中把IP地址封装成了对象,描述类java.net.InetAddress类
InetAddress类,没有公开构造方法,但是类中很多非静态方法,找静态方法可以获取本类对象,对象调用非静态方法
l static InetAddress getLoclHost()返回本地主机IP地址对象
l String getHostName()主机名
l String getHostAddress()IP地址
l static InetAddress getByName(字符串主机名)找这个主机,获取指定主机的IP地址对象,这个对象获取主机名,和IP地址
11. 端口号
标识进程的逻辑地址
一个应用程序在操作系统中打开的一扇门,门号码
0-65535表示端口号,每个端口号只能有一个程序运行
常见的系统端口号: 80 互联网访问默认端口号。21 FTP文件上传下载端口号
3306 MySQL数据库访问端口号 1521 Oracle数据库端口号 1433 MSSQL端口号
javaWeb服务器Tomcat8080
12. 传输协议UDP
传输协议:数据传输的双方约定好的内容。 我们约好今天晚上11点,通个电话,拨打你的188号码,说韩语
UDP特点:
l 数据封装在数据包中,不需要连接 发短信
l 数据限制在64KB之内
l 无连接,不可靠,丟
l 不需要连接,速度快
13. Socket服务
通信双方都有Socket服务,其实就是Socket服务之间的通信
UDP中,实现Socket通信的类,DatagramSocket既能收,也能发
14. UDP的发送端实现
将数据封装成数据包,把数据包交给、Socket发送
UDP中封装数据包的类,DatagramPacket.
发送方数据包,DatagramPacket类的构造方法,字节数组,数组长度,IP地址,端口号。
数据封装完毕后,交给DatagramSocket服务发送
发送方DatagramSocket空参数构造,方法send(DategramPacket)发送数据包
15. UDP的接收端
创建DatagramSocket对象,使用构造方法,传递int类型的端口号,端口监听
数据包对象DatagramPacket接收包
使用DatagramSocket类的方法reveive(DategramPacket)接收
拆包 DatagramPacket方法实现拆包
int getLength()接收到的字节数组的有效个数
InetAddress getAddress()获取发送的IP地址对象,通过对象的getHostAddress方法获取IP地址
int getPort()发送的端口号
16. 单一控制台窗口的收与发
收,发,进行两个控制台的切换
飞秋,一个窗口就可以实现收,发
需要多线程,实现思想,main开启两个线程,一个是Send,一个是Receive
Send还是Receive的Socket服务采用main创建好后参数传递,自己不创建Socket服务
17. TCP协议特点
l 建立连接,形成通道 -- 打电话
l 可以进行大数据传输
l 三次握手才能连接,可靠协议
l 效率低
QQ聊过视频,不连接能聊,每次连接过程比较慢
适合大数据,安全的传输
TCP,客户端与服务器
客户端的 Socket服务类,就是Socket
服务器的 Socket服务类,就是ServerSocket
双方只有建立好连接后,才能通信,通信采用IO流的读写方式完成
18.