如何理解并掌握 Java 数据结构

作者/分享人:张振华
向 Ta 提问
曾经先后在驴妈妈,携程,要买车公司担任过Java高级工程师、架构师、开发主管、技术经理等职务。在电商公司工作期间,负责过PC站和后端服务的平台架构、实现和升级。 目前在做一些Java架构工作。前后从业10几年没有离开Java,2015年出版《Java并发编程从入门到精通》。2018年出版《Spring Data Jpa从入门到精通》。 网名:张振华.Jack

一说起“数据结构”可能很多同学都又交给老师了。但是实际工作中如果做得深入一些,特别是越往上发展,越大公司越离不开数据结构。本场 Chat 作者将带领大家重温《Java 数据结构》,讲解的内容有:

  1. 哪些数据结构(线,链,堆,栈,队列)及其在 Java 里面哪里有用到。
  2. 8 大算法(时间复杂度,空间复杂度,内存,CPU 的影响)及其应用的地方。
  3. KMP 查找算法,二分查找,递归算法(写法,内存的影响)。
  4. 数、图及其应用的地方。
  5. hash 表,及其实际工作中哪里应用。

和 Jack 一起重温 Java 数据结构经典,10 年老程序员告诉你该怎么来理解和掌握数据结构。通往资深开发和 Java 架构师必须要掌握的知识点。

实录内容提要:

  1. 关于面试的几个问题出题面试候选人,在数据结构和算法这块,请问会出哪些题,着重哪些点?如果要准备面试,虽然短期内刷 leetcode 可以积累一些思路,但过些时间就模糊了,怎么在平时工作中训练,长期内都能掌握?工作中平时比较多的是写基本的 CURD 业务,关于数据结构的算法用的比较少,但是面试中又比较爱面试,怎么找到这个平衡?笔试或面试中图这类数据结构的一般考点是什么?面试的话是更重视算法和数据结构基础,还是相关业务的项目经验或者框架使用经验和框架原理?
  2. 关于冒泡排序和选择排序,我曾经搜索过网络上很多文章,发现大部分都是错的,自己做文章筛选的成本很高,还可能被误导。因此能不能请给出更多的参考链接?
  3. 能否请结合一个例子讲解一下工作中用数据结构解决的问题?
  4. 请问有更详细的讲解 Java 数据结构和算法的资料或者书籍推荐吗?
  5. 有关二叉平衡树的意义,可以稍微详细讲一下吗?
  6. 工作中哪些地方会用到数据结构?
  7. 完全二叉树是否可以理解为 D-1 层最右子树没有右叶子的二叉树?
  8. 关于树的知识记得有前序、中序、后序遍历算法。文中没有提及,可以讲一下吗?以及这些遍历在实际生产中如何使用?
  9. 请问老师 B+ 树和 B- 树怎么理解?
已有687人预订
预订达标
文章出炉
交流日期
     
17.12.22
01月05日
01月10日 20:30
查看文章评论/提问
Sea
老师,连KMP算法都不讲,很多知识点一句话带过,请问写这篇文章的意义在何处?
张振华: 好意见,篇幅有限,只讲一下精华部分,留了一点悬念在gitchat群里现场交流,给大家留了一点思考空间。也希望大家多思考,说明这位同学还是认真了,值得肯定。
张振华
如果大家觉得老师付出的值的大家肯定,帮老师点赞和打5分好评哦。这样老师更有动力。
Mr.Potter
很赞!感谢!
yonguo
概括性的介绍,写的很清楚,感谢分享。请问有更详细的讲解Java数据结构和算法的资料或者书籍推荐吗?
jack
写的很有深度,讲解详细,五星好评,赞!
张曦
提纲挈领的作用吧,具体的知识没有讲到,给出了要掌握的知识地图,辛苦老师
梅小西
我发现这个老师写的文章,基本上都是『点到为止』,『一笔带过』,请问都能随便百度到的东西,为何要花钱来看?
你可能还喜欢
初探 Metasploit 漏洞框架
肖志华
使用 Mpvue 开发微信小程序的最佳实践
美团点评技术团队
Java 优化方案:设计模式
Array老师
普通程序员如何快速提升自己
王俊生
使用 Python 全栈打造淘宝客微信机器人
州的先生
大厂面试官亲述:0~3年移动研发工程师必备技能
richardcao
微信扫描登录