作为程序员在面试的时候碰到的问题还是很多的,不光要掌握像数组、链表、栈、队列和树这样基本的数据结构,在面试中还会碰到数据结构和算法问题。所以小编在这里告诉大家,下面的面试题目很有可能被碰到,一起来看看吧!

1. 如何只扫描一遍就找到位于一个链表正中间的元素?

这是最受欢迎的算法题之一,经常在电话面试中被问到。很多程序员会想,要知道链表的长度,就要先扫描一遍链表,然后在第二遍中取其正中的元素。所以被要求只扫描一遍就解决问题的时候他们就会很困惑。要解决这个问题,你要维护两个指针。一个每次往下走一个结点,而另一个每次走两个结点。那么当走的快的指针到达链表末尾时,另一个指针就正好指在链表的正中间。

2. 如何确定一个链表中是否存在环?

这跟第一题有点类似。同样地维护两个指针,分别以每步一个结点和每步两个结点的速度走,那么如果当某一步结束以后两个指针指向同一个结点,就说明我们找到了一个环。

3. 如何只扫描一遍就找到一个链表倒数第三个元素?

这也是一个很经典的链表题,也可以用两个指针的方法来解决。我们让第一个指针先走,当它走出三步以后再让第二个指针开始走。那么当第一个指针到达链表的末尾时,第二个指针就正好指向链表中的倒数第三个元素。

4. 如何找到一个含有 1~100 的数组中唯一出现两次的元素?

这是一个挺简单的算法题。你可以把数组里面所有元素加起来,再减去 1~100 的和,就能得到那个重复的元素。当然你也可以暴力地去比对每一对元素,不过这样的复杂度是 O(N^2)。

5. 如何在 Java 中反转一个字符串?

这是我最喜欢的问题之一。因为 String 是编程中最重要的类型之一,所以在技术面试中你会遇到许多跟字符串有关的问题。Java 和其他编程语言都有许多不同的方式可以反转一个字符串,所以面试官往往会禁止你使用某些特性,比如 reverse() 和 StringBuffer。之后他还可能会问如何用递归来反转字符串。

6. 如何用冒泡排序对数组进行排序?

在技术面试中我总是会问一些关于搜索和排序的问题。冒泡排序是最简单的排序算法之一,但如果你让一个候选人现场写冒泡排序,这能够很好地衡量他的编程技能。

7. 栈和队列这两种数据结构之间的区别是什么?

这是一个经典的数据结构问题,应该没有人不知道的吧?不管怎么说,最主要的区别在于栈是后进先出(LIFO),而队列是先进先出(FIFO)的。

8. 如何找到一个数组中所有重复出现的元素?

这个问题有时会作为第 4 题的后续出现。解决这个问题的一种途径是使用哈希表。遍历整个数组并将元素和出现次数存到哈希表中。最后你就可以统计那些出现超过一次的元素作为答案。在 Java 中,当一个元素已经在 HashMap 中时,调用 get(index) 就可以得到对应的值,否则会返回 Null。这个性质可以用来插入和更新 HashMap 中的值。

9. 单向链表和双向链表之间有什么差别?

这又是一个经常在电话面试中被问到的数据结构题。单向链表和双向链表之间主要的差别在于它们的可遍历性不同。在单向链表中,每个结点只有指向下一个结点的指针,而没有指向上一个结点的指针,所以你就不能倒回去遍历。而双向链表的结点则维护了两个指针,往两个方向都可以遍历。

10. 如何打印斐波那契数列?

这是一个在面试中经常出现的编程问题。斐波那契数列是这样的一种数列:它的每一项都等于前两项之和,例如:1,1,2,3,5,8,13,21。面试官往往会关心这两件事情:一个能够返回斐波那契数列第 n 项的函数,以及如何在 Java 中用递归解决这个问题。虽然这个问题很简单,但递归的部分可能会困惑一些初学者。

11. 如何判断一个整数是不是回文数?

跟前一题一样,这也不是一个算法题,但在面试中的出现率也很高。当一个数反过来写还是等于本身时,我们称之为回文数。面试官往往会要求你不使用 Java API 和第三方库来解这个问题。当然,问题本身不难。你只要会用 / 和 % 就能解决它。/ 能去掉最后一位,而 % 能得到最后一位。比如 1234 / 10 会得到 123,而 1234 % 10 则能得到 4。

12. 什么是二叉查找树?

这是一个关于树的数据结构问题。二叉查找树满足一些特殊的性质,比如说每个结点的左子树中的值都要比自身小,而右子树中的值都要比自身大,等等。除了定义以外,面试官还可能让你在 Java 中实现一棵二叉树并询问关于树的遍历的问题。比如中序遍历、先序遍历和后序遍历之间的区别。

13. 如何分别用递归和非递归方式倒置一个链表?

这是一个非常好的数据结构题,所以我希望你自己去思考。当然你也能轻易地在网上找到许多解法。

14. 如何用 Java 实现一个栈?

你可以用数组或者链表来实现栈。这个问题期望你实现栈所提供的标准接口,也就是 push()和 pop()。这两个操作都应该发生在栈的顶部。当然,如果你能实现 contains() 和 isEmpty() 这样的功能就更好了。顺便一提,你可以利用 JDK 提供的 java.util.Stack 来学习怎么实现一个栈。

