携程京东等面试真题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/84798736


1.链表的定义
2.怎么实现链表翻转
3.怎么判断链表是否有环
4.二叉平衡树,怎么用一维数组存储
5.讲讲jvm分区
6.讲讲jvmgc
7.怎么求数组的最大子序列和
9.await关键字
13.栈和堆的定义

==========================================================================

1.单例模式和多线程有关系吗?

我说如果单例模式有的写法在多线程下不能保证只生成一个实例,面试官却说你既然都只有一个单例了,那跟多线程还有关系嘛,感觉完全没跟面试官一个点上,,,,

2. 面试提问也很累的,说说你擅长什么吧?

我说容器和JVM还挺熟的,让我说一下容器中有几个接口,Hashtable的父接口是谁,然后说我这个回答的还行

接下来画JVM内存结构图,让我解释一下程序计数器作用,我说记录线程执行的位置,面试官继续追问怎么记录线程执行的位置?

当时脑子有点蒙,没想过这个问题,面试官说当cpu在轮流执行线程的时候,返回原先的线程需要记录。最后说你这样的我今天见得太多了,还是要把技术搞搞深入。

3. 我说还要解释JVM内存中其他的部分吗,面试官说不用了,劝诫我把技术搞的深一点,说他们想找那些技术做的比较深的人,暗示我已经凉凉,,,,

==================================================================

1.二分查找
2.树的中序遍历1)1,2,3,4组成的不重复三位数,都用代码写出来?

3)手写单例模式 
4)问若客户端和服务器之间,1s会发生5000到6000次短链接,会发生什么问题
5)用过log4j吗?把他输出到数据库用过吗?
6)一致性hash,怎么解决hash冲突

7)JDK,JRE 和 JVM 的联系和区别:

答:JDK 是 java 开发工具包,是 java 开发环境的核心组件,并提供编译、调试和运行一个 java 程序所需要的所有工具,可执行文件和二进制文件,是一个平台特定的软件。

JRE 是 java 运行时环境,是 JVM 的实施实现,提供了运行 java 程序的平台。JRE 包含了 JVM,但是不包含 java 编译器 / 调试器之类的开发工具。

JVM 是 java 虚拟机,当我们运行一个程序时,JVM 负责将字节码转换为特定机器代码,JVM 提供了内存管理 / 垃圾回收和安全机制等。这种独立于硬件和操作系统,正是 java 程序可以一次编写多处执行的原因。

区别:

  1. JDK 用于开发,JRE 用于运行 java 程序;
  2. JDK 和 JRE 中都包含 JVM;
  3. JVM 是 java 编程语言的核心并且具有平台独立性。

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/84798736