面试问题总结

本贴最后更新于 2171 天前,其中的信息可能已经时移世易
  1. java 中的关键字 final 可以用来修饰什么,分别起什么作用。
  2. 请说明 ArrayList,Vector,LinkedList 的存档性能和特性。
  3. String,StringBuffer,StringBuilder 有什么区别。
  4. swith 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 strng 上。
  5. 存在表 T(a,b,c,d),要根据字段 c 排序后取第 21-30 条记录显示,请写出 sql 文。
  6. 查出 user 表中 username 相同的记录,显示 username 和重复的次数,给出 sql。
  7. float 是多少位的。
  8. 设计四个线程,其中两个线程每次对 J 增加 1,另外两个线程每次对 J 减 1,写出程序或者思路。
  9. a.hashCode()有什么作用?与 a.equals(b)有什么关系?
  10. 写出 hashMap 的数据结构。
  11. 简述 MVC 设计模式。
  12. 什么是 Java 优先级队列。
  13. 简述一下 spring,都用过 spring 的什么?
  14. 说一下数据库的索引。数据库隔离级别。
  15. statement 与 PreparedStatement 的区别,如何防止 sql 注入。
  16. 简述一下 restful,设计一个 url 要注意什么。
  17. 如何进行单元测试的。
  18. 选用了 base 跟 solo,如何实现的数据同步。
  19. 说几个常用算法。
  20. 下面程序会输出什么值?
    int count = 0;
    for(count++;count++ < 10; count++)
    System.out.println(count);
    
  21. 简述 form 表单提交 POST 方法与 GET 方法在字符编码,http 协议等方面的区别。
  22. ArrayList,LinkedList,HashMap 的区别。
  23. 介绍一下 Spring 的事务管理,使用什么设计模式实现。
  24. 一个 HTTP 请求从开始到结束都经历哪些过程,简写流程图即可。
  25. synchronize 关键字与 volatile 关键字的作用和区别。
  26. 说一下内连接,左连接,右连接。
  27. 给 list 排序(我记得是有个 collections.sort),说出这个,又问了一个什么排序的,忘记了。
  28. 写两个链表,将其合并排序,如何操作不多占用内存。(完全没任何思路,对链表就不熟哇···)
  29. 多线程是 void,无返回值的,如果用多线程从不同的数据库中读取到数据,如何将读取到的信息合并。(题目记得不是很清楚了,应该精髓记住了,大体就是没有返回值,那如何合并多线程取得的东西。一个同事跟我说出力到文件中,然后合并文件)
  30. 写出单例模式。

上面基本就是这次面试问过的能记住的问题。有些记不住了。那些问高并发的,算法的,都被我自动忽略了。我是真不懂那些呀~上面这些其实还是蛮基础的,但是很多你懂,不一定记得准确,说就更不一定说得齐全了。

下面这些是之前在网上看到的,就粘贴过来了。有兴趣的看看。

spring 主要考 ioc,aop 底层实现,事务,spring mvc 原理
ioc 就有可能问反射和类加载,这就会牵涉 jvm 的东西
互联网公司面试还有三个东西最好看看,消息队列,nosql,rpc 与 soa

  1. Spring.mvc 的优势,原理,流程
  2. Mybatis 的原理优势
  3. 集合里面那些对象的原理
  4. 扩容原理,特别是 map 的底层
  5. Hashmap. Hashtable 和 cocurrentHashMap 的区别,要讲出它们各自的实现原理才行,比如 Hashmap 的扩容机制. cocurrentHashMap 的桶分割原理. 多线程安全性。
  6. 几种造线程池的方法,区别
  7. Rpc 原理
  8. Nio 和 netty,常用的接口
  9. Redis 和数据库的持久化的
  10. Memached 过程和原理
  11. 多线程时间复杂度
  12. Redis 做队列的原理
  13. zk 做订阅的原理,底层
  14. Juc 里面的锁原理
  15. 实现自己的 hashmap
  16. treemap 红黑树
  17. jvm 调优
  18. jvm 内存模型
  19. 类加载器机制
  20. 数据库索引
  21. 数据破坏索引
  22. 手写快排
  23. js 闭包
  24. nio 是否了解 阻塞之后通知机制是怎样的?
  25. Java 的序列化做什么用的 序列化 id 会出现哪些问题?
  26. 在 Java 中 Executor 和 Executors 的区别?
  27. 为什么使用 Executor 框架比使用应用创建和管理线程好?
  28. 怎么通过 linux 命令去分析 jvm 里面那个线程阻塞了
  29. Java 中用到的线程调度算法是什么?
  30. 什么是多线程中的上下文切换?
  31. classloader 结构,是否可以自己定义一个 java.lang.String 类,为什么? 双亲代理机制。
  32. 有没有做过 jvm 内存调优,如何做的,举例子,用过哪些工具?
  33. Java 中的 volatile 关键是什么作用?怎样使用它?在 Java 中它跟 synchronized 方法有什么不同?
  34. 面试官从简历里抽了一个较感兴趣的项目,让把项目简单介绍了下,针对项目问了几个技术问题
  35. 介绍 Java 中垃圾回收机制,程序员平时需要关注这个吗?为什么?请举例说明。
  36. 数据库隔离级别介绍. 举例说明。
  37. override 和 overload 的区别。
  38. 求二叉树的最大距离(即相距最远的两个叶子节点),写代码。
  39. 两个栈实现一个队列,写代码。
  40. 你觉得你的优势是什么?有什么技术薄弱点吗?
  41. 数据库 sql 调优,慢 sql 定位
  42. 索引有哪几种,区别,使用场景
  43. mysql 引擎,哪几种,区别使用场景

