当前位置: 首页 > 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 类库时&#

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 单调栈《数组模拟》
  • 极狐 GitLab 依赖扫描:助力开发者管理软件供应链
  • SQL数据抽样:精准洞察的高效策略
  • 开放平台: 签名密钥、回调地址、ip白名单管理。
  • excel导入
  • vue3中引入插件报ts报错Could not find a declaration file for module
  • 学懂C++(二十四):高级教程——C++ 多线程编程中 std::thread 的深入详解
  • java 面试 PDF 资料整理
  • 【vue】浏览器兼容相关
  • 关于近期安卓开发书籍阅读观后感
  • 【自动驾驶】ROS中参数服务器通信(c++)
  • R语言文本挖掘-万字详细解析tm包
  • Android 开发中常用的布局类型及其选择指南
  • Hadoop之DataNode启动源码解析
  • Mybatis XML 数据源为 Oracle 之批量插入或更新 Merge Into 的具体介绍与使用
  • Android组件 - 收藏集 - 掘金
  • Apache的80端口被占用以及访问时报错403
  • css系列之关于字体的事
  • E-HPC支持多队列管理和自动伸缩
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • laravel5.5 视图共享数据
  • uva 10370 Above Average
  • 安卓应用性能调试和优化经验分享
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 高程读书笔记 第六章 面向对象程序设计
  • 前端攻城师
  • 通信类
  • 携程小程序初体验
  • 责任链模式的两种实现
  • 主流的CSS水平和垂直居中技术大全
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #define 用法
  • #includecmath
  • #NOIP 2014# day.1 T2 联合权值
  • $.ajax,axios,fetch三种ajax请求的区别
  • (Charles)如何抓取手机http的报文
  • (day6) 319. 灯泡开关
  • (阿里云万网)-域名注册购买实名流程
  • (笔试题)合法字符串
  • (二)c52学习之旅-简单了解单片机
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一) 初入MySQL 【认识和部署】
  • (一)基于IDEA的JAVA基础10
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net Core中Quartz的使用方法
  • .NET 反射 Reflect
  • .NET(C#) Internals: as a developer, .net framework in my eyes