欢迎光临散文网 会员登陆 & 注册

Java高级特性

2023-01-30 15:34 作者:我不会java和pr  | 我要投稿


集合框架和泛型



虚线框代表接口 实线框代表类

空心箭头代表有继承关系

Collection 代表着一个集合框架 ,各种类型集合接口的一个父接口

Collections是指对集合提供一些算法的算法类


了解输入输出的概念

初步掌握Java通过什么API来操作文件或目录

java中的File文件,可以指文件也可以指一个目录

java输入输出是站在程序角度上看的

java.IO.File用于操作文件或者目录

java中路径写法:

File类的常用方法:

流是一组有序的数据序列

以先进先出的方式发送信息的通道

InputStream字节输入流(抽象类-基类)

字节输入流--读

InputStream抽象父类-FileInputStream子类

常用方法:read()几个重载方法作用不同

int read();

从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果读到了输入流的末尾,返回-1

int read (byte[] b):

从输入流读取若干字节,将这些字节保存到数组b中。返回的是读取到的字节数,如果读到了输入流的末尾,返回-1

int read(byte[] b , int off, int len):

从输入流读取若干字节,将这些字节保存到数组b中。off值得是字节数组中开始保存数据的起始下标。len指的是读取的字节数目,返回的是实际读取到的字节数,如果读到了输入流的末尾,返回-1





以上这个方法有误,会出现空格



6.10 字节输入输出使用常见错误 P68 - 07:49



解决乱码问题

BufferReader



关闭流的原则:先开的后关,后开的先关


多线程

一个进程同时运行多个线程,用来完成不同的工作,则称之为多线程。多个线程交替占用资源,而非真正的并行执行。


为什么学习多线程?

*多线程在软件开发领域有着重要地位

*多线程开发优点明显

*多线程是绝大多数面试必问点


多线程的优势:

*充分利用CPU资源,提升代码性能

*简化编程模型,更好的软件设计和架构

*带来良好的用户体验


进程:应用程序的执行实例,有独立的内存空间和系统资源。

线程:CPU调度和分派的基本单元,CPU运算的最小单位,可完成一个独立的顺序控制流程。


进程(运行程序)-->线程(程序的一个个任务)

CPU(工厂)-->进程(车间)-->线程(工人)

主线程:

main()方法即为主线程入口

产生其他子线程的线程

必须最后完成,因为他执行各种关闭操作



如何通过继承Thread创建和启动线程

1.定义MyThread类继承Thread类(extends Thread)

2.重写run()方法,编写线程执行体

3.创建MyThread线程对象,调用start()方法启动线程


这里不可以调用run()方法:

(1)只有主线程一个执行路径

(2)依次执行了两次run()方法



实现Runnable创建线程

(1)定义MyRunnable类实现Runnable接口

(2)实现run()方法,编写线程执行体

(3)创建线程对象,调用start()方法启动线程





在java中创建线程的两种方式

继承java.lang.Thread 类

*编写简单,可直接操作线程,适用于单继承

实现java.lang.Runnable接口

*避免单继承局限性,便于资源共享

推荐使用实现Runnable接口方式创建线程




线程状态


线程调度和线程有优先级

线程调度:优先级和睡眠

让线程暂时进入睡眠指定时长,线程进入阻塞状态


以上这两种都叫做让线程休眠的方法。


线程调度join();

线程调度yield();(线程的礼让)

暂停当前线程,允许其他具有相同优先级的线程获得运行机会。

该线程处于就绪状态,不转为阻塞状态。

yield只是提供一种可能,但不能保证一定实现了礼让。

多线程共享数据

可能带来的问题:

数据不安全

原因:多线程共同操作数据时,引发的冲突(如延迟,操作未全部完成等)


9.5 Socket简介 P106 - 12:04






对象在网络编程中的传递就是一个序列化和反序列化的过程


Java高级特性的评论 (共 条)

分享到微博请遵守国家法律