外企面试比较看重原理,本人是面试Java相关的,所以对于Java一些原理性的东西需要进行深入掌握和理解。
Java相关
Runnable和Thread的区别
Runnable:适应于多继承、共享变量。那么当调用这个线程的对象开辟多个线程时,可以让这些线程调用同一个变量;若这个线程是由继承Thread类而来,则要通过内部类来实现上述功能,利用的就是内部类可任意访问外部变量这一特性。
设计模式Adaptor和Proxy的区别
Proxy的关注点是职能转移,引入代理层代替目标端与调用端进行沟通,而且代理层和目标端具有相同的服务结构(继承同一个接口)。
Adapter的关注点是接口变换,引入一个符合调用端要求的“转化器”实现目标端与调用端的沟通,而且转化器和目标端的服务结构式是不一样的。
- 工厂模式有几种
- 简单工厂
- 工厂方法
- 抽象工厂
java io的设计模式(stream)
- 装饰模式
- 适配器模式
abstract class 和 interface
abstract class和interface所反映出的设计理念不同。其实abstract class表示的是”is-a”关系,interface表示的是”like-a”关系。
抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。- interface存在的意义
- 重要性,面向对象的基础。
- 可扩展性强
- 安全、严密性
- interface存在的意义
- JVM相关参数,设置堆Xms等
- JVM永久代存放什么?常量和类信息。