java程序员最可能被考到的面试题

java程序员最可能被考到的面试题

ID:8907766

大小:77.58 KB

页数:6页

时间:2018-04-11

java程序员最可能被考到的面试题_第1页
java程序员最可能被考到的面试题_第2页
java程序员最可能被考到的面试题_第3页
java程序员最可能被考到的面试题_第4页
java程序员最可能被考到的面试题_第5页
资源描述:

《java程序员最可能被考到的面试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java程序员最可能被考到的面试题,命中率极高!8-3115:26查看6527回复36部落用户大酋长作为程序员在面试的时候碰到的问题还是很多的,不光要掌握像数组、链表、栈、队列和树这样基本的数据结构,在面试中还会碰到数据结构和算法问题。所以小编在这里告诉大家,下面的面试题目很有可能被碰到,一起来看看吧!1.如何只扫描一遍就找到位于一个链表正中间的元素?这是最受欢迎的算法题之一,经常在电话面试中被问到。很多程序员会想,要知道链表的长度,就要先扫描一遍链表,然后在第二遍中取其正中的元素。所以被要求只扫描一遍就解决问题的时候他们就会很困惑。要解决这个问

2、题,你要维护两个指针。一个每次往下走一个结点,而另一个每次走两个结点。那么当走的快的指针到达链表末尾时,另一个指针就正好指在链表的正中间。2.如何确定一个链表中是否存在环?这跟第一题有点类似。同样地维护两个指针,分别以每步一个结点和每步两个结点的速度走,那么如果当某一步结束以后两个指针指向同一个结点,就说明我们找到了一个环。3.如何只扫描一遍就找到一个链表倒数第三个元素?这也是一个很经典的链表题,也可以用两个指针的方法来解决。我们让第一个指针先走,当它走出三步以后再让第二个指针开始走。那么当第一个指针到达链表的末尾时,第二个指针就正好指向链表中的

3、倒数第三个元素。4.如何找到一个含有1~100的数组中唯一出现两次的元素?这是一个挺简单的算法题。你可以把数组里面所有元素加起来,再减去1~100的和,就能得到那个重复的元素。当然你也可以暴力地去比对每一对元素,不过这样的复杂度是O(N^2)。5.如何在Java中反转一个字符串?这是我最喜欢的问题之一。因为String是编程中最重要的类型之一,所以在技术面试中你会遇到许多跟字符串有关的问题。Java和其他编程语言都有许多不同的方式可以反转一个字符串,所以面试官往往会禁止你使用某些特性,比如reverse()和StringBuffer。之后他还可能

4、会问如何用递归来反转字符串。6.如何用冒泡排序对数组进行排序?在技术面试中我总是会问一些关于搜索和排序的问题。冒泡排序是最简单的排序算法之一,但如果你让一个候选人现场写冒泡排序,这能够很好地衡量他的编程技能。7.栈和队列这两种数据结构之间的区别是什么?这是一个经典的数据结构问题,应该没有人不知道的吧?不管怎么说,最主要的区别在于栈是后进先出(LIFO),而队列是先进先出(FIFO)的。8.如何找到一个数组中所有重复出现的元素?这个问题有时会作为第4题的后续出现。解决这个问题的一种途径是使用哈希表。遍历整个数组并将元素和出现次数存到哈希表中。最后你

5、就可以统计那些出现超过一次的元素作为答案。在Java中,当一个元素已经在HashMap中时,调用get(index)就可以得到对应的值,否则会返回Null。这个性质可以用来插入和更新HashMap中的值。9.单向链表和双向链表之间有什么差别?这又是一个经常在电话面试中被问到的数据结构题。单向链表和双向链表之间主要的差别在于它们的可遍历性不同。在单向链表中,每个结点只有指向下一个结点的指针,而没有指向上一个结点的指针,所以你就不能倒回去遍历。而双向链表的结点则维护了两个指针,往两个方向都可以遍历。10.如何打印斐波那契数列?这是一个在面试中经常出现

6、的编程问题。斐波那契数列是这样的一种数列:它的每一项都等于前两项之和,例如:1,1,2,3,5,8,13,21。面试官往往会关心这两件事情:一个能够返回斐波那契数列第n项的函数,以及如何在Java中用递归解决这个问题。虽然这个问题很简单,但递归的部分可能会困惑一些初学者。11.如何判断一个整数是不是回文数?跟前一题一样,这也不是一个算法题,但在面试中的出现率也很高。当一个数反过来写还是等于本身时,我们称之为回文数。面试官往往会要求你不使用JavaAPI和第三方库来解这个问题。当然,问题本身不难。你只要会用/和%就能解决它。/能去掉最后一位,而%能

7、得到最后一位。比如1234/10会得到123,而1234%10则能得到4。12.什么是二叉查找树?这是一个关于树的数据结构问题。二叉查找树满足一些特殊的性质,比如说每个结点的左子树中的值都要比自身小,而右子树中的值都要比自身大,等等。除了定义以外,面试官还可能让你在Java中实现一棵二叉树并询问关于树的遍历的问题。比如中序遍历、先序遍历和后序遍历之间的区别。13.如何分别用递归和非递归方式倒置一个链表?这是一个非常好的数据结构题,所以我希望你自己去思考。当然你也能轻易地在网上找到许多解法。14.如何用Java实现一个栈?你可以用数组或者链表来实现

8、栈。这个问题期望你实现栈所提供的标准接口,也就是push()和pop()。这两个操作都应该发生在栈的顶部。当然,如果你能实现contai

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。