面试复盘|运满满(满帮)Java后端22届校招一面二面面经

面试轮次:技术面一面

方式:视频面试(域名是bsurl)

时间:9月29日14:00

时长:30分钟

开头闲聊

Q:你现在在公司吗?

Q:面试官简单自我介绍

Q:那你先自我介绍一下吧

Q:系统说说公司实习

Q:两端实习哪一个对你来说收获更大?

A:巴拉巴拉随便说……总之:第一段赚钱、开启转Java之路。第二段积累了实际经验。

技术面开始

Q1:Java中面向对象的三大特性

A:封装、继承、多态。(本来想展开说的,结果面试官问了)

Q:多态指什么?

A:它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。

Q2:重载和重写的区别

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。

  • 重写发生在子类与父类之间, 重写方法返回值和形参都不能改变,与方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分。
  • 重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。

Q3:创建对象的方式

A:常见的通过new方式、反射、clone方式,想了半天,还有字节码技术,算吗?(也算,还有吗?)想不起来了。

1

2

3

4

5

java中提供了以下四种创建对象的方式:

1. new创建新对象 调用了构造函数

2. 通过反射机制 调用了构造函数

3. 采用clone机制 没有调用构造函数

4. 通过序列化机制 没有调用构造函数

Q:接口可以多继承吗?

A:

正确答案:接口一般来说压根就不能继承类。

1

2

3

4

5

因为接口中只能出现3种成员:

    1. 公共的静态常量(public final static )

    2. 公共的抽象方法(public abstract )

    3. 静态内部类(static class)

而一个类中,就算什么都不写,也必须带一个构造方法,在extends时就会被子类继承,如果是接口也会继承这个构造方法,很明显构造方法不在上面三项之列而如果类中有一般的方法和成员变量,也会被子类全部继承,这些更不能出现在接口中了,所以接口是绝对不可能继承一个类的

Q4:JVM内存结构

A:主要包括方法区、程序计数器、虚拟机栈、本地方法栈、堆5个部分。(然后逐个简单介绍下,见下图和md)

Q:方法区会发生OOM吗?

A:会。(比如一些框架使用的动态字节码技术,会生产大量的类信息,导致方法区的OOM)

Q:还有哪些会发生OOM?

A:主要是堆区。还有栈也会。首先栈会有StackOverflow。

Q:那本质上StackOverflow也是由于内存不够导致的溢出吗?

A:是的。但是除了StackOverflow,栈也可能直接报OOM。(关于OOM,《深入了解Java虚拟机》这本书有一小节专门讨论了&#x

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月14日
下一篇 2023年12月14日

相关推荐