高级api_知识点

1. File

1.1概念

在java程序里面文件和文件夹都用 File表示;

1.2常用方法

//1. 判断 file 是不是文件夹:
isDirectory()
//2. 判断 file 是不是文件:
isFile()
// 3. 判断File对象是否存在:
exists()
// 4. 创建文件:
createNewFile()
// 5. 创建文件夹:
mkdir();
// 6. 获取文件的完整/全路径:
getPath();
// 7. 获取文件的父路径(不包含文件名):
getParent();
//8. 获取文件的大小/长度/尺寸:
length()
//9. 获取文件名字:
getName()
//10. 获取文件最后修改时间:
lastModified()
//11. 删除文件:
delete();
//12. 删除文件夹(必须保证是空文件夹):
delete();
//13. 获取文件夹里面的文件名字:
list();
//14. 获取文件夹里面存放的所有文件对象:
listFiles();
//15. 获取系统盘符:
listRoots();
//16. 递归:核心在方法颞部自己调用自己。

2.io流

  • 在java中的流按数据流动方向不同可以分为输入流和输出流两种(IO流);
  • 按处理数据类型的不同可分为字符流和字节流;
  • 按照功能不同可分为节点流和处理流。

2.1流的分类

2.2.1字节流

  • 字节读取流:FileInputStream;
  • 字节输入流:FileOutputStream;

2.2.2字节流包装类

  • 字节读取流包装类:BufferedInputStream;
  • 字节写入流包装类:BufferedOutputStream;

2.2.3字符流

  • 字符读取流:FileReader;
  • 字符输入流:FileWriter;

2.2.4字符流包装类

  • 字符读取流包装类:BufferedReader;
  • 字符写入流包装类:BufferedWriter;

2.3序列化和反序列化

(1).序列化:Java序列化就是指把Java对象转换为字节序列的过程(把java对象以文件的形式保存到电脑本地或者写入到数据库)。

(2).反序列化: Java反序列化就是指把字节序列恢复为Java对象的过程(把序列化的本地文件恢复为java对象)。
被序列化的类必须实现序列化接口:Serializable

(3).(反序列化)对象读取流:ObjectInputStream:对象输入流是用来恢复之前序列化存储的对象
方法:readObject();

(4).(序列化)对象写入流:ObjectOutputStream:对象输出流用可以将对象数据写入到文件。
方法:writeObject(对象);

3.URL统一资源定位符

//UDP(user datagram protocol)是一个用户数据包传输协议(无连接服务)
//获取远程/网络上资源:
InputStream is = url.openStream();// 得到网络字节读取流
//InputStream:抽象类。

4.多线程

4.1实现线程的三种方式

  • 继承 Thread类,并重写run()方法;
  • 实现 Runnable接口,并重写run()方法;
  • 实现 Callable接口,并重写call()方法;

4.2线程的五大状态

新建、就绪、运行、阻塞、死亡;

4.3设置线程的优先级

级别:1-10(默认级别是5);
方法:setPriority(6);

4.3.1常用函数

  1. sleep():设置线程休眠时间,单位毫秒。

  2. yield():(线程放弃当前的CPU时间片)方法是停止当前线程,让同等优先权的线程运行,如果没有同等优先权的线程,那么Yield()方法将不会起作用。该方法与sleep()类似,只是不能由用户指定暂停多长时间,该方法执行后线程直接进入就绪状态。

  3. join():执行后线程进入阻塞状态,例如在线程B中调用线程A的join(),那线程B会进入到阻塞队列,直到join结束或中断线程B才开始进入阻塞队列。

  4. wait():让线程处于等待状态,并且释放掉抢到的锁旗标,其他线程可以继续抢锁旗标。wait()必须在同步的代码块中执行。

  5. notify():随机唤醒一个处于wait()状态的线程。

  6. notifyAll():唤醒所有处于wait()状态的线程。

  7. interrupt():中断线程的阻塞状态。

  8. suspend():挂起线程,但是容器造成死锁,已废弃该方法。

  9. resume():线程恢复执行。

4.4设置线程同步

为了保证线程对资源安全访问(避免资源访问冲突),可以设置线程同步:设置关键字关键字:synchronized

5.套接字

//服务器套接字:ServerSocket;
		       ServerSocket ss = new ServerSocket(指定端口号);
		       Socket socket = ss.accept();// 获取连接该服务器的客户端的套接字
		       
 //客户端套接字:Socket;
		       Socket socket = new Socket("ip地址", 端口号);

6.UDP无连接数据包传输协议

 1. 定义发送信息的人;
	DatagramSocket ds=new DatagramSocket();
 
2. 打包数据; 	
	DatagramPacket dp=new DatagramPacket(str.getBytes(), str.getBytes().length,InetAddress.getByName("127.0.0.1"), 3838);
	
3. 发送数据; 	
	ds.send(dp); 

4. 接受数据; 	
	ds.receive(dp);
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值