欢迎访问易文君范文网!

java面试一般会问什么

作文大全 分享 时间: 加入收藏 我要投稿 点赞

java面试一般会问什么CSE易文君-文库范文网

  面试是通过书面或面谈的形式来考察一个人的工作能力与否,物以类聚,通过面试可以初步判断应聘者是否可以融入自己的团队。那么java面试一般会问什么呢?下面是第一范文网小编给大家整理的java面试一般会问什么,供大家参阅!CSE易文君-文库范文网

java面试一般会问什么

  1.java是否会出现内存溢出?如何解决?CSE易文君-文库范文网

  内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。为了解决Java中内存溢 出问题,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,而内存的释 放是由垃圾收集器(Garbage Collection,GC)完成的,程序员不需要通过调用GC函数来释放内存,因为不同的JVM实现者可能使用不同的算法管理GC,有的是内存使用到达 一定程度时,GC才开始工作,也有定时执行的,有的是中断式执行GC。但GC只能回收无用并且不再被其它对象引用的那些对象所占用的空间。Java的内存 垃圾回收机制是从程序的主要运行对象开始检查引用链,当遍历一遍后发现没有被引用的孤立对象就作为垃圾回收。CSE易文君-文库范文网

  引起内存溢出的原因有很多种,常见的有以下几种:CSE易文君-文库范文网

  l 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;CSE易文君-文库范文网

  l 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;CSE易文君-文库范文网

  l 代码中存在死循环或循环产生过多重复的对象实体;CSE易文君-文库范文网

  l 使用的第三方软件中的BUG;CSE易文君-文库范文网

  l 启动参数内存值设定的过小;CSE易文君-文库范文网

  3.内存溢出的解决CSE易文君-文库范文网

  内存溢出虽然很棘手,但也有相应的解决办法,可以按照从易到难,一步步的解决。CSE易文君-文库范文网

  第一步,就是修改JVM启动参数,直接增加内存。这一点看上去似乎很简单,但很容易被忽略。JVM默认可以使用的内存为64M,Tomcat默认可 以使用的内存为128MB,对于稍复杂一点的系统就会不够用。在某项目中,就因为启动参数使用的默认值,经常报“OutOfMemory”错误。因此,- Xms,-Xmx参数一定不要忘记加。CSE易文君-文库范文网

  第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。在一个项目中,使用两个数据 库连接,其中专用于发送短信的数据库连接使用DBCP连接池管理,用户为不将短信发出,有意将数据库连接用户名改错,使得日志中有许多数据库连接异常的日 志,一段时间后,就出现“OutOfMemory”错误。经分析,这是由于DBCP连接池BUG引起的,数据库连接不上后,没有将连接释放,最终使得 DBCP报“OutOfMemory”错误。经过修改正确数据库连接参数后,就没有再出现内存溢出的错误。CSE易文君-文库范文网

  查看日志对于分析内存溢出是非常重要的,通过仔细查看日志,分析内存溢出前做过哪些操作,可以大致定位有问题的模块。CSE易文君-文库范文网

  第三步,安排有经验的编程人员对代码进行走查和分析,找出可能发生内存溢出的位置。重点排查以下几点:CSE易文君-文库范文网

  l 检查代码中是否有死循环或递归调用。CSE易文君-文库范文网

  l 检查是否有大循环重复产生新对象实体。CSE易文君-文库范文网

  l 检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中 数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。CSE易文君-文库范文网

  l 检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。CSE易文君-文库范文网

  第四步,使用内存查看工具动态查看内存使用情况。某个项目上线后,每次系统启动两天后,就会出现内存溢出的错误。这种情况一般是代码中出现了缓慢的内存泄漏,用上面三个步骤解决不了,这就需要使用内存查看工具了。CSE易文君-文库范文网

  原因有很多种,比如:CSE易文君-文库范文网

  1.数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象;CSE易文君-文库范文网

  2.虚拟机不回收内存(内存泄漏);CSE易文君-文库范文网

  说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 内存溢出的问题要看业务和系统大小而定,对于某些系统可能内存溢出不常见,但某些系统还是很常见的解决的方法,CSE易文君-文库范文网

  一个是优化程序代码,如果业务庞大,逻辑复杂,尽量减少全局变量的引用,让程序使用完变量的时候释放该引用能够让垃圾回收器回收,释放资源。CSE易文君-文库范文网

  二就是物理解决,增大物理内存,然后通过:-Xms256m -Xmx256m -:MaxNewSize=256m -:MaxPermSize=256m的修改CSE易文君-文库范文网

  2.说说JVM内存组成CSE易文君-文库范文网

  简单的说 java中的堆和栈CSE易文君-文库范文网

  java把内存分两种:一种是栈内存,另一种是堆内存CSE易文君-文库范文网

  1。在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配;CSE易文君-文库范文网

  2。堆内存用来存放由 new创建的对象和数组CSE易文君-文库范文网

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

  堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的。缺点就是要在运行时动态分配内存,存取速度较慢;CSE易文君-文库范文网

  栈的优势是存取速度比堆要快,缺点是存在栈中的数据大小与生存期必须是确定的无灵活 性。CSE易文君-文库范文网

  java 堆分为三个区: New 、 Old 和 PermanentCSE易文君-文库范文网

  GC 有两个线程:CSE易文君-文库范文网

  新创建的对象被分配到 New 区,当该区被填满时会被 GC 辅助线程移到 Old 区,当 Old 区也填满了会触发 GC 主线程遍历堆内存里的所有对象。 Old 区的大小等于 Xmx 减去 -XmnCSE易文君-文库范文网

  java栈存放CSE易文君-文库范文网

  栈调整:参数有 +UseDefaultStackSize -Xss256K,表示每个线程可申请 256k的栈空间CSE易文君-文库范文网

  每个线程都有他自己的 StackCSE易文君-文库范文网

  3、”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?CSE易文君-文库范文网

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

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

  4、是否可以在static环境中访问非static变量?CSE易文君-文库范文网

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

  5.JDK和JRE的区别是什么?CSE易文君-文库范文网

  Java Development Kit,Java开发包 jre ---Java Runtime Environment java运行环境CSE易文君-文库范文网

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

