回顾-线程的创建-死锁-File的应用-UDP-TCP-反射Constructor

来源:互联网 发布:手机淘宝怎么提交改价 编辑:程序博客网 时间:2024/04/26 16:49
一、线程

根据API 1.6

创建线程有两种方式:

1. extends Thread

Thread类 :public class Thread extends Objectimplements Runnable 

  1. 继承Thread类
  2. 重写Thread类的run方法
  3. 调用Thread子类的start'()方法,启动Thread子类。

2. implements Runnable

  1. 实现Runnable接口
  2. 重写Runnable接口的run()方法
  3. 创建该Runnable子类的对象
  4. 将该对象的引用作为参数传递给Thread类的构造函数 new Thread(new Runnable())
  5. 调用Thread的start()方法,启动线程
出现死锁现象,我的演示代码原理是:在同步代码块中,嵌套代码块:
synchronized(lock1) {
...
synchronized(lock2) {
...
}
}

二、File的应用-路径-文件
在两个操作中,复制目录中的全部文件,拷贝文件等,常常会用到文件所在的路径。
将文件放到哪一个路径,需要将路径单独拿出来。
而IO流,要对应到具体路径下的某个文件。
根据以上两个应用,我目前将File类的使用列为两点。
1. 对于要复制到的文件夹
File dir = new File('路径");
随即要判断该文件是否存在,不存在则创建该目录。
if(!dir.exists())
dir.mkdirs();

2. 将文件复制到某路径下的具体文件名称时。
File newFile = new File(dir, file.getName());

三、UDP, TCP
TCP是对客户端套接字Socket中字节输入输出流的操作,在客户端及服务器端可以写入和读取。
在不断的传输数据时,在这里需要将监听了端口和地址的套接字对象,定义在while循环的外面,因为客户端与服务端建立连接,是通过这个端口,一个对象对应一个端口。

UDP是将数据报包DatagramPacket,在客户端和服务端传递的过程,数据封装在数据报包中。
在不断的传输数据时,需要将监听了端口和地址的套接字对象,定义在while循环的外面,因为客户端与服务端建立连接,是通过这这个端口,一个对象对应一个端口。

四、反射 Constructor
根据构造函数的参数列表,可以返回Constructor对象。
Constructor cons = Class.forName('类的完整名称").getConstructor(Parameters.class... );
通过newInstance()方法得到实例,并将兑现强制转换。
Object obj = (Object)cons.newInstance(参数);

0 0
原创粉丝点击