找工作杂谈(一)2019年春招复习资料总结

 

目录

写在最前面:

几类复习提纲式的GitHub项目 

面试中遇到了的一些问题

我常看的一些技术栈和博客

最后几句废话:

 


写在最前面:

  • 很重要的是怎么沟通,我认为,面试不是面试官VS我,应该是面试官+我 VS problem。
  •  不仅是面试,也可以在日常生活中的处事方式上用这一点!沟通不是 someone VS 我 ,应该是 someone + 我 VS 问题。很遗憾很多人都做不好这一点。
  • 面试也是学习的过程,你一定可以从中获得东西。有可能是pass,那你能加固一些知识点;有可能是failed,那么就需要复习没有准备好的点
  • 在到达自己想去的地方前,Never Stop Exploring。

 

 

几类复习提纲式的GitHub项目 

  1. GitHub - CyC2018/CS-Notes: ? 技术面试必备基础知识  
  2. GitHub - crossoverJie/JCSprout: ?‍? Java Core Sprout : basic, concurrent, algorithm
  3. GitHub - doocs/advanced-java: ? 互联网 Java 工程师进阶知识完全扫盲
  4. JAVA核心知识点整理.pdf(个人觉得挺全)链接:https://pan.baidu.com/s/1wVeNqcrINwvfOOVAtCsI-w 
    提取码:cxhq 
  5. Java并发性和多线程介绍目录 | 并发编程网 – ifeve.com
  6. Java线程面试题 Top 50 - ImportNew
  7. https://github.com/wangzheng0822/algo (数据结构和算法必知必会的50个代码实现)                                                                                                                                                                                                                                                            (一些补充资料,真的是补充资料,基础比这个重要)
  8.  关于Big Data Processing 的相关问题汇总    

 

 

