一面 20分钟 Java运行时数据区?堆和栈有什么区别,为什么要这么设计? ②对于一个方法而言,其栈帧本身的大小是固定的(即在编译后便是确定的),但是一个方法中可能会动态申请很多内存(即很多内存的申请与释放是编译期无法确定的),因此需要去一个动态的内存块——堆里面申请。 ③只要持有相应的引用/指针,不同的线程可以通过堆很方便地共享数据(这也是线程通信最常见的方式);而线程私有的栈则可以用于保存线程的状态(上下文),使得多线程切换执行后,线程能恢复到之前的状态。 Java线程有几种启动方式 MySQL有哪些索引?B+树相对B树的特点?B+树节点的子节点数是确定的么? ①有B+树、自适应哈希...