2019秋招面试总结

2019秋招小结

    • 题目汇总
      • java基础
      • 网络
      • 操作系统
      • 算法
      • jvm
      • 数据库
      • 框架
      • 其他
      • HR面
      • 自我介绍

题目汇总

java基础

  1. Java map底层实现,HashMap,ConcurrentHashMap的1.7和1.8的不同和具体实现
  2. 1.8版本的concurentHashMap在单线程下和HashMap效率有什么区别。
  3. sorted set底层?
  4. HashMap多线程插入是否线程安全(各自Key不相同)
  5. 什么是一致性哈希 https://www.jianshu.com/p/49e3fbf41b9b
  6. Java中pv操作实现时用的类 semaphore
  7. Synchronize的内部实现,可以用什么代替。其标注不同方法有什么区别。 https://blog.csdn.net/qq_32924343/article/details/79614775
  8. java中char能存全部中文(表情呢)吗 https://www.jianshu.com/p/4c29d96d5e06?utm_campaign
  9. java元注解 https://blog.csdn.net/lkp1603645756/article/details/84072600
  10. HashMap是不是线程安全的,为什么不安全,会出现哪些问题,
    扩容出现环死循环?死循环cpu的状态是怎么样的?占用率100%吗?那此时其他线程能不能使用cpu?cpu核数和占用率什么关系?cpu100%对整个服务器有什么影响?
  11. java函数值传递还是引用传递 https://baijiahao.baidu.com/s?id=1614769568984126810&wfr=spider&for=pc
  12. ThreadLocal是如何实现的? https://blog.csdn.net/sonny543/article/details/51336457 https://www.jianshu.com/p/ee8c9dccc953
  13. java线程池的具体参数,最长空闲等待时间的具体情况,释放线程的过程,什么时候什么情况释放,释放时队列的情况是怎么样的。 https://www.cnblogs.com/cdf-opensource-007/p/8769777.html
  14. 为什么要用线程池?单核cpu有必要用线程池吗?
  15. 多线程和JUC,AQS、ReentrantLock、线程池、CountDownLatch、CyclicBarrier,和具体实现。CAS,ABA问题,cpu空转
  16. Atomic在高并发场景下有什么问题,缺点?
  17. volatile,作用,底层,lock 前缀的指令,多CPU的嗅探机制,多处理器下的缓存一致性协议
  18. 异常和error的区别,oom是error还是异常?什么东西分配在堆上和栈上?异常机制怎么理解?
  19. RMI怎么实现的?
  20. cglib和jdk的动态代理的实现原理?这两者之间性能的区别?
  21. 动态代理、反射生产的对象在jvm的哪里?会不会影响到永久代或者是8以后的元空间?
  22. java如何查看线程死锁
  23. servlet,filter
  24. 讲一下Collections.sort的实现方法: timsort
  25. list为什么有序,set为什么无序
  26. wait和sleep的区别,wait和await区别
  27. java中int和Integer的区别,为什么有了int还要有设计Integer
  28. 哈希函数作用及实现,以及和equals的关系
  29. 内存泄漏和溢出
  30. 堆的底层是如何实现的
  31. java层面上的异步和同步
  32. Lock是如何实现线程安全的?
  33. Java中的锁机制是如何实现的?有什么区别?
  34. hashmap为什么要在链表长度为8再变红黑树
  35. jndi和rmi

网络

  1. TCP三次握手,四次挥手。为啥要三次和四次?
  2. 很多close wait,为什么
  3. http与https区别(wireshark抓包),https可能出现不安全的地方。
  4. 打开一个url,会经历那些过程。类似的还有打开一个app到首页加载出来中间用到七层模型中的哪些协议?
  5. http状态码
  6. tcp如何保证安全可靠
  7. RPC框架和普通http有什么区别和优势? 基于Tcp封装还是http封装的。restfulAPI和RPC的区别
    rpc是长连接吗?如果要传输一个特别大的文件 底层还是基于流吗?
  8. Nio是一个什么IO模型?
  9. 拥塞控制 以及里面的算法?流量控制的协议
  10. Ping命令做了什么?ping是哪一个层的?基于什么协议?
  11. get和post区别,tcp和udp区别。DNS的分层结构。osi模型,各个层有哪些协议。IP地址的Regex
  12. 说一下tcp/ip协议?Java中server端怎么实现?
  13. http和tcp头部
  14. 长连接与短连接?如何知道这个数据包的顺序?
  15. cookie和session区别
  16. HTTP数据量很大,怎么发送
  17. CP server最多可以建立多少个TCP连接
  18. 查看某个端口的情况(使用情况,连接等)
  19. 以太网帧的格式 最小传输单元MTU的概念
  20. arp报文格式,ip/mac互查机制 arp缓存
  21. ip首部格式 ip分片(如何分片,如何保证顺序,接收端如何确认所有分片都到达,能否避免分片(传输层/应用层作限制)) 路由表
  22. icmp分为俩种,2种查询报文+5种差错报文
  23. tcp首部 三握、四挥、同时打开、同时关闭、半关闭
  24. tcp流量控制 滑动窗口、慢启动、拥塞避免、快速重传、快速恢复 超时重传(4个定时器)
  25. dns名字空间 指针查询(反向查找) dns缓存
  26. ftp 控制连接、数据连接 pasv/port俩种工作模式 各种指令和响应码 断电续传和匿名ftp
  27. http报文格式 请求头和响应头的各种字段 http状态码 https握手过程 摘要算法、数字签名、数字证书的原理