原作者:南京网博
原文链接: Java程序员最可能被考到的面试题,命中率极高!_南京网博_新浪博客
原出处:新浪博客

泄题了!Java程序员最可能被考到的14个面试题相关推荐

  1. java程序员需要考证_泄题了!Java程序员最可能被考到的14个面试题

    作为程序员在面试的时候碰到的问题还是很多的,不光要掌握像数组.链表.栈.队列和树这样基本的数据结构,在面试中还会碰到数据结构和算法问题.所以小编在这里告诉大家,下面的面试题目很有可能被碰到,一起来看看 ...

  2. java怎么将前端的数据存到关联的表中_Java程序员最可能被考到的14个面试题

    1. 如何只扫描一遍就找到位于一个链表正中间的元素? 这是最受欢迎的算法题之一,经常在电话面试中被问到.很多程序员会想,要知道链表的长度,就要先扫描一遍链表,然后在第二遍中取其正中的元素.所以被要求只 ...

  3. Java程序员从阿里、百度面试回来,这些面试题你们会吗?

    算算自己大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面试经验. 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己, ...

  4. Java程序员从阿里、百度面试回来,这些面试题你们会吗?(文末福利)

    算算自己大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面试经验. 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己, ...

  5. Java程序员从阿里拿到offer回来,这些面试题你会吗?

    前不久刚从阿里面试回来,为了这场面试可以说准备了一个半月,做的准备就是刷题和看视频看书充实自己的技术,话说是真难啊,不过还算顺利拿到了offer,有很多面试题我已经记不起来了,这些是当天回家整理好的, ...

  6. java程序员的大数据之路(14):Pig Latin

    结构 一个Pig Latin程序由一组语句构成,一个语句可以理解为一个操作,或一个命令.语句必须以分号结束. Pig Latin有两种注释方法,双减号表示单行注释.多行注释可以使用/* 和 */表示. ...

  7. 关于一名Java程序员如何备考教师资格证----高级中学信息技术学科

    文章目录 简介 笔试 科目一<综合素质> 选择题(29题58分) 材料分析题(3题42分) 写作题(1题50分) 科目二(教育知识与能力) 选择题(21题42分) 辨析题(4题32分) 简 ...

  8. 参加Sun认证Java程序员_sun认证java程序员笔试经验

    sun认证java程序员笔试经验 SCJP测验Java程序设计概念及能力,内容偏重于Java语法及JDK的内容;SCJD则进一步测试用Java开发应用程序的能力,考试者必须先完成一个程序的设计方案,再 ...

  9. 打工人都觉得香的Java程序员306道面试秘笈,爆肝

    如何碾压其他面试者? Java程序员目前就业形势较好,因为Java的应用太广泛了,从网页开发到手机安卓开发,都离不开Java. 专门写一文解析Java面试题的书,可以帮助求职者更好地准备面试.本书共包 ...

最新文章

  1. Gentoo 安装日记 21 (第一次重启)
  2. go get 指定版本_没有VPS搭建govanityurls服务?别急!你依然可以自定义Go包导入路径...
  3. java线程的基本概念
  4. XCTF-高手进阶区:Web_php_include
  5. P4768 [NOI2018] 归程(kruskal 重构树)
  6. Confluence 6 选项 1 – 在 Confluence 中手动重建用户和用户组
  7. 大型网站架构演变和知识体系(转)
  8. Dubbo的架构体系
  9. CentOS 7.6 安装 nginx,配置端口访问网站,切换root目录
  10. 面向对象(Python):学习笔记之单例模式
  11. python英文词频统计代码_python词频统计_英文
  12. 经纬度距离计算小工具_一个NB工具大合集打网站,总有一款是你需要的
  13. 主板点不亮 复位BIOS_魔改主板,体会扣扣索索装个机子的快乐。昂达H110 SD3加专用条...
  14. 16、 基于STM32单片机WIFI控制家电插座
  15. pid纠偏算法C语言,基于MATLAB环境下智能PID纠偏控制算法的仿真分析.pdf
  16. java mp3文件合并,java怎么实现mp3合并
  17. 【强迫症患者的福音】Win10去掉桌面快捷方式箭头
  18. 九宫格摆法_九宫格婚纱照摆法图片与技巧
  19. 中空介孔载银二氧化硅聚苯乙烯微球/核壳聚苯乙烯/介孔二氧化硅微球/环氧树脂复合材料的制备
  20. java怎么在控制台输入数字,并保存到数组里?

热门文章

  1. java so reuseport_使用socket so_reuseport提高服务端性能
  2. 2018苹果开发者账户忘记密保问题,导致协议无法更新解决方法(脱坑呀)
  3. 中山python培训机构
  4. [suDLS.mel]3Delight渲染shave自动化工具
  5. 纯苦力社工之没有卵用(论如何找到那个一面之缘的女生)
  6. 用c++编写一个简单的员工管理系统
  7. 15年双11手淘前端技术巡演 - H5性能最佳实践(转载,好文)
  8. 机器学习算法应用场景
  9. ACM_大牛总结的线段树专辑
  10. win10访问局域网出现“请检查名称的拼写”如何解决