摩根电话面试(2017/3/20)

摩根IT技术部门的面试一共十道题目,另外有一道是problem sloving

1.常见的设计模式有哪些

单例设计模式、工厂设计模式、抽象工厂设计模式、代理模式、观察者模式、适配器模式

2.虚拟内存地址和物理内存地址的区别,进程和线程哪个有虚拟内存地址

虚拟内存地址表示内存不够时,可以用磁盘来代替内存,进程有内存地址,因为进程是资源调度的单位

3.TCP和UDP的区别

TCP是可靠的全双工面向连接的协议,有三次握手和四次挥手,但是消耗资源比较多

4.进程和线程的区别?

进程是资源调度的基本单位,线程是cpu调度的基本单位、线程有虚拟机栈,本地方法栈,程序计数器。进程有方法区,运行时常量池,直接内存,Java堆

5.垃圾回收机制详解?

三个问题:

哪些内存需要回收?什么时候回收、如何回收?

  5.1 Java堆中的实例对象需要回收,以及方法区的废弃类和字面量需要回收

  5.2 有两种方法 引用计数法和可达性分析法,一个对象的死亡至少要经历两次标记的过程,第一次将会被标记并且经过一次初筛、筛选这方法有没有必要执行finalize()如果有必要执行,则放置在F-Queue队列中,并         由一个虚拟机自动执行的低优先级的Finalizer线程去执行它,第二次标记时,如果还没逃脱,就真的被回收了

  5.3 新生代使用 复制算法 Eden+survival -> survival 老年代使用标记—整理算法 

6.知道MVC设计模式吗?

  M是模型 V 是视图 C 是控制器

7.问你一个一袋子硬币,有各种类型的,有一个天平,不能一个个的数,请问如何求出这袋硬币的价值

我使用了取随机数的办法,取一个随机数,然后分析 各类硬币所占比例 ——>然后称一下各类硬币的重量——>称一下总重量 ——>求出总值

 

posted @ 2017-03-23 22:16  HARES  阅读(223)  评论(0编辑  收藏  举报