挑战Java面试题复习第4天,坚持就是胜利

挑战第 4 天

  • Excption与Error包结构
  • OOM 知识点
  • SOF 知识点
  • 线程程序进程知识点
  • 有些字段不想序列化,怎么办?
  • 说说 IO 流
  • Java IO与 NIO的区别

Excption与Error包结构

  1. 运行时异常(RuntimeException):
  • 包括RuntimeException及其子类。
  • 编译器不强制处理,可以不捕获也不抛出。
  • 常见类型包括ArithmeticException、IndexOutOfBoundsException、NullPointerException等。
  1. 被检查异常(CheckedException):
  • 是Exception的子类,但不包括RuntimeException。
  • 编译器强制处理,必须捕获或声明抛出。
  • 常见类型包括IOException、FileNotFoundException、SQLException等。
  1. 错误(Error):
  • 包括Error类及其子类。
  • 编译器不检查,通常由JVM抛出,表示严重错误。
  • 常见类型包括VirtualMachineError、OutOfMemoryError等。

OOM 知识点

  1. Java Heap 溢出:
  • 异常信息:java.lang.OutOfMemoryError: Java heap space。
  • 原因:不断创建对象且避免垃圾回收,直到堆内存耗尽。
  • 诊断:使用内存分析工具(如Eclipse Memory Analyzer)分析堆转储快照,区分内存泄漏还是内存溢出。
  • 解决方案:检查并优化内存使用,调整JVM参数(如-Xmx和-Xms)。
  1. 虚拟机栈和本地方法栈溢出:
  • 异常:StackOverflowError(请求的栈深度超过最大深度)或OutOfMemoryError(扩展栈时内存不足)。
  • 注意:栈大小增加会减少可分配线程数。
  1. 运行时常量池溢出:
  • 异常信息:java.lang.OutOfMemoryError: PermGen space。
  • 原因:常量池内容过多,如通过String.intern()添加字符串。
  • 解决方案:限制方法区大小(通过-XX:PermSize和-XX:MaxPermSize)。
  1. 方法区溢出:
  • 异常信息:java.lang.OutOfMemoryError: PermGen space。
  • 原因:类信息占用内存过多,或类对象未及时回收。
  • 注意:在动态生成大量Class的应用中,需特别注意。

SOF 知识点

  1. 定义:
  • StackOverflowError是在应用程序递归调用太深,导致堆栈空间耗尽时抛出的错误。
  1. 常见原因:
  • 深度递归调用:递归调用层次过深,超出栈的容量限制。
  • 大量循环或死循环:在循环中不断压栈,可能导致栈空间耗尽。
  • 全局变量过多:虽然不直接导致栈溢出,但可能间接增加栈的使用。
  • 数据结构过大:如数组、List、Map等数据结构过大,可能导致栈溢出。
  1. 处理建议:
  • 优化递归算法,减少递归深度或改用迭代方法。
  • 检查并修复可能导致无限循环的逻辑错误。
  • 减少不必要的全局变量使用。
  • 优化数据结构的大小,避免过大的数据结构导致栈溢出。

线程程序进程知识点

  1. 程序:
  • 定义:含有指令和数据的文件,存储在磁盘或其他存储设备中。
  • 特性:静态的代码,未被执行。
  1. 进程:
  • 定义:程序的一次执行过程,是系统运行程序的基本单位。
  • 特性:动态的,包括创建、运行到消亡的过程。
  • 资源:占有CPU时间、内存空间、文件、输入输出设备的使用权等。
  1. 线程:
  • 定义:进程划分的更小的运行单位。
  • 特性:比进程更小的执行单位,共享进程的内存空间和系统资源。
  • 区别:线程之间可能相互影响,而进程之间基本上是独立的。
  1. 关系:
  • 程序是静态的代码,进程是程序的动态执行实例。
  • 一个进程可以包含多个线程,线程是进程中的一个实体。
  • 线程是轻量级的,创建和切换的开销小于进程。
  • 进程提供了操作系统级别的并发执行,而线程提供了同一程序内的并发执行。

