1、java内存空间是怎么分配的?

* 对象优先在新生代Eden区分配

* 大对象直接进入老年代

* 长期存活的对象进入老年代(虚拟机设计了一个对象年龄计数器,该阀值默认为15)

* 动态对象年龄判定--如果Survivor区中相同年龄所有对象大小的总和大于Survivor区空间的一半,年龄大于或等于该年龄的对象在Minor GC时将复制到老年代

*空间分配担保--当Minor GC时如果存活对象过多,无法完全进入Survivor区,就会向老年代借用内存存放对象,以完成Minor GC

2、介绍一下mysql的底层实现

底层使用的B+树实现的,它的优点是能够定位到数据点和范围查询。修改key与子树的组织逻辑,将索引访问都落到叶子结点并按顺序将叶子结点串起来(方便查询访问)等。

3、TCP和UDP有什么区别?

* TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后也要结束连接。而UDP是无连接的

* TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到

* TCP协议所需资源多,TCP首部需20个字节(不算可选项),UDP首部字段只需8个字节

* TCP有流量控制和拥塞控制,UDP没有,网络拥堵不会影响发送端的发送速率

* TCP是一对一的连接,而UDP则可以支持一对一,多对多,一对多的通信

* TCP面向的是字节流的服务,UDP面向的是报文的服务

4、java 的虚函数是怎么样的?

抽象类与接口相同点:

*都可以定义抽象的方法

*都不可以被实例化

*子类必须对所有的抽象方法提供具体实现,否则子类必须声明为抽象类

抽象类与接口不同点:

接口中的方法必须是抽象的方法,抽象类可以存在非抽象的方法

子类可以继承抽象类,且只继承一个,而子类要实现接口,可以实现多个

5、java的编译是怎么一个过程呢?

经过4个步骤,语义分析,词义分析,语法分析,代码生成。