Java面试真题之中级进阶(线程,历程,序列化,IO流,NIO)
媒介本来想着给自己放松一下,刷刷博客,慕然回顾,线程、程序、历程?Java 序列化?Java 中 IO 流? Java IO与 NIO的区别(增补)?似乎有点模糊了,那就大概看一下Java根本面试题吧。好记性不如烂键盘
*** 12万字的java面试题整理 ***
简述线程、程序、历程的基本概念。以及他们之间关系是什么?
线程与历程相似,但线程是一个比历程更小的实行单位。一个历程在其实行的过程中可以产生多个线程。与历程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比历程小得多,也正因为如此,线程也被称为轻量级历程。
程序是含有指令和数据的文件,被存储在磁盘或其他的数据存储装备中,也就是说程序是静态的代码。
历程是程序的一次实行过程,是系统运行程序的基本单位,因此历程是动态的。系统运行一个程序即是一个历程从创建,运行到消亡的过程。简单来说,一个历程就是一个实行中的程序,它在盘算机中一个指令接着一个指令地实行着,同时,每个历程还占有某些系统资源如 CPU 时间,内存空间,文件,输入输出装备的利用权等等。换句话说,当程序在实行时,将会被操作系统载入内存中。
线程是历程划分成的更小的运行单位。线程和历程最大的不同在于基本上各历程是独立的,而各线程则不一定,因为同一历程中的线程极有大概会相互影响。从另一角度来说,历程属于操作系统的范畴,重要是同一段时间内,可以同时实行一个以上的程序,而线程则是在同一程序内险些同时实行一个以上的程序段。
Java 序列化中如果有些字段不想进行序列化,怎么办?
对于不想进行序列化的变量,利用 transient 关键字修饰。
transient 关键字的作用是:制止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 transient 修饰的变量值不会被持久化和恢复。transient 只能修饰变量,不能修饰类和方法。
说说Java 中 IO 流Java 中 IO 流分为几种?
Java 中 IO 流分为几种?
[*]按照流的流向分,可以分为输入流和输出流;
[*]按照操作单位划分,可以划分为字节流和字符流;
[*]按照流的角色划分为节点流和处理流。
Java IO 流共涉及 40 多个类,这些类看上去很紊乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。
[*]InputStream/Reader: 全部的输入流的基类,前者是字节输入流,后者是字符输入流。
[*]OutputStream/Writer: 全部输出流的基类,前者是字节输出流,后者是字符输出流。
https://img2024.cnblogs.com/blog/1155934/202410/1155934-20241026004109361-1044054875.png
Java IO与 NIO的区别(增补)
NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO重要用到的是块,所以NIO的效率要比IO高许多。在Java API中提供了两套NIO,一套是针对尺度输入输出NIO,另一套就是网络编程NIO。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]