操作系统

  1. 进程通信,线程间通信的同步异步问题
  2. 进程线程区别
  3. 线程间通信的同步异步问题
  4. 进程中什么数据可以给线程共用,进程内存区域划分(数据区、代码区…),哪些是线程共享,哪些是线程独占
  5. 复制粘贴过程中操作系统做了些什么
  6. 说明一下缺页中断,虚拟内存,分页地址转换 内存抖动
  7. linux的fork指令对数据的拷贝是马上就拷贝的吗?linux看网络状况用什么 看日志用什么?
  8. 协程的好处 和线程的对比
  9. 物理地址与逻辑地址的概念,换算关系
  10. select/epoll原理
  11. 僵尸、孤儿进程如何处理
  12. linux常用指令
  13. 死锁产生条件,如何避免
  14. 进程创建和线程创建的底层实现
  15. 一个进程是不是可以创建无限数量的线程,线程的数量会受到什么限制,线程在内存中会占用什么资源
  16. 一个进程,有十个线程,其中一个线程fork后,子进程有几个线程
  17. 进程间通信和线程间通信的区别
  18. linux内核
  19. 五种io模型?阻塞/非阻塞,同步异步指什么?

算法

  1. 单链表翻转(递归、循环头插)
  2. 海量数据排序,如何在海量数据找最小的100条
  3. 一个long类型的数,让他整个位倒转,能不能只迭代8次完成
  4. 一个数组一个数只有一个其他数两个,找到单独的那个数(LeetCode原题)
  5. 一个数组有一个数超过一半,找到这个数(LeetCode原题)
  6. 红黑树的优缺点,红黑树与平衡树的区别,各自的应用场景
  7. 单链表快排
  8. 用 1到5的随机数生成器生成 1到7
  9. 编辑距离
  10. 青蛙跳台阶
  11. 简单实现一下LRU?如何优化?
  12. 二叉树俩个最远节点的路径长度
  13. 平衡二叉树,二叉搜索树,二叉排序树,二叉线索树。
  14. 本地化树及恢复
  15. 层序遍历二叉树 分行打印
  16. 通配符匹配
  17. 3sum
  18. 输出二叉树各层 首个节点
  19. 一个稳定的排序如何变为稳定的?在不改变原算法的前提下?

jvm

  1. Java内存溢出
  2. JavaGC(垃圾回收),Gc root,常用的垃圾回收算法,垃圾收集器,g1对stw如何优化?
  3. 哪些可以作为GCRoot?
    虚拟机栈(栈帧中的本地变量表)中引用的对象
    方法区中的类静态属性引用的对象
    方法区中的常量引用的对象
    本地方法栈中JNI(即Native方法)的引用的对象
  4. Java中有全局变量吗
  5. Java内存管理(栈,堆,方法区,程序计数区)
  6. java类变量的加载过程,父类静态变量和子类静态变量哪个先加载,int和long哪个先加载
  7. java中如何分配一个对象
  8. synchronized的锁的机制,自旋锁,可重入锁,偏向锁,轻量级锁、重量级锁,锁的膨胀过程
  9. jvm的内存布局(和jmm不同)和gc过程,jvm怎么调优,什么看gc的日志之类的
  10. 只对堆进行gc 这句话对不对 调用system.gc()马上就执行gc吗
  11. jvm动态分派
  12. java启动参数,java常用工具类
  13. 类加载机制,双亲委派模型
  14. 类是如何加载的,如何自己设计一个类加载器