有些字段不想序列化,怎么办?

  1. 使用transient关键字:
  • 作用:阻止被修饰的变量被序列化。
  1. transient关键字的限制:
  • 只能修饰变量,不能修饰类或方法。
  1. 序列化和反序列化的影响:
  • 序列化时:被transient修饰的变量不会被持久化。
  • 反序列化时:被transient修饰的变量值不会被恢复,通常会保持默认值。

说说 IO 流

  1. 按流向分:
  • 输入流:用于读取数据。
  • 输出流:用于写入数据。
  1. 按操作单元分:
  • 字节流:以字节为单位进行数据操作。
  • 字符流:以字符为单位进行数据操作。
  1. 按角色分:
  • 节点流(低级流):直接从数据源或目的地读写数据,如FileInputStream、FileOutputStream。
  • 处理流(高级流):基于其他流,提供额外的功能,如缓冲、转换等,如BufferedReader、BufferedWriter。
  1. 基类:
  • InputStream:所有字节输入流的基类。
  • OutputStream:所有字节输出流的基类。
  • Reader:所有字符输入流的基类。
  • Writer:所有字符输出流的基类。

Java IO与 NIO的区别

  1. 引入时间:
  • NIO是在JDK 1.4中引入的。
  1. 作用与目的:
  • NIO与IO具有相同的作用和目的,即进行输入输出操作。
  1. 实现方式:
  • NIO与IO的实现方式不同,NIO主要使用块(block)操作。
  1. 效率:
  • 由于使用块操作,NIO的效率通常高于IO。
  1. API分类:
  • Java API中提供了两套NIO:
    • 一套针对标准输入输出的NIO。
    • 另一套用于网络编程的NIO。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文读懂系列:SSL加密流量检测技术详解

SSL加密流量检测功能的主要目的是为了对加密流量做解密处理,并对解密后的流量做内容安全检查(比如反病毒、入侵防御、URL远程查询、内容过滤、文件过滤和邮件过滤等)和审计(防止信息泄露)。接下来我们详细介绍SSL加密流…

【C++】关联式容器