面试中遇到了的一些问题

  1. 手写二叉树的非递归遍历前中后序
  2. 手写一个LRU算法实现(用linkedHashmap)
  3. 手写一个demo给我讲讲CAS
  4. 手写一个demo看看Synchronized和ReentrantLock的性能差异
  5. 手写一个单链表的倒序打印和反向
  6. 中位数问题(有重复数、无重复数)(少量、海量)(三种方法)
  7. 一千万行字符串,代码实现统计并降序排序
  8. 快排思想partition函数的变种问题:TopN+第K大+中位数+超过一半的数
  9. 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
  10. JDK1.8之后的改动,你有注意到哪些?源码看过吗?知道多少讲多少?
  11.  在地址框输入一个taobao.com,会发生什么
  12. HTTP 和 HTTPs 的区别
  13. Cooike 和 session的区别及使用
  14.  TCP和UDP的区别(大概分五点)
  15. HTTP的方法体构成、方法、状态码、长连接短连接
  16. 浏览器渲染出网页的过程大概了解多少
  17. TCP的三次握手,四次挥手,为什么要第三次握手?为什么第四次挥手后需要再等待2MSL?Close_Wait和Time_wait是客户端状态还是服务端状态?
  18. TCP的滑动窗口和拥塞控制,分别需要进行介绍。两者有什么联系与区别。多思考思考
  19. 你所了解的排序算法,简述思路以及在最好情况和最差情况下的时间复杂度
  20. B树和B+树的区别
  21. 二叉树和平衡二叉树的区别,以及红黑树的区别
  22. 什么是线程安全
  23. 多线程工作的基本概念,为什么要使用多线程?
  24. 线程池的概念,实现原理。无限、单线程、固定大小线程池的参数。底层原理以及适用场景
  25. 线程池中的线程为什么能够实现复用?(源码中找答案)
  26. 怎么创建一个线程?
  27. 重写和重载的区别
  28. hashmap是线程安全的嘛,为什么,有哪些线程安全的容器,hashmap底层用什么数据结构实现的,其put方法是如何实现的?怎么解决hash冲突?怎么扩容?(这个问题不好答,非常综合,随着复习深度不一样,这个问题能给出的答案也不一样)
  29. 介绍一下concurrentHashmap中get方法是怎么定位到某个集体位置
  30. 介绍一下copyonWriteArrayList的实现原理和应用场景
  31. 口述单例模式的实现代码,以及该模式的应用场景
  32. 单例模式中的双重检查法,为啥要设置双重检查
  33. 单利模式中的实例变量,为什么要用Volatile来修饰
  34. java内存模型,以及JVM运行时数据区的五个部分,程序计数器、栈、本地栈、堆、方法区
  35. 简述jvm内存模型每个部分的概念,特点,作用
  36. 类加载的过程,加载、验证、准备、解析、初始化。每个部分详细描述。
  37. Jvm中垃圾回收的算法(标记-清除、标记-整理、复制、分代处理)。
  38. JVM中的垃圾回收器,七种,分类是串行并行等。其中CMS和G1问的多,很细,细到每一个步骤需不需要STW以及为什么需要STW。还有查看GC进度的Linux命令是什么?
  39. 对象是否可被回收分析(一般是两种。可达性分析以及GC Root,两者各自的特点是什么,为什么前者不常用?)
  40.  对象的创建过程及每个过程的作用?
  41. 类的卸载触发的情况
  42. 对象的回收触发的情况
  43. 对象的访问,句柄和直接,各自特点
  44. jvm内存溢出的种类,各种发生的对应情况,知道多少讲多少
  45. 死锁和信号量,进程调度,银行家算法
  46. Volatile修饰符的特点?为什么具有这两个特点?缓存一致协议+指令
  47. 阻塞队列是安全容器嘛?了解吗?自己如何实现?
  48. synchronize 和 ReentrantLock 的区别。自己总结,看底层实现。
  49. java中的ThreadLocal 修饰符的作用及特点,同理需要看源码解决问题
  50. 多线程中的饥饿与公平
  51. 为什么wait, notify 和 notifyAll这些方法属于Object类,而不在thread类里面
  52. 为什么wait和notify方法必须要在同步块中调用
  53. 多线程通信。共享内存+等待通知(wait/await/join/interrupt)+JUC(coutdownLatch+回环栅栏+信号量)+管道。这些方法的各自底层实现,以及优缺点?
  54. 类加载的过程,加载、验证、准备、解析、初始化。每个部分详细描述。
  55. 三种JVM自带的类加载器,如何自定义一个类加载器。(启动->扩展->系统)
  56. 双亲委派机制,特点,以及优势
  57. JVM垃圾回收策略,怎样分别判断对象、类需要被回收
  58. GC roots 可达对象如何判断?CMS垃圾收集器每个过程标记存活对象,是怎么的?
  59. stop the world是什么?CMS中哪几个步骤会STW?G1收集器会吗?CMS有FullGC嘛?那聊一聊触发FullGC的情况?你一般用什么指令看GC状态?
  60. 四种引用类型以及使用场景?
  61. 分布式锁的实现
  62. Hadoop核心组件?配置集群的时候配置了一些什么文件?如何隐式执行任务(后台执行)?MapReduce容错,单点任务失败处理?
  63.  使用多线程有什么好处?使用多线程一定会比单线程好吗?多线程会导致什么问题?导致问题的java内存模型是怎样的?怎么解决这个问题?解决方法如volatile、synchronize关键字等它的底层实现是怎样的?你是怎么使用多线程的?使用线程池有什么好处
  64. 知道Java有哪些锁嘛?乐观锁+悲观锁+读写锁+独享锁+共享锁+可重入锁+不可重入锁+分段锁+偏向锁+轻量锁+重量锁+分布式锁+死锁+活锁。好,你说了这么多,你能写个读写锁嘛?
  65.  CAS的特点,以及存在什么局限性嘛?
  66. HashMap的问题,Hashtable+ConcurrentHashmap,1.7和1.8发生的变动。自己设计一个无锁但是安全的ConcurrentHashMap,你会怎么设计实现?
  67. 其中HashMap和HashTable的区别?这种常规性的题目一定要答好!上升到源码层级是最好的!(hash次数不一样、hash方法不同、位运算和取模、初始长度、为什么初始长度要这么设置、线程安全、效率、键值能否为空等等等)
  68. hashmap实现的数据结构,数组、桶等hashmap的哈希冲突解决方法:拉链法等。拉链法的优缺点hashmap的参数及影响性能的关键参数:加载因子和初始容量Resize操作的过程hashmap容量为2次幂的原因hashtable和hashmap异同concurrenthashmap相比于hashtable做的优化、segment的概念、concurrenthashmap高效的原因concurrenthashmap的插入操作是直接操作数组中的链表吗concurrentHashMap在1.8之后的改动:segmentation数组被遗弃,改为(CAS+synchronized)
  69. 阻塞(blocked)和等待(waiting)的区别
  70. init()和cinit()方法的区别
  71. Fail-fast机制 和 Fail-safe 机制的了解
  72. hash算法需要怎么设计(三个特点:快速、稳定、分布均匀),hashcode这个点也会问
  73. equals 和 “=” 的区别
  74. volatile 和 CAS 和 AQS 和 Atomic类放在一起思考
  75. 指针和引用的区别?
  76. 多线程的线程池:为什么需要用线程池?线程池的种类?线程池的参数?线程池的使用流程?线程池中的线程为什么可以复用?(从源码中找答案))

关于面试问题的总结:

上面这些问题都是我在复习过程中:面试实战遇上 + 从别人面经中提取的。虽然题量比较小,但是在一次面试中都很难会把这些问题问到,就像阿里经历5轮面试,也没有把上面的问题全都闻到。所以想表达的意思是:知识点是复习不完的!重要的是要让自己在复习的过程中不断总结不断思考,学会了复习的模式就很重要(带着问题去学习会非常高效且印象深刻)!

当然上面只是一些问题,你可以口述(画航母),但是还有一些在线或者当面手撕代码的环节,同样重要,同样需要认真准备练习。(做算法的另当别论)

 

我常看的一些技术栈和博客

其实这部分不放上来也是可以的。因为带着问题去找答案非常锻炼人,也非常有趣!带着问题去学习,怎么可能找不到这些好的技术博客.

Java相关:

  1. (1条消息)基于Partition函数实现快排、超过一半数字、最小K个数 - 我的梦 - CSDN博客
  2. (1条消息)找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 - 寒小阳 - CSDN博客
  3. (1条消息)找工作知识储备(3)---从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用 - 寒小阳 - CSDN博客
  4. 堆排序 - 如果天空不死 - 博客园
  5. (1条消息)String和String Pool解析 - xuzhelin的专栏 - CSDN博客
  6. (16 条消息) KMP算法 - 搜索结果 - 知乎
  7. 互联网侦察
  8. (1条消息)将链表进行倒序打印 - Const帆的博客 - CSDN博客
  9. 设计模式 | 菜鸟教程
  10. (2条未读消息) 【IT题库】笔试练习_C++Java前端笔试面试题_牛客网
  11. java finalize方法总结、GC执行finalize的过程 - Smina俊 - 博客园
  12. (1条消息)关于finalize()方法(总结) - x_i_y_u_e的专栏 - CSDN博客
  13. Java数据结构和算法 - 标签 - YSOcean - 博客园
  14. (1条消息)RTP/RTCP协议解析 - machh的专栏 - CSDN博客
  15. (1条消息)RTP over TCP - machh的专栏 - CSDN博客
  16. (1条消息)Java集合详解--什么是Set - TonyW的专栏 - CSDN博客
  17. (1条消息)LeetCode 3. 无重复字符的最长子串(Java版) - ccccc1997的博客 - CSDN博客
  18. Java并发性和多线程介绍目录 | 并发编程网 – ifeve.com
  19. 单例模式的八种写法比较 - 程序猿001 - 博客园
  20. (1条消息)java常见的几种内存溢出和解决方案 - elsery - CSDN博客
  21. Java线程面试题 Top 50 - ImportNew
  22. (1条消息)简单剖析B树(B-Tree)与B+树 - 编程随笔与杂谈 - CSDN博客
  23. Java集合:HashMap底层实现和原理(源码解析) - 奕锋博客 - 博客园
  24. (1条消息)Java中volatile关键字的最全总结 - 夏日清风 - CSDN博客
  25. 深入理解HashMap和CurrentHashMap - 巨人肩膀看风景 - 博客园
  26. ArrayList和CopyOnWriteArrayList - 孙朝和 - 博客园
  27. HIVE和HBASE区别 - justinzhang - 博客园
  28. (1条消息)java实现组合-n个数取其中k个数的所有组合 - 圆圆的汤圆的博客 - CSDN博客
  29. (1条消息)JAVA线程通信详解 - Gandoph的博客 - CSDN博客
  30. (1条消息)用Java实现WordCount - cj7749910的专栏 - CSDN博客
  31. (1条消息)Java中Collections.sort()的使用! - 印象丶亮仔 - CSDN博客
  32. 传统单例模式双重检查锁存在的问题 - 君奉天 - 博客园
  33. 从一道面试题来认识java类加载时机与过程 - ☆零点零☆ - 博客园
  34. 深入理解Java类加载器(ClassLoader) - zejian的博客 - CSDN博客
  35. (1条消息)JVM中类的卸载机制 - Java我人生的技术博客 - CSDN博客
  36. Java的快速失败和安全失败 - Nutty - 博客园
  37. 基于 Redis 的分布式锁 | crossoverJie's Blog
  38. 对象创建的五个步骤
  39. Java中的锁分类 - byhieg - 博客园
  40. Synchronized之三:Synchronized与线程中断、线程wait - duanxz - 博客园
  41. (1条消息)ReentrantLock实现原理 - u011202334的专栏 - CSDN博客
  42. (3条消息)LRU算法四种实现方式介绍 - elricboa的专栏 - CSDN博客
  43. CMS垃圾回收器详解 - zqz_zqz的博客 - CSDN博客
  44. Java并发之线程池 - qq_28619473的博客 - CSDN博客
  45. 【Java深入】深拷贝与浅拷贝详解 - 白夜行 - CSDN博客
  46. 理解Cookie和Session的区别及使用 - liyifan687的博客 - CSDN博客

 

