1.Java如何进行读写文件
- Java的标准库中关于文件的操作在这里提供了很多的类
- Java中操作文件的这些类也称为IO流,对应的对象也称为流对象。
- 字节流/字符流这是在进行IO处理时的一种常见的方式,还有一种常见的方式,数据报的方式。
- Java是如何进行读写文件?
- 读文件:FileInputStream 字节流
- 写文件:FileOutputStream 字节流
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class testStream {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream
= new FileInputStream("d:/test.txt");
while(true){
int c = fileInputStream.read();
if(c == -1){
break;
}
System.out.print((byte)c);
}
}
}
2.Java进行多进程编程
- 进程(process)相当于一个任务(task)
- 双击exe的时候,操作系统就会读取这个可执行文件中的代码和数据,并且创建出一个进程来执行其中的代码。
- 一个操作系统,工作的时候本来就有很多的进程,这些进程在做自己的事情,互不干扰(进程重要的特点:独立性)
- 某个进程出现问题的时候,只是当前进程崩溃了,不会干扰其他的进程。
- 编译java程序
- javac命令进行编译
- java命令进行运行
- 当我们输入Javac或者Java这些命令的额时候,其实操作系统也是创建出了一个进程,去执行对应的编译或运行的任务。
- 进程和线程是啥关系?
- 为啥操作系统要有多进程?就是为了能够同时(并发执行)多个任务。
- 多进程是实现并发编程的一种重要的方式,创建一个进程是一个开销比较大的,每一个进程都需要自己独立的空间(虚拟地址空间),正是因为如此,进行频繁的创建进程就是一个比较低效的事情了。
- 为了进一步的提高效率,引入了"线程",线程也叫做"轻量级进程",每次创建一个新的线程,并不需要重新分配那么多的资源,而是前面的线程公用同一组资源(虚拟地址空间)。
- 实际上在操作系统中,进程线程这样的概念是同时存在的,是一个"包含关系",一个进程可以包含一个线程,也可以包含多个线程。 如果是包含多个线程这种,此时这多线程之间就共享同一份内存资源(虚拟地址空间)。
- 如何回答进行和线程的关系
- 进程包含线程;
- 线程比进程更轻量(解释线程的由来,为什么有线程)
- 进程是资源管理(计算的资源:CPU ,内存,磁盘,带宽,操作系统在执行一个程序的时候,就需要给这个对应的进程分配一定的CPU)的基本单位,线程是CPU进行调度执行的最小单位。
- 进程有一个重要的特点,独立性,每个进程都有自己的虚拟地址空间(和内存相关),以及内存描述符表(和磁盘相关)
- 同一个进程的多个线程之间共享着虚拟地址虚拟地址空间和描述符表。
- 线程和线程之间就没有这样的独立性了,如果某个线程出现异常,很可能导致整个进程中的所有线程都被终止了。