首页 > 系统相关 >Java面试真题之中级进阶(线程,进程,序列化,IO流,NIO)

Java面试真题之中级进阶(线程,进程,序列化,IO流,NIO)

时间:2024-10-26 11:21:25浏览次数:10  
标签: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: 所有输出流的基类,前者是字节输出流,后者是字符输出流。
    f602784a-4eec-4c84-dcb8-8d54f002b795.png

Java IO与 NIO的区别(补充)

NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。

标签:Java,进阶,线程,IO,进程,序列化,NIO
From: https://blog.csdn.net/2401_87718562/article/details/143246594

相关文章

  • Java学习-答题判断程序1-3
    1.前言(1)答题判题程序-1题目:设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判断答题的结果。知识点总结1.基本语法与结构:学习和应用Java的基本语法,类的定义与实例化。理解如何使用控制流(如循环和条件语句)。2.数据封装与类设......
  • 详解Java之Spring MVC篇一
     目录SpringMVC官方介绍MVCRequestMapping传递参数 无参数单个参数针对String类型 针对Integer类型针对int类型针对自定义类型多个参数参数重命名参数强制一致参数不强制一致传递数组​编辑传递List​编辑传递JSON​编辑从路径中获取参数获取单个......
  • 【老白学Java】- 工欲善其事,必先利其器
    [老白学java]-工欲善其事,必先利其器最近很闲,于是我瞄上了Java。女儿苦苦劝我趁早放弃…最终她放弃了,却彻底激发了我的学习热情!本着「不撞南墙撞北墙」的无畏精神,重新装备上我的老搭档“SONYFZ-15”,毅然决然的开启了Java修炼之旅。郑重声明:本人新入坑的老白,如......
  • java+vue计算机毕设电商平台日志分析系统的设计与实现【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和电子商务行业的蓬勃兴起,电商平台已成为现代商业活动的重要组成部分。这些平台每天产生大量的用户行为数据、交易记录以及......
  • 【Java知识】Java进阶-服务发现机制SPI
    文章目录SPI概述SPI工作原理ServiceLoader代码展示简化的`ServiceLoader`类关键点解释使用示例1.定义服务接口2.实现服务提供者3.配置文件4.加载服务提供者总结SPI使用场景1.数据库驱动2.日志框架3.图像处理4.加密算法5.插件系统6.缓存机制示例代码1.定......
  • java+vue计算机毕设多企业人力资源集成平台【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全球经济一体化的加速发展,企业间的竞争日益激烈,人力资源作为企业的核心竞争力之一,其管理效率与质量直接关系到企业的生存与发展。当前,众多企业在......
  • 老白学 Java - 工欲善其事,必先利其器
    [老白学java]-工欲善其事,必先利其器最近很闲,于是我瞄上了Java。女儿苦苦劝我趁早放弃...最终她放弃了,却彻底激发了我的学习热情!本着「不撞南墙撞北墙」的无畏精神,重新装备上我的老搭档"SONYFZ-15",毅然决然的开启了Java修炼之旅。郑重声明:本人新入坑的老白,如果文中有......
  • 云服务器进阶-部署springboot项目
    一.通过finalshell登录自己的云服务器大家可以下载绑定资源中的finalshell,通过它来访问我们的服务器,二.访问宝塔面板接着我们输入bt进入上文中我们安装过的宝塔面板。输入14查看面板访问地址以及登陆的用户名密码,第一次登陆时会给我们生成一个默认密码,登录之后我们需要......
  • java计算机毕业设计4S店客户关系管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今竞争激烈的汽车销售与服务市场中,4S店面临着诸多挑战。随着汽车行业的发展,消费者对于汽车购买和售后服务的期望不断提高,市场上的汽车品牌和......
  • java计算机毕业设计核酸检测管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在新冠疫情爆发后,核酸检测成为疫情防控的关键环节。传统的核酸检测管理多依赖人工操作,如人工记录检测者信息、检测结果等,这种方式效率低下且容易......