面试题day14

中兴

  • equals和==的区别

    ==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。

    equals()是一个方法,只能比较引用数据类型。

  • hashcode的作用,不重写会怎样

    未重写hashCode方法时,它的作用主要是根据当前对象返回一个整型的hash值,不同对象调用hashCode返回的值往往是不一样的。

    重写了equals方法,不重写hashCode方法时,可能会出现equals方法返回为true,而hashCode方法却返回不同的结果。即使equals判断为true,但是他们保存的位置在底层数组上时不一样的,不会触发HashSet的去重功能,

  • 常用的Java集合有哪些

    list set map

  • ArrayList和LinkedList的区别

    数组和双向链表

    多读少写 多写少读

    占用空间不同

    空参构造,不初始化数组长度,在第一次添加数据时,初始化数组长度为10。

    添加一个元素,如果数组所需最小容量(size+1)大于数组长度就会触发扩容,扩容更新容量(1.5*size)为原来的1.5倍

    • 更新容量小于最小容量
      • 使用最小容量扩容
    • 更新容量小于最大安全容量
      • 最小容量大于最大安全容量,使用最大容量扩容
      • 最小容量小于最大安全容量,使用最大安全容量扩容
  • List和Set的区别

    list可以插入多个null元素,而set只允许插入一个null元素;

    list容器是有序的,而set容器是无序的;

    list方法可以允许重复的对象,而set方法不允许重复对象等等。

  • 为什么要线程安全,举例子,

    数据库脏读的例子,i++的例子

  • 怎么实现线程安全

    synchronized lock

    线程本地变量

    线程安全类

  • 多线程了解吗,为什么要多线程。如何启动一个线程,start和run的区别

    单独调用run()方法,是同步执行;通过start()调用run(),是异步执行。

  • wait和sleep的区别

    属于不同的两个类,sleep()方法是线程类(Thread)的静态方法,wait()方法是Object类里的方法。

    sleep()方法不会释放锁,wait()方法释放对象锁。

    sleep()方法可以在任何地方使用,wait()方法则只能在同步方法或同步块中使用。

    sleep()使线程进入阻塞状态(线程睡眠),wait()方法使线程进入等待队列(线程挂起),也就是阻塞类别不同

  • 会Linux吗,如果查询文件内较大的一些文件夹用什么指令

    用find+size

  • 知道单例模式吗,会不会写最基本的单例

    属性私有、方法静态私有、构造方法静态私有

  • 了解Java的框架吗,spring之类的

兴业数金

  • 因为自我介绍里有提到自己做的项目,感觉是根据项目问了一些具体功能实现

  • HTTP和HTTPS的区别?

    端口、ssl

  • Java中一般怎么实现线程同步?

    synchronized lock

    线程本地变量

    线程安全类

    信号量

  • Java中常见的exception了解过吗?常见的异常可以说两个吗?

    NullPointerException ClassCastException

  • 设计模式了解过吗?

    代理模式、工厂模式

  • AoP和IoC

    动态代理、控制反转

    原生动态代理,cglib

  • 你知道AoP用到哪些技术吗?

    JDK-Proxy java动态代理

    CGLIB-Code Generation Library

posted @ 2022-07-22 23:20  Faetbwac  阅读(25)  评论(0编辑  收藏  举报