《互联网大厂 Java 求职者面试:从核心知识到框架技术》

20 阅读2分钟

以下是面试过程:

第一轮: 面试官:首先,说说 Java 的核心知识有哪些? 王铁牛:嗯……有面向对象编程的概念,比如封装、继承、多态之类的。 面试官:不错,那你再说说 Java 中的基本数据类型有哪些? 王铁牛:有 byte、short、int、long、float、double、char、boolean 这些。 面试官:很好,那你讲讲这些基本数据类型的默认值分别是多少? 王铁牛:byte 是 0,short 是 0,int 是 0,long 是 0L,float 是 0.0f,double 是 0.0d,char 是 '\u0000',boolean 是 false。

第二轮: 面试官:接着,聊聊 JUC 相关的知识吧,说说什么是线程安全? 王铁牛:嗯……就是多个线程同时访问一个资源时,不会出现数据不一致的情况。 面试官:那你知道哪些实现线程安全的方式呢? 王铁牛:有同步代码块、同步方法、锁机制之类的。 面试官:那你说说 synchronized 关键字的作用吧? 王铁牛:它可以用来修饰方法或代码块,保证在同一时刻只有一个线程可以访问被修饰的代码。

第三轮: 面试官:再来说说 JVM 吧,JVM 主要有哪些组成部分? 王铁牛:有类加载器、堆、栈、方法区等。 面试官:那堆和栈分别有什么作用呢? 王铁牛:堆主要用于存储对象实例,栈用于存储局部变量、方法参数等。 面试官:那你知道 Java 中的垃圾回收机制是怎么工作的吗? 王铁牛:(一脸茫然)这个……不太清楚。

面试官:好了,今天的面试就到这里,你回去等通知吧。

答案如下

  • Java 的核心知识包括面向对象编程的概念,如封装、继承、多态等,基本数据类型有 byte、short、int、long、float、double、char、boolean 等,其默认值分别为 byte 是 0,short 是 0,int 是 0,long 是 0L,float 是 0.0f,double 是 0.0d,char 是 '\u0000',boolean 是 false。
  • JUC 中线程安全是指多个线程同时访问一个资源时不会出现数据不一致的情况,实现线程安全的方式有同步代码块、同步方法、锁机制等。synchronized 关键字可用来修饰方法或代码块,保证同一时刻只有一个线程可以访问被修饰的代码。
  • JVM 主要由类加载器、堆、栈、方法区等组成。堆主要用于存储对象实例,栈用于存储局部变量、方法参数等。Java 中的垃圾回收机制通过标记-清除、复制、标记-整理等算法来自动回收不再被引用的对象,以释放内存空间。