Java面试常见问题

第一:GC是什么? 为什么要有GC? 
  答:GC 即垃圾回收(Gabage Collection) 在C++ 、C中内存的管理是最为繁琐的事情不回收内存和错误的回收内存造成系统崩溃和内存泄露 GC会自动监测对象的作用域来判断这个对象是否超过作用域如果超过则自动的回收内存 java中没有提供显示的对已经分配内存进行回收的方法

第二:垃圾回收的优点和原理。并考虑2种回收机制。 
  答:GC对分配的对象进行自动的监测记录对象的作用域是否可以达到 在java中对象就不存在‘作用域’ 而是引用的这个对象的变量具有’作用域‘ ,垃圾回收器通常作为一个低级的线程在不可预知的情况下对堆中已经死亡的和长时间没有使用的对象进行清除和回收这样可以有效的防治内存泄露 提高内存的可使用率

  垃圾回收可分为:分代复制垃圾回收、标记垃圾回收、增量垃圾回收

第三:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 

  答: 当创建许多对象,GC就会对对象的地址、大小、使用情况进行记录,GC采用有向图的方式记录和管理堆中的对象,通过这种方式记录对象是否可达到,当对象不可达到的时候GC就会负责去回收不可达到对象的内存。我们可以主动的通知GC去进行垃圾回收  
System.gc() 但是jvm不保证会执行

第四:JAVA语言如何进行异常处理

  Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。

第五:java中会存在内存泄漏吗?请简单描述。
会。如:int i,i2; return (i-i2);  //当i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。

第六:java中实现多态的机制
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是同一个类中多态性的一种表现。

第七:什么是java序列化,如何实现java序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化解决了在对对象流进行读写操作所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

第八:请说出你所知道的线程同步的方法。
两种方法,分别是synchronized,wait与notify。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
notifyAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
第九: JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

时间: 2024-10-27 08:34:13

Java面试常见问题的相关文章

Java面试常见问题汇总

1 String,StringBuffer与StringBuilder的区别?? String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 S

Java面试常见问题总结

一.创建对象的4中方法: 1.new 关键字直接创建 example:Student s=new Student(): 2.class的反射调用(使用class的newInstanse方法可以调用无参构造器创建对象) Example:class.forName(); 3.使用clone()来创建 Example: try{ Student stu3 = (Student) stu1.clone(); System.out.println(stu3); } catch (CloneNotSuppo

Java面试常见问题集锦

一.Java初级 说出八种基本数据类型和三种引用数据类型 简述自动装箱和自动拆箱 ==和equals的区别 简介重载和重写,并说出它们的应用场景 面向对象的三大特征 单例模式的两种形式 有几种权限修饰符,并分别说出它们的作用范围 被static修饰的成员与普通成员有什么区别 抽象方法与接口的区别,抽象类必须要有抽象方法吗 抽象类能被final修饰吗 被final修饰的成员有什么特点 String.StringBuild.StringBuffer有什么区别 数组中可以存放什么类型的数据,知道几种给

JAVA面试常见问题之Redis篇

Redis为单线程 1.Redis 有哪些数据类型 String 哈希 list set 有序set 2.Redis 内部结构 参考:https://www.cnblogs.com/chenpingzhao/archive/2017/06/10/6965164.html 3.Redis 使用场景 缓存,会话缓存,时效性,访问频率,计数器,社交列表,记录用户判定信息,交集.并集和差集,热门列表与排行榜,最新动态等. 4.Redis 持久化机制 快照(snapshotting):将整个Redis内存

java 面试 -- 4

Java面试知识点总结 本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础:若您初涉Java,可以通过这些问题建立起对Java初步的印象,待有了一定基础后再后过头来看收获会更大).本文的问题列表来自于http://www.nowcoder.com/discuss/3043,在此感谢原作者的无私分享:) 1. Java中的原始数据类型都有哪些,它们的大小及对应

2019滴滴java面试总结 (包含面试题解析)

2019滴滴java面试总结  (包含面试题) 本人6年开发经验.今年年初找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是既有php也有Java后端开发,最终选择去了滴滴. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在滴滴也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角. 面试流程 先说下面试流程,一般大公司都有3

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

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求

转:最近5年133个Java面试问题列表

最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我初入职场的时候,类似于 Vector 与 Array 的区别.HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在.如今,你将会被问到许多 Java 程序员都没有看过的领域,如 NIO,

Java 面试-- 1

JAVA面试精选[Java基础第一部分] 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能.不管你是面试各个级别的JAVA工程师.架构师.还是项目经理,这个系列文章都是你最宝贵的资