• JAVA面试题总结基础篇(二)


    JAVA面试题总结基础篇(二)



    前言

    到了大三的学期的暑假,即将面临找工作的考验。希望这份面试资料能够帮住大家学到自己的知识盲区。加油,我命由我不由天!!!


    一、ArraryList与LinkedList的区别

    ArraryList:
    Arrary(数组)是基于index(索引)的数据结构,它使用索引在数组中搜索和读取数据是很快的。Arrary获取数据的时间复杂度是O(1),但要删除数据是要很大的开销,因为要重排所有的数据。
    缺点:
    数组初始化必须指定数组长度,否则报错。
    例如:

    int[] a=new int[4];
    //或者
    int c[]={1,2,3,4,5};
    
    • 1
    • 2
    • 3

    List:
    List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,继承了Collection。
    它提供好了俩个集合,ArraryList和LinkList。
    ArraryList可以看作是一个可以自动增长容量的数组。
    ArraryList的toArrary方法可以返回一个数组。
    ArraryList的asArrary方法可以返回一个列表。
    LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.当然,这些对比都是指数据量很大或者操作很频繁。

    二、HashMap和HushTable的区别

    1、两者父类不同
    HashMap是继承自AbstractMap类,而Hashtable是继承自Dictionary类。不过它们都实现了同时
    实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口
    2、对外提供的接口不同
    Hashtable比HashMap多提供了elments() 和contains() 两个方法。 elments() 方法继承自Hashtable的父类Dictionnary。elements() 方法用于返回此Hashtable中的value的枚举。contains()方法判断该Hashtable是否包含传入的value。它的作containsValue()一致。事实上,contansValue() 就只是调用了一下contains() 方法。
    3、对null的支持不同
    HashTable:Key和Value都不能为null

    HashMap:Key值可以为null,但只能有一个,是因为保证Key唯一性;可以有多给Key对应的value值为null。

    4、安全性不同
    HashMap是线程不安全的,在多线程并发的环境下,容易发生死锁等问题。
    Hashtable是线程安全的,它的每个方法上都有synchronized 关键字,因此可直接用于多线程中。

    5、初始容量大小和每次扩充容量大小不同

    6、计算hash值的方法不同

    三、Collection包结构,与Collections的区别

    Collection是集合的上级接口,包含:LinkList、ArraryList、Set、List、Vector、Stack。
    Collections是集合类的一个帮助类, 它包含有各种有关集合操作的静态多态方法,用于实现对各种集合的搜索、排序、线程安全化等操作。此类不能实例化,就像一个工具类,务于Java的Collection框架。

    四、深拷贝与浅拷贝的区别

    **浅拷贝:**被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象.

    **深拷贝:**被复制对象的所有变量都含有与原来的对象相同的值.而那些引用其他对象的变量将指向被复制过的新对象.而不再是原有的那些被引用的对象.换言之.深拷贝把要复制的对象所引用的对象都复制了一遍.

    五、final有哪些用法

    1、被final修饰的类不可以被继承
    2、被final修饰的方法不可以被重写
    3、被final修饰的变量不可以被改变,如果修饰引用,那表示引用不可变,引用指向的内容可变
    4、被final修饰的方法,JVM会尝试内联来提高效率
    5、被final修饰的常量,在编译阶段会存入常量池中。

    六、static有哪些用法

    static静态一般用于俩种,静态变量与静态方法。也就是说被static修饰的都为静态资源。
    static也用于静态块,用于初始化操作:

    public calss test{
     static{
     //执行相关操作
     }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    此外static也多用于修饰内部类,此时称之为静态内部类。

    七、3*0.1==0.3返回值是什么?

    false,因为有些小数值不能完全精确的表现出来。

    八、a=a+b与a+=b有什么区别吗?

    += 操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换.如:

    byte a = 127;
    byte b = 127;
    b = a + b; // 报编译错误:cannot convert from int to byte
    b += a;
    
    • 1
    • 2
    • 3
    • 4

    九、写出五种常见的异常

    ClassCastException(类型转换异常)
    IndexOutOfBoundsException(数组越界)
    NullPointerException(空指针异常)
    ArraryStoreException(数据存储异常,操作数组的类型不一致)
    SQLException(sql语句错误)

    十、Java 序列化中如果有些字段不想进行序列化,怎么办?

    对于不想进行序列化的变量,使用 transient 关键字修饰。
    transient 关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 transient 修饰的变量值不会被持久化和恢复。transient 只能修饰变量,不能修饰类和方法

    十一、说说Java 中 IO 流

    Java 中 IO 流分为几种?
    按照流的流向分,有输出流与输入流。
    按照操作单元划分,有字符流和字节流。
    按照流的角色划分,有处理流和节点流。

    InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
    OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

    十二、反射的作用与原理

    1、定义:

    反射的机制是在运行时,对于任何一个类,都能够知道这个类的属性和方法。
    对于任意一个对象,都能调用任意的方法。在java中,只要给定类的名字,都能获取类的所有信息。

    2、哪里会用到反射机制?
    jdbc就是典型的反射

    Class.forName('com.mysql.jdbc.Driver.class');//加载MySQL的驱动类
    
    • 1

    3、反射的实现方式:
    第一步:获取Class对象,有4中方法:
    (1)Class.forName(“类的路径”);
    (2)类名.class
    (3)对象名.getClass()
    (4)基本类型的包装类,可以调用包装类的Type属性来获得该包装类的Class对象

    4、反射机制的优缺点
    优点:
    1、能够运行时动态获取类的实例,提高灵活性。
    2、与动态编译结合
    缺点:
    1、使用反射的性能较低,需要解析字节码,将内存中的对象进行解析。

    十三、set、list、map的区别

    list:对付顺序的好帮手,list接口储存一组不唯一(可以有多个元素引用相同的对象),有序的对象。

    set:注重独一无二的性质,不允许重复的集合,不可以多个元素引用同一个对象。

    map:用key来搜索的专家,使用键值对来存储,map会维护key对应的值。俩个不同的key可以对应相同的对象,但不能有俩个相同的key。

  • 相关阅读:
    Vue技术-mapstart与mapGetters=》模块化+命名空间
    【无标题】
    Postgresql 阿里云部署排雷
    go1.18泛型的简单尝试
    临界资源,临界区,通信的干扰问题(互斥),信号量(本质,上下文切换问题,原子性,自身的安全性,操作)
    云计算中的关键技术——虚拟化
    外贸网站怎么做外链来提高谷歌优化效果?
    乙酰基六肽-1——促进黑色素合成,调节皮肤色素沉着
    Kotlin 协程
    Excel求和公式的几种用法
  • 原文地址:https://blog.csdn.net/LXZ_1024/article/details/125440533