zoukankan      html  css  js  c++  java
  • java-基础面试题(2)

    1.ArrayList和LinkedList有什么区别?

     ArrayList和LinkedList都实现了List接口,他们有以下的不同点:

    • ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

    • 相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。

    • LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。

    2.JDK和JRE的区别是什么?

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

    3.Java支持多继承么?

    不支持,Java不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。

    4.接口和抽象类的区别是什么?

    Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

    • 接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

    • 类可以实现很多个接口,但是只能继承一个抽象类

    • 类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

    • 抽象类可以在不提供接口方法实现的情况下实现接口。

    • Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。

    • Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。

    • 接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。

    5.Java集合类框架的基本接口有哪些?

    集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。

    Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:

    • Collection:代表一组对象,每一个对象都是它的子元素。

    • Set:不包含重复元素的Collection。

    • List:有顺序的collection,并且可以包含重复元素。

    • Map:可以把键(key)映射到值(value)的对象,键不能重复。

    6.什么是java虚拟机

    Java虚拟机是能移植到不同硬件平台上的软件系统。

    7.&&操作符和&&操作符有什么区别

    当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式。当一个&&表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。如果第一个操作数取值为fale,第二个操作数就不会被求值。

    8.hashset和hashmap的区别

    9.九种基本数据类型的大小,以及他们的封装类。

    byte(Byte) ,short(Short)  ,int(Integer)  ,long(Long)  ,float(Float)  ,double(Double) ,boolean(Boolean),char(Character)

     10.Java面向对象的特征与含义

    封装、继承、抽象、多态

    (1)、封装:封装的目的在于实现程序的“高内聚,低耦合”,防止程序相互依赖而带来的变动影响。封装是保证是把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法

    和他操作的数据放在同一个类中。

    (2)、抽象:抽象就是找出事物的相似和共性,然后将这些事物归为同一类,这个类只考虑这些事物的相似和共性,忽略和当前主题不相关的因素。

    (3)、继承:子类继承父类的内容作为自己的内容,可以加入新的内容或者是修改父类的内容而更加适合特殊的需要。提高了额程序的可重用性和可扩张性。

    (4)、多态:多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类

    的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。

     11.常见的运行时异常

    ArrayIndexOutOfBoundsException - 数组越界访问

    ClassCastException - 类型转换异常

    NullPointerException - 试图访问一空对象的变量、方法或空数组的元素

    IllegalArgumentException - 方法的参数无效

    NoClassDefFoundException - JAVA运行时系统找不到所引用的类

  • 相关阅读:
    Windows快捷方式的形式关机方法
    [Andriod官方训练教程]创建你的第一个App之创建一个简单的用户界面
    使用GDAL对HDF数据进行geoloc校正
    破解sqlyog 30天试用限制
    [Andriod官方训练教程]创建你的第一个App之运行你的App
    [Andriod官方训练教程]创建你的第一个App之开始另一个Activity
    GDAL对空间数据的管理
    win linux 下 部署war包到Tomcat根目录
    Spring session
    使用GDAL对HDF数据进行校正
  • 原文地址:https://www.cnblogs.com/haoxz258988/p/13026519.html
Copyright © 2011-2022 走看看