2019 最新Java常见面试题(附带答案)_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 2019 最新Java常见面试题(附带答案)

2019 最新Java常见面试题(附带答案)

更新时间:2019-04-09 08:56:17 来源:极悦 浏览6831次

想让面试官在短短的几十分钟内认可你的能力?想在最短的时间内收获Java技术栈最核心的知识点?想要更全面更深入的了解Java技术?这篇文章给你想要的所有答案。

2019 最新Java常见面试题(附带答案).jpg

1.集合的作用是什么?

数据的传送增、删、改、查、constainsAll,可以存放不同类型的对象。

2.集合的通用方法有那些?通用方法是什么?(操作)

集合List的遍历方法有:

  • Iterator:
  • Enumeration
  • For
  • Get
  • set

Collection的通用方法有:

  • Iterator()
  • Add()
  • Clear();
  • remove()

3.说出ArrayList,Vector,LinkedList的存储性能和特性HashMap和Hashtable的区别

  • ArrayListVector:以数组的方式存储,增、删慢,查、改快
  • ArrayList:线程不安全,速度快
  • ArrayList:线程安全,速度慢(synchoronized)
  • LikedList:以单链表的方式存储,增、删快,查、改慢

HashMap与Hashtable都实现的Map接口,HashTable线程安全,HashMap线程不安全。

4.Collection和Collections的区别。

Collection是集合的根接口,其下有set及list

Collections是集合的算法。

5.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?用contains来区分是否有重复的对象,还是都不用。

在比较时先调用hashCode方法,如果不相同,证明不相等。

如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。

==:主要用在基本数据类型及引用

Equals:主要是对象或对象引用的比较。

集合中是否包含某一个元素用contains来判断。

6.List,Set,Map是否继承自Collection接口?

List,set继承于Collection

Map没有继承于Collection,其相对是独立的。

属于Collection类型的对象,可以通过构造函数将一个集合构造成另外一个集合。

7.面向对象的特征有哪些方面?

  • 抽象:找共性,将共有的属性、方法放到父类中
  • 继承:子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。
  • 封装:一个类包括多个属性及方法。
  • 多态性:动态:静态:

8.String是最基本的数据类型吗?

基本数据类型包括byte、int、char、long、float、double、boolean和short。

java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类

9.int和Integer有什么区别?

Int是基本数据类型,不是对象,占一个内存空间,没有方法。与其同类的有long,char,doble

Integer是封装类,具有方法及属性。与其同类的有Long,Double.Float

10.运行时异常与一般异常有何异同?

运行时异常:javaJVM抛出的异常,代码中不用处理。

一般异常:用户抛出的异常,如果用throws声明了,调用这个方法的代码必须对其处理。

11.&和&&的区别?

&:与:左边若为false右边还执行。

&&:短路与,左边若为false右边不执行。

12.final,finally,finalize的区别?

final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,

可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

算符可以用来决定某对象的类是否实现了接口。

13.heap和stack有什么区别?

栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。

堆是栈的一个组成元素

14.StaticNestedClass和InnerClass的不同?

StaticNestedClass是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

15.什么时候用assert?

assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

16.GC是什么?为什么要有GC?

GC是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

17.shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?

shorts1=1;s1=s1+1;(s1+1运算结果是int型,需要强制转换类型)shorts1=1;s1+=1;(可以正确编译)

18.Math.round(11.5)等於多少?Math.round(-11.5)等於多少?

Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数,参数加1/2后求其floor.

19.Java有没有goto?

java中的保留字,现在没有在java中使用。

20.给我一个你最常见到的runtimeexception

ArithmeticException,ArrayStoreException,BufferOverflowException,

BufferUnderflowException,CannotRedoException,CannotUndoException,

ClassCastException,CMMException,ConcurrentModificationException,DOMException,

EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,

IllegalPathStateException,IllegalStateException,ImagingOpException,

IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,

NoSuchElementException,NullPointerException,ProfileDataException,

ProviderException,RasterFormatException,SecurityException,SystemException,

UndeclaredThrowableException,UnmodifiableSetException,

UnsupportedOperationException

一般异常:

IOException

FileNotFoundException

SqlException

21.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类。

22.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

都不能

23.数组有没有length()这个方法?String有没有length()这个方法?

数组没有length()这个方法,有length这个属性

String有length()这个方法.

24.构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

25.是否可以继承String类?

String类是final类故不可以继承。

26.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一个整数表达式。因此传递给switch和case语句的参数应

该是int、short、char或者byte。long,string都不能作用于swtich。

27.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行。

28.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?

对,有相同的hashcode。

29.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是引用传递

基本数据类型:值

对象:引用

30.编程题:写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:

第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

publicclassSingleton{
privateSingleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private只供内部调用
privatestaticSingletoninstance=newSingleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
publicstaticSingletongetInstance(){
returninstance;
}
}

第二种形式:

publicclassSingleton{
privatestaticSingletoninstance=null;
publicstaticsynchronizedSingletongetInstance(){
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if(instance==null)
instance=newSingleton();
returninstance;}
}

其他形式:

定义一个类,它的构造函数为private的,所有方法为static的。

一般认为第一种形式要更加安全些

30.Java中的异常处理机制的简单原理和应用。

  • 原理:有错直接转到异常处理部分或向上抛出。
  • 应用:Java的异常就是错误,有两种一种是运行时,编码可以不用捕捉。一种是一般异常,如果throws声明了,必须进行处理。

31.垃圾回收的优点和原理。并考虑2种回收机制。

优点:程序员不用管内存,jvm自动完成,开发方便。运行优先非常低,程序无法清楚实例什么时候被消毁。

32.描述一下JVM加载class文件的原理机制?

JVM中类的装载是由ClassLoader和它的子类来实现的,JavaClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

34.char型变量中能不能存贮一个中文汉字?为什么?

能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的

相关Java面试题推荐

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>