在国内互联网企业中,Java工程师的缺口是最大的,可见Java的受欢迎程度。Java需求量大,自然竞争力也就高,如果没有足够的优势,很难在激烈的竞争中脱颖而出。根据学员们的面试反馈情况,小千整理了大家在Java面试中常遇到的几个重要基础问题,供大家参考。

1、Java是否会出现内存溢出?

内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。为了解决Java中内存溢出问题,我们首先必须了解Java是如何管理内存的,Java的内存管理就是对象的分配和释放问题。引起内存溢出的原因有很多种,常见的有以下几种:

①内存中加载的数据量过于庞大,如一次从数据库取出过多数据;

②集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;

③代码中存在死循环或循环产生过多重复的对象实体;

④使用的第三方软件中的BUG;

⑤启动参数内存值设定的过小;

2、说说JVM内存组成

Java把内存分两种:一种是栈内存,另一种是堆内存。

①在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配;

②堆内存用来存放由 new创建的对象和数组。

在函数(代码块)中定义一个变量时, Java就在栈中为这个变量分配内存空间,当超过变量的作用域后, Java会自动释放掉为该变量所分配的内存空间;在堆中分配的内存由 Java虚拟机的自动垃圾回收器来管理。

3、”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

4、是否可以在static环境中访问非static变量?

static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5、JDK和JRE的区别是什么?

JDK-Java Development Kit,Java开发包。JRE-Java Runtime Environment Java运行环境。

Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。

这几个Java面试中的基础问题还是很重要的,因为多数时候用人单位都会考量大家的基础如何。希望能帮到大家!

本文来自千锋教育,转载请注明出处。

分享Java面试中的几个重要基础问题相关推荐

  1. 阿里面试官的分享Java面试中需要准备哪些多线程并发的技术要点

    在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.所以你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的.他们会问面试者很 ...

  2. Java面试中与源码有关的问题分享

    在Java面试中,相信大部分应聘者都会遇到喜欢问与源代码相关问题的面试官.要知道,现在企业都希望招聘到对技术有追求并且拥有持续学习能力的Java程序员.通过应聘者对相关问题的回答,面试官能够快速诊断他 ...

  3. java面试会问到的问题吗_[转载]java面试中经常会被问到的一些算法的问题

    Java面试中经常会被问到的一些算法的问题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也能用开发语言来实现过, 可是很多由于可能在项目开发中应用的比较少,久而久之就很容易被忘记了,在此我分享 ...

  4. 带你全面了解高级 Java 面试中需要掌握的 JVM 知识点

    对于一名高级 Java 工程师来说,JVM 可以说是面试必问的一个知识点,而大多数人可能没有对 JVM 的实际开发和使用经验,接下来这一系列文章将带你深入了解 JVM 需要掌握的各个知识点.这也将帮助 ...

  5. JAVA面试中问及Hibernate与 Mybatis的对比

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

  6. java面试技术问题_11个JAVA面试中常见技术问题

    原标题:11个JAVA面试中常见技术问题 大家在平常面试java的过程中都会遇到哪些难题呢?还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?达妹为你整理Java面试中会被问到 ...

  7. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

    hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加 ...

  8. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

  9. html类名定义规则_好程序员分享Java语言中的标识符规则

    好程序员分享Java语言中的标识符规则,在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如包名.类名.方法名.参数名.变量名等,这些符号被称为标识符.标识符可以由任意顺序的大小写字母.数字. ...

最新文章

  1. 黑白两客进入页面(1)
  2. 成功,要“借力”,不要“尽力”(深刻!)
  3. 如果您是JavaScript开发人员,为什么要进行增强现实-以及如何开始
  4. java string字符操作_Java对String类型字符串的各种操作姿势
  5. JAVA语言中流程控制(顺序结构、判断语句、循环语句)
  6. WPF 可触摸移动的ScrollViewer控件
  7. 您如何轻松地水平居中 div 使用CSS? [重复]
  8. Java ResultSet教程
  9. 当局为器,人民为水。当局什么样,人民就什么样
  10. matlab用pathy语言,2018 年度编程语言 -- Python
  11. OMS智能订单管理系统
  12. WOW战斗逻辑系统分析
  13. Django Django文档
  14. YB5212A充电IC充电芯片sop8
  15. Vivado使用技巧(12):设置DCI与内部参考电压
  16. 如何在PPT中对文字进行错位排版
  17. Python自学笔记1(think python)
  18. 详解PHP设置定时任务的实现方法
  19. css3中nth-child()的用法
  20. 在网页中打开本地应用程序exe

热门文章

  1. 响应式编程优点 有效_Reactive(响应式)编程
  2. 如何使用计算机中的导出,如何将iPhone手机中的音乐导出至电脑
  3. 【JVM调优工具篇】jvisualvm工具导出dump文件教程
  4. 《操作系统》课程设计报告——用JAVA语言模仿实现“吃水果”问题
  5. Google Maps——页面提示[For development purposes only]解决方案
  6. 信任与信誉对电子服务的重要性
  7. JAVA——RSA加密【X509EncodedKeySpec、PKCS8EncodedKeySpec、RSAPublicKeySpec、RSAPrivateKeySpec】
  8. CG CTF WEB MYSQL
  9. Redis-学习笔记04【Jedis代码操作】
  10. Android 性能优化——布局优化