面试的形式

  面试有很多形式,依据面试的内容与要求,大致可以分为以下几种:CSE易文君-文库范文网

  问题式CSE易文君-文库范文网

  由招聘者按照事先拟订的提纲对求职者进行发问,请予回答。其目的在于观察求职者在特殊环境中的表现,考核其知识与业务,判断其解决问题的能力,从而获得有关求职者的第一手资料。CSE易文君-文库范文网

  压力式CSE易文君-文库范文网

  由招聘者有意识地对求职者施加压力,就某一问题或某一事件作一连串的发问,详细具体且追根问底,直至无以对答。此方式主要观察求职者在特殊压力下的反应、思维敏捷程度及应变能力。CSE易文君-文库范文网

  随意式CSE易文君-文库范文网

  即招聘者与求职者海阔天空、漫无边际地进行交谈,气氛轻松活跃,无拘无束,招聘者与求职者自由发表言论,各抒己见。此方式的目的为:于闲聊中观察应试者谈吐、举止、知识、能力、气质和风度,对其做全方位的综合素质考察。CSE易文君-文库范文网

  情景式CSE易文君-文库范文网

  由招聘者事先设定一个情景,提出一个问题或一项计划,请求职者进入角色模拟完成,其目的在于考核其分析问题、解决问题的能力。CSE易文君-文库范文网

  综合式CSE易文君-文库范文网

  招聘者通过多种方式考察求职者的综合能力和素质,如用外语与其交谈,要求即时作文,或即兴演讲,或要求写一段文字,甚至操作一下计算机等等,以考察其外语水平,文字能力,书法及口才表达等各方面的能力。CSE易文君-文库范文网

  以上是根据面试种类所做的大致划分,在实际面试过程中,招聘者可能采取一种或同时采取几种面试方式,也可能就某一方面的问题对求职者进行更广泛更深刻即深层次的考察,其目的在于能够选拔出优秀的应聘者。CSE易文君-文库范文网

精选图文

168197
领取福利

微信扫码领取福利

微信扫码分享