1.Set和Map 1.1 set的介绍 set是一个常用的关联式容器,它存储唯一的元素,这些元素默认情况下按照升序排序。其底层是一种自平衡的二叉搜索树(红黑树)。 set元素的键值就是实值,实值就是键值。set的元素允许插入删除但是不允许修改(具有const…

荣誉证书PSD素材(59套免费)

本作品提供荣誉证书PSD素材下载,格式为PSD; 请使用软件Photoshop进行编辑,作品中文字及图均可以通过软件修改和编辑; 点击下载: 荣誉证书PSD素材

第T6周:Tensorflow实现好莱坞明星识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: (二)具体步骤 1.查询…

Spring6框架搭建(自用)

一、什么是Spring 众所不周知,Spring就是爪哇人的春天,但是在框架程序设计之前都绕不开javaWeb 1.javaWeb框架发展史 1、ServletJSPJavaBean(跳转页面、业务逻辑判断、数据库查询) 2、MVC三层架构(M Model pojo(User)V-view(USP)C-(controller-servl…

linux-UART

参考博客 https://blog.csdn.net/m0_38106923/article/details/126024970?sharetypeblog&shareId126024970&sharereferAPP&sharesourceweixin_40933496&sharefromlink 1.串口 UART的全称是Universal Asynchronous Receiver and Transmitter,即异步…

大数据治理:策略、技术与挑战

随着信息技术的飞速发展,大数据已经成为现代企业运营和决策的重要基础。然而,大数据的复杂性、多样性和规模性给数据管理带来了前所未有的挑战。因此,大数据治理应运而生,成为确保数据质量、合规性、安全性和可用性的关键手段。本…

vue插件清除 所有console.log()

一、作用 1、提升性能console.log() 语句会消耗一定的性能,尤其是在频繁调用的情况下。在生产环境中移除这些语句可以提高应用的运行效率。 2、减少信息泄露console.log() 可以输出敏感信息(如用户数据、API 响应等)。在生产环境中&#xf…

DAY15|二叉树Part03|LeetCode: 513.找树左下角的值、112. 路径总和、106. 从中序与后序遍历序列构造二叉树

LeetCode: 513.找树左下角的值 力扣代码链接 文字讲解:LeetCode: 513.找树左下角的值 视频讲解:怎么找二叉树的左下角? 递归中又带回溯了,怎么办? 基本思路 对题目进行一下分析,要找二叉树最底层最左边节点…

ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力

新版本发布 ClkLog在上线近1年后,获得了客户的一致肯定与好评,并收到了不少客户对功能需求的反馈。根据客户的反馈,我们在今年三季度对ClkLog的版本进行了重新的规划与调整,简化了原有的版本类型,方便客户进行选择。 与…

C++:set和map的使用

目录 序列式容器和关联式容器 set set类的介绍 构造和迭代器 增删查 insert find和erase erase迭代器失效 lower_bound与upper_bound multiset和set的区别 map map类的介绍 pair类型介绍 构造和迭代器 增删查 map数据修改:重载operator[] multimap…

Unix和Linux系统中的文件权限

详细解释Unix和Linux系统中的文件权限设置以及如何使用chmod命令来修改这些权限。 文件权限的详细解释 在Unix和Linux系统中,文件权限是控制谁可以访问和操作文件或目录的重要机制。权限分为三类:所有者(owner)、所属组&#xf…

android定时器循环实现轮播图

说明: android定时器加for循环实现轮播图 效果: step1: package com.example.iosdialogdemo;import android.os.Bundle; import android.os.Handler; import android.widget.ImageView; import android.widget.TextView;import androidx.appcompat.ap…

ChatGPT能预测时间序列?基于大模型的时间序列预测中的迭代事件推理_chatgpt能预测时间序列

引言 时间序列预测(Time Series Forecasting)是支撑经济、基础设施和社会各领域决策的关键技术。然而,传统的预测方法在面对由外部随机事件引起的突发性变化或异常时,往往表现出局限性。这些方法通常依赖于历史数据的模式识别&am…

计算机网络-传输层提供的服务

传输层在协议栈中的位置 我们可以给应用层的这些应用程序提供我们想要传输的数据,比如说我们想用微信传一张图片,或者想用QQ发一串字符。那这些数据是由我们用户直接提供的,那么我们的数据交给了应用层的某一个进程之后。这个进程可能会在我们…

将Notepad++添加到右键菜单【一招实现】

一键添加注册表 复制以下代码保存为 Notepad.reg,将红框内路径修改为自己电脑的“Notepad.exe路径”后,再双击运行即可。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\N…

存储引擎技术进化

B-tree 目前支撑着数据库产业的半壁江山。 50 年来不变而且人们还没有改变它的意向 鉴定一个算法的优劣,有一个学派叫 IO复杂度分析 ,简单推演真假便知。 下面就用此法分析下 B-tree(traditional b-tree) 的 IO 复杂度,对读、写 IO 一目了…

vscode | 开发神器vscode快捷键删除和恢复

目录 快捷键不好使了删除快捷键恢复删除的快捷键 在vscode使用的过程中,随着我们自身需求的不断变化,安装的插件将会持续增长,那么随之而来的就会带来一个问题:插件的快捷键重复。快捷键重复导致的问题就是快捷键不好使了&#xf…

00后整顿职场!一个人的底层逻辑,就是他的命运——早读(逆天打工人爬取热门微信文章解读)

00后整顿职场 引言Python 代码第一篇 洞见 一个人的底层逻辑,就是他的命运第二篇 百股跌停结尾 想看爽文情节的后续 引言 昨天晚上基本悟了 空空如也 之前听过一句话 非有之有为秒有 非空之空为真空 大致意思是 事物虽然没有独立不变的自性(非有&#…

NR cell配置SUL时,RA要在哪个carrier进行?

当一个NR小区配置了 SUL 后,其接入所需参数,包括 SUL 的频段、PointA、SCS 子载波间隔,带宽等,会通过 SIB1 下发给UE。 如上图所述,配置有SUL的小区进行RA时,网络可以明确告知UE使用SUL还是UL。例如通过PDC…