下面是一个在外企工作 8 年人,给传统 it 转互联网方面的面试建议。

  1. 算法基础
    写 java 的基本上都是做应用系统的,用到算法的机会几乎没有,所以一般不会考。但是如果工作年限比较长,保不齐面试官怀疑你的编程能力,故意要考考,所以快排. 堆排. 逆转链表. 遍历二叉树之类的基础还是复习复习吧。
    如果面的是 bat 核心部门,担心碰见装逼人士的话,也可以提前复习下《编程之美》之类的。

  2. java 基础
    hashmap 面试官最喜欢考,一定要搞明白原理。
    treemap 知道就可以,应该没人闲的蛋疼考红黑树。
    threadlocal 面试官也喜欢考,要搞明白原理
    反射. 动态代理. ioc. aop 复习下吧,几乎必考
    nio. aio 几乎都会问,抽空写写例程,知道 netty mina
    class loader: 知道双亲委派,如果知道 tomcat. jetty class loader 异同更佳

  3. gc
    gc 很多面试官都喜欢考
    面试前背熟各种 gc 算法的区别,理解原理。
    G1 很多面试官自己都不明白,没时间就不用管。

  4. 高并发
    传统 IT 一般接触不到高并发,不过没关系按下面说的做,应付面试问题不大
    把 java.util.concurrent 下面所有的包和类通读一遍,理解原理. 记住核心代码. 写例程,网上有很多 concurrent 相关类原理解析的文章,对着文章看源代码理解起来问题不大。
    有些类代码很复杂比如 aqs,看不明白就算了,也不用太花功夫,记住原理即可,因为大部分面试官也不明白。
    一定要写例程,例程最好跟你的业务能扯上一点点关系,这样面试的时候就是你实际项目里面的代码了。
    面试官喜欢考的类有:ConcurrentHashMap. 读写锁. Condition. 线程池. Barrier. CountDownLatch. Callable. BlockingQueue

  5. hdfs 和 mr
    传统 IT 一般也接触不到,如果不想准备就算了,如果想准备的话,就在自己的开发机上撘 3 个 linux 虚机, 按照网上的教程自己一步一步撘一个 hadoop 环境出来,然后找几个实际业务中生成出来的 log,写几个 mr 程序处理一下。
    面试的时候就可以很谦虚的说,实际项目里面用过,但是用的不多

  6. application server
    websphere. weblogic. jboss 之类的就不用准备了,应该没人问你这些啦。
    有时间的话,看看 tomcat 和 jetty 的源代码,重点看线程模型和 io,这将是一个很好的加分项

  7. 数据库
    oracle. sybase. db2 不会有人关心了,如果之前没用过 mysql 的话,找本介绍 innodb 原理的书好好通读一遍吧。
    理解 myisam 和 innodb 的区别
    理解关系型数据库索引的原理,理解一些简单的索引优化的原则。
    面试官很喜欢给出一堆 where 子句,考索引. 复合索引什么情况下起作用

  8. 缓存
    一致性哈希很多面试官喜欢考,提前准备下吧。

  9. ssh 框架
    这些没搞过就没搞过吧,这种框架层面的东西,对于一个有经验的 java 码农,学起来也就是分分钟的事情。
    不过你也可以说这些我没用过,但是我知道原理,然后说一堆动态代理. cglib 的原理出来,也是加分。

打赏 10 积分后可见
10 积分 • 44 打赏
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖 • 1 关注
  • 原理
    16 引用 • 44 回帖

相关帖子

24 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • moreandmore

    😋

  • 其他回帖
  • Ahian

    学来学去,发现这些知识都是建立在理论学科之上的,比如说数学

  • ZephyrJung

    首页这个改动有点奇怪,这么多评论,都导向同一个文章岂不是重复?

    1 回复
  • 88250 1

    年底了怎么会有这种想法?而且今年很多公司裁员,辞了可能会不好找,尽量不要动。

    2 回复
  • 查看全部回帖

推荐标签 标签

  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 1 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 5 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 283 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 49 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 53 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 356 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    6 引用 • 63 回帖
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2031 回帖
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 10 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 683 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 2 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 2 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 17 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 364 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 439 关注