Java基础(八)面试题

面试题:
HashMap集合和Hashtable的区别?

  • 共同点:都是map接口的实现类,都是基于哈希表的实现类
  • HashMap集合线程不安全的类,不同步,执行效率高(允许键和值是null的)
  • Hashtable集合线程安全的类,同步,执行效率低(不允许有null键和null值)

面试题:
throws和throw的区别?
throws:也是表示抛出异常,它后面跟的异常类名,并且可以多个异常类名中间逗号开
举例:

  • public void show() throws IoException,ClassNotFoundException{...}
    在方法上抛出,由调用者处理
    它表示抛出异常的可能性
  • throw:抛出的一个异常对象
    在语句体中抛出的,由语句体进行处理
    它表示抛出异常的肯定性

    面试题:

  • 如果catch里面有return 语句,finally中的代码还会执行,是在return语句之前执行还是return后执行?
  • finally中代码是一定会执行的,是在return前

原文地址:http://blog.51cto.com/13670525/2117643

时间: 2024-10-06 15:10:17

Java基础(八)面试题的相关文章

50道最新java基础部分面试题(二)

java基础部分面试题(前11题请看上一篇博客)12.静态变量和实例变量的区别? 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加.在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量.静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了.总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直

【面试题】Java基础部分面试题

Java基础面试题 Equals与==的区别 使用==比较原生类型如:boolean,,int,char等等,  使用equals()比较对象. 1.  ==是判断两个变量或类型是不是指向同一个内存空间, equals是判断两个变量或实例所指向的内存空间的值是不是相同. 2. ==是指对内存地址进行比较,equals()是对字符串的内容进行比较 3. ==指引用是否相同, equals()指的是值是否相同. 自动拆装箱 自动装箱是将一个Java定义的基本数据类型赋值给相应封装类的变量, 拆箱与装

2019年最新50道java基础部分面试题

[软帝学院]1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?  可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有没有goto?  java中的保留字,现在没有在java中使用. 3.说说&和&&的区别.  &和&

Java基础知识/面试题

什么是面向对象编程? 面向过程:按照步骤解决问题 面向对象:把构成问题的各个事物分解成各个对象,对象作为程序基本单位,将程序和数据封装其中,以提高程序的重用性.灵活性和可扩展性. Java三大特性 封装 继承 多态性 Java八种基本数据类型 8种基本数据类型: byte.short.int.long float.double boolean char 3种引用数据类型: 对象.数组.接口 Java多线程实现方法 Thread -- 类,继承 Runnable--接口,实现implement 实

2019年最新50道java基础部分面试题(三)

前21题请看之前的随笔 22.面向对象的特征有哪些方面 计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程.面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统中. 面向对象的编程语言有封装.继承 .抽象.多态等4个主要的特征. 1封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚.低耦

80道最新java基础部分面试题(六)

自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 59.ArrayList和Vector的区别 答: 这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复的,这是HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素(本来题目问的与

80道最新java基础部分面试题(七)

自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 70.TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!  (应该是没有针对问题的确切的答案,当前的add方法放入的是哪个对象,就调用哪个对象的compareTo方法,至于这个compareTo方法怎么做,就看当前这个对象的类中是如何编写这个方法的) 实验代码: public class Parent i

80道最新java基础部分面试题(五)

自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 48.同步和异步有何异同,在什么情况下分别使用他们?举例说明.  如果数据将在线程间共享.例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取. 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率. 49. 下面两个方法同步吗?(自己发明)

java基础的面试题(一)

1.面向对象的特征有哪些方面    1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以

重学JAVA基础(八):锁的基本知识

1.线程状态 如上图,当我们新建一个线程,并start后,其实不一定会马上执行,因为只有操作系统调度了我们的线程,才能真正进行执行,而操作系统也随时可以运行其他线程,这时线程又回到可运行状态.这个过程是操作系统控制的,不是我们能控制的.我们能控制的是将线程变为blocked,并从blocked变为runable状态. 在以前实验的wait和notify中,我当时并没有注意到notify后会进行锁阶段,以为notify后直接进入runable状态,等待操作系统调度.  从上面的图中可以看到,我们n