C++相关:

  1. 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 - 寒小阳 - 博客频道 - CSDN.N
  2. 链接法解决碰撞之哈希表
  3. STL中的set容器的一点总结 - sunshinewave的专栏 - 博客频道 - CSDN.NET
  4. leetcode难度及面试频率 - 姚光超的专栏 - 博客频道 - CSDN.NET
  5. 详细介绍=====c++中的引用与指针的区别 - lyd_253261362的专栏 - 博客频道 - CSDN.NET
  6. C/C++中字符串与数字相互转换_百度经验
  7. LeetCode总结 - Allan的专栏 - 博客频道 - CSDN.NET
  8. Problems | LeetCode OJ
  9. 详细解说 STL 排序(Sort) - 斑竹的程序设计专栏 - 博客频道 - CSDN.NET
  10. 通用特征描述子匹配公用接口 — OpenCV 2.3.2 documentation
  11. leetcode之 median of two sorted arrays - 姚光超的专栏 - 博客频道 - CSDN.NET
  12. [整理]算法面试:精选微软经典的算法面试100题[前40题]-CSDN论坛-CSDN.NET-中国最大的IT技术社区
  13. 我的新书《编程之法:面试和算法心得》终于上市 - 结构之法 算法之道 - 博客频道 - CSDN.NET
  14. Longest Palindromic Substring Part II | LeetCode
  15. LeetCode-分类题解[全] | Acm之家
  16. LeetCode 问题汇总之递归算法 - coder 进阶的专栏 - 博客频道 - CSDN.NET
  17. 《Thinking In Algorithm》 系列前言及目录 - 狼牙灬月 - 博客频道 - CSDN.NET
  18. LeetCode 问题汇总(算法,难度,频率) - coder 进阶的专栏 - 博客频道 - CSDN.NET
  19. 穷举递归和回溯算法终结篇 - python27 - 博客园
  20. C++ stringstream介绍,使用方法与例子 - JoeBlackZQQ的专栏 - 博客频道 - CSDN.NET
  21. C++ 中的static关键字 - 乐观进取 奋斗不止 - 博客频道 - CSDN.NET
  22. C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区 - 盗艹人 - 博客园
  23. 剑指XX游戏(六) - 轻松搞定面试中的红黑树问题 - 推酷
  24. C++ explicit的作用 - 原来... - 博客园
  25. c++类的隐式转换与强制转换重载详解_C 语言_脚本之家
  26. C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 - 冀博 - 博客频道 - CSDN.NET
  27. new和malloc的区别深入解析_C 语言_脚本之家
  28. 浅谈C++多态性 - Hackbuteer1的专栏 - 博客频道 - CSDN.NET
  29. 大神陶辉
  30. 转载:C/C++源代码到可执行程序的过程详解 - 桑海 - 博客园
  31. 比BM算法还快的Sunday算法 - dayuqi的专栏 - 博客频道 - CSDN.NET
  32. 从头到尾彻底理解KMP - sweetgum2012的专栏 - 博客频道 - CSDN.NET
  33. 很好理解Sunday 我就不单独写了 用这个就行了
  34. 这个用于推o(nlgn)的最长递增子序列
  35. 最长递增子序列的推法和理解
  36. 大话设计模式C++实现-第8章-工厂方法模式 - 西青年·部落格 - 博客频道 - CSDN.NET
  37. C++的const类成员函数 - 本立道生 - 博客频道 - CSDN.NET
  38. C++11中的智能指针 - 技术手札 - 开源中国社区
  39. C++中的单例模式 - Hackbuteer1的专栏 - 博客频道 - CSDN.NET

 

最后几句废话:

今年找实习确实感觉很乱,具体来讲就是投递很多家公司,都是比较大的企业,做过笔试或者没做过笔试,也都很多石沉大海了,这会使人的自尊心非常受打击。赖不上互联网寒冬,只能是自己太菜。(找实习的那张表应该还在)

如此形势下,愿意接受实习生的公司就非常值得钦佩了,其中阿里360华为美的四家公司尤为值得称赞了哈哈哈哈哈!每家公司的招聘组的专业性和对学生的包容心都令我赞叹,每家公司都非常优秀,是我非常想加入的团队。但是很遗憾最后只能选择一家。不过这只是春招了,希望自己继续努力,到秋招时变得更好一点,然后幸运一点,去和自己意向的公司结下更加深厚的缘分。

2019年5月13日17:29:53

你可能感兴趣的:(基础复习)