当前位置: 首页 > news >正文

Java技术面试(一面)

1、相面对象

1、面相对象语言/Java三大特性是什么?

引出 封装、‌继承和多态。

2、多态有哪些形式?多态使用过吗?

重载、重写,接口和抽象类的多个实现。考察工作经验、代码重构经验、习惯。

3、Java接口和抽象类有什么区别?你是如何选择使用的?

考察OOP的理解和工作经验(有没有使用抽象类写过一些模板方法、做过一些个设计等)。

2、Jvm

1、Java如何实现跨平台的?

不了解这个概念的可以换个说法:Java如何实现只需要编写一次代码,就可以在不同的操作系统上运行的?引出Jvm。

2、JVM主要的组成部分,以及每一个部分的作用是什么?
  • 1.类加载器(Class Loader):加载类文件到内存。Class loader只管加载,只要符合文件结构就加载,至于能否运行,它不负责,那是有Exectution Engine 负责的。
  • 2.执行引擎(Execution Engine):也叫解释器,负责解释命令,交由操作系统执行。
  • 3.本地库接口(Native Interface):本地接口的作用是融合不同的语言为java所用
  • 4.运行时数据区(Runtime Data Area)
  • 5、垃圾回收器。   

直接回答运行时数据区的,酌情给分。

3、堆和栈的区别是什么?用来做什么用的?
4、Java内存溢出有哪些情况?
  1. 堆内存溢出(Heap Space Overflow): 堆内存是 Java 虚拟机用于存储对象实例的地方。当创建的对象过多,或者单个对象太大以至于堆无法分配足够的内存时,会发生堆内存溢出。可以通过 -Xmx-Xms 参数调整堆的最大和初始大小来预防堆内存溢出。

  2. 栈溢出(Stack Overflow): 每个线程在 Java 虚拟机中都有自己的栈空间,用于存储方法调用及局部变量。如果递归调用层次太深,栈空间溢出,就会导致栈溢出错误。可以通过调整线程栈的大小或优化递归算法来避免栈溢出。

  3. 方法区溢出(Method Area Overflow): 方法区用于存储类信息、常量、静态变量等数据。当加载的类过多或者超出了方法区的大小限制时,会发生方法区溢出。可以通过增大方法区的大小来缓解这种情况。

  4. 直接内存溢出(Direct Memory Overflow): 直接内存不是 Java 虚拟机堆管理的一部分,而是由操作系统分配和管理的。使用 NIO 类库时&#

http://www.lryc.cn/news/428952.html

相关文章:

  • docker修改数据目录
  • Appium学习
  • 回顾 | 瑞云科技亮相ICIC2024,虚拟仿真实训云平台引关注
  • libLZMA库iOS18平台编译
  • 《AI办公类工具PPT系列之二——iSlide AI》
  • C语言基础(六)
  • 什么是词向量?如何得到词向量?Embedding 快速解读
  • AI视频创作应用
  • JAVA常见的工具类之Object类(超详细)
  • 深度学习(YOLO、DETR) 十折交叉验证
  • 基于php网上差旅费报销系统设计与实现
  • 微服务及安全
  • 图文详解ThreadLocal:原理、结构与内存泄漏解析
  • 基于java的综合小区管理系统论文.doc
  • 如何合理设置PostgreSQL的`max_connections`参数
  • Kubectl 常用命令汇总大全
  • 【Linux】Linux环境基础开发工具使用之Linux调试器-gdb使用
  • clickhouse_driver
  • BI分析实操案例分享:零售企业如何利用BI工具对销售数据进行分析?
  • python : Requests请求库入门使用指南 + 简单爬取豆瓣影评
  • 宋红康JVM调优思维导图
  • linux 网卡配置
  • IEEE |第五届机器学习与计算机应用国际学术会议(ICMLCA 2024)
  • 【网络安全】漏洞挖掘:IDOR实例
  • vue项目执行 cnpm install 报错证书过期的解决方案
  • XGboost的安装与使用
  • 【AI趋势9】开源普惠
  • 【Spark集群部署系列一】Spark local模式介绍和搭建以及使用(内含Linux安装Anaconda)
  • 泛微OA 常用数据库表
  • 宜佰丰超市进销存管理系统