数据库

  1. 事务的原理,ACID是如何保证的?
  2. 数据库三范式举例
  3. MySQL的事务类型了解吗?扁平事务、带有保存点的扁平事务、链事务、嵌套事务、分布式事务
  4. mysql事务的隔离级别,如何实现,隔离是为了什么
  5. mysql的引擎,索引的工作原理,为什么快,有哪些索引?
  6. Innodb和Myisam的区别?
  7. myisam为什么不支持事务?
  8. 覆盖索引
  9. 主键索引和非主键索引的区别,讲了聚集索引,然后问了索引访问的过程,
  10. 问了用聚集索引和不用的磁盘io访问次数的不同,组合索引的最左匹配原则?
  11. 高并发时b+树如何加锁。
  12. 一个sql查询慢,百万级别,单表,你觉得性能问题可能出在哪?
  13. 如果两表查慢,问题出在哪?
  14. Inner join 和left join 性能不同,inner join反而慢是为什么?
  15. Mysql和Redis最大的区别?
  16. mysql的文件系统,是怎么找数据的?
  17. 数据量特别大的时候 mysql会怎么去做
  18. 慢查询优化,如何合理建索引
  19. MYSQL 为什么用B 树不用红黑树
  20. InnoDB是如何实现聚集索引的?
  21. 乐观锁和悲观锁以及各自的适用场景。
  22. 如何在查询的时候不让改数据。select xx for update。
  23. 多个索引,mysql如何选择索引?
  24. 分页查询sql语句?插件?
  25. mycat用过吗?

框架

  1. Spring的bean的生命周期
  2. Spring的IOC和AOP知道吧,实现及原理?单实例无状态你怎么理解?
  3. SpringMVC和Servlet的区别
  4. SpringBoot 有什么好处,答一个好处就问是怎么实现这个好处的
  5. SpringBoot的自动配置如何实现的?
  6. SpringBoot相比于Spring框架有什么优势
  7. mybatis防止sql注入怎么实现
  8. Mybatis和hibernate的区别
  9. Redis为什么快,内存数据库、单线程、IO多路复用的epoll?
  10. redis的使用场景,和memrycache的区别
  11. Redis的设计思路,这么设计的好处是什么?Redis Cluster用过吗? Redis集群怎么搭?怎么分片的?
  12. Redis,持久化,RDB和AOF,AOF的具体过程,AOF文件重写是怎么做的
  13. Redis为什么单线程
  14. Redis底层的数据结构,SDS,缓存一致性是什么
  15. 使用redis来实现单点登录,那么当单个redis节点内存不够的时候,怎么办? 集群化,redis-Cluster
  16. redis怎么实现消息队列?怎么实现分布式锁?
  17. spring如何解决循环依赖
  18. Spring是怎么支持事务的
  19. 为什么@Transation注解修饰的方法可以在多线程的方式下互不影响

其他

  1. 服务器变慢的原因排查
  2. 看过哪些书,有什么印象深刻地方,学到什么?
  3. 职业生涯规划
  4. 分布式锁的实现
  5. 设计模式
  6. 架构师的任务
  7. 你有什么想问的
  8. 微服务,dubbo,springcloud,springdata
  9. 消息队列,activemq,rocketmq,rabbitmq,kafka
  10. mongodb,neo4j,hive
  11. es,zookeeper,docker,kubernetes,hadoop,spark
  12. git,maven,gradle,jenkins,shiro,netty
  13. restapi,protobuf,thrift
  14. 关注过哪些github项目

HR面

  1. 个人优缺点
  2. 家庭情况
  3. 导师和同学的评价
  4. 从学校经历和项目经历的角度做一下自我介绍?
  5. 在XX公司实习过程中,遇见最大的项难题是啥,如何解决的?
  6. 本科生的成绩如何? 研究生的成绩如何?
  7. 最近生活或者工作上遇见最大的困难是啥?如何克服的?
  8. XX公司有留用机会吗?为什么不选择留在xx公司?
  9. 您的职业规划路线是怎么样的?
  10. 跟同龄人相比,你最大的优势是啥?最大的劣势是啥?为什么说你最大的优势是XXX,能够举个例子吗?
  11. 了解我们的业务吗?你对XXX(业务)怎么看?
  12. 对于XX这个城市有什么看法? 为啥不考虑回老家呢?
  13. 父母职业工作是啥?有直系亲属在XX工作吗?
  14. 父母对你选择工作地点有影响吗?
  15. 有别的offer吗? 如果面临多个offer选择,你会怎么考虑?

自我介绍

最简单的模板
您好,我是来自xx大学的一名xx生,所学专业是xx。在校期间主要参与xx工作。
曾于xx公司xx项目组实习,参与XX。
我拥有良好的xx基础、编程风格,熟悉xx等,有过开源框架xx的学习和使用经验。
此外,我有着不错xx能力,性格方面xx。希望能有幸进入贵公司xx。介绍完毕,谢谢。

你可能感兴趣的:(面试,java)