记第一次开发面试

环节一:自我介绍

环节二:java基础和数据库基础

  1. String和StringBuilder的区别

  2. List有几类

    1. linkedList和ArrayList的区别
    2. CopyOnWriteArrayList的线程安全
  3. 树与链表的区别

  4. java异常有哪几种

    1. 栈溢出和OOM的场景
    2. 如何改变栈内存大小
    3. 除了内存与栈最大可容纳数有关外,还受什么因素影响
  5. 线程的特性有哪些,线程的创建方式有哪几种

    1. 线程如何返回线程处理的结果值
  6. 停止线程的方式有哪些

  7. volatile的作用,volatile的特性,volatile为什么不是绝对线程安全的

    1. CAS到ABA现象
  8. 为什么hashMap中有使用红黑树而不是其他的树

  9. mysql中的存储引擎有哪些

  10. MyISAM和InnoDB的区别

  11. 在一个自增id的表中,如何最快找到第二大id的数据

  12. 学生表,课程表,课程得分表,请使用语句查询到每个课程中得分最高的学生的名字和他的分数。

  13. 在选择一张1000w数据的表时,使用MyISAM和InnoDB查询,哪个更快,为什么

  14. 如何避免数据库查询过慢。

    1. 在什么情况下,你会设计表的数据冗余(防止join过多)

环节三:逻辑与算法

  1. 给你一个单向链表,你如何在最小的时间复杂度内寻找到链表中间下标的对象
  2. 给你一个对象链表,你如何将其中id相同的对象去重(并未重写hashCode方法)
  3. 给你一个整数,怎么样区分他的奇偶性
  4. 一条分布不平均的绳子烧完需要一小时,给你两条一模一样的绳子,如何计算45分钟
  5. 两个瞎子,各自买了一黑一白两双袜子,但回家的过程中被打乱了,请问他们如何才能正确拿到自己的袜子(一黑一白)
  6. 一箱苹果有1000个,如何打包可以在客户来到时选择任意个苹果时,都可以直接不需要打包直接拿走(动态规划)
  7. 一串数字,如何才能最快的判断这串数字里有多少个零。

环节四:项目相关

(在我一个模仿spring框架的项目中提问我注解的知识点)

  1. java原生注解类型有多少种,分别是哪些,说出他们的作用
  2. 你在注入时是如何解决注入的并发问题的。
    1. 那你如何保证你注入的组件是单例的还是多例的
  3. 框架工作时大致的工作流程和原理。

(在我一个使用了mybatis中提问)

  1. mybatis如果字段与数据库字段不统一,你有几种方法可以解决。
  2. mybatis中的一对多查询,有几种方法可以实现。区别是什么。

(关于之前说到io模型,和之前长流跟打器使用bio的一些知识点)

  1. io模型分为几种,他们的区别是什么
  2. 为什么要重构,bio的弊端。

(linux)

  1. linux中你需要知道程序是否在运行,如何编写命令
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值