如何理解并掌握 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- 树怎么理解?
已有1298人预订
预订达标
文章出炉
交流日期
     
17.12.22
01月05日
01月10日 20:30
查看文章评论/提问
Sea
老师,连KMP算法都不讲,很多知识点一句话带过,请问写这篇文章的意义在何处?
张振华: 好意见,篇幅有限,只讲一下精华部分,留了一点悬念在gitchat群里现场交流,给大家留了一点思考空间。也希望大家多思考,说明这位同学还是认真了,值得肯定。
张振华
如果大家觉得老师付出的值的大家肯定,帮老师点赞和打5分好评哦。这样老师更有动力。
梅小西
我发现这个老师写的文章,基本上都是『点到为止』,『一笔带过』,请问都能随便百度到的东西,为何要花钱来看?
任武杰: 想让你花钱买人家的课撒
Mr.Potter
很赞!感谢!
李烨
预告的内容多一半没写啊
yonguo
概括性的介绍,写的很清楚,感谢分享。请问有更详细的讲解Java数据结构和算法的资料或者书籍推荐吗?
jack
写的很有深度,讲解详细,五星好评,赞!
张曦
提纲挈领的作用吧,具体的知识没有讲到,给出了要掌握的知识地图,辛苦老师
LeiDaGou
在实际项目中可以用到的示例呢?不是说让我们看了让我们可以在项目中使用,之后不容易忘记吗?
张宇
内容不够深入,缺乏深度分析。
xn
一笔带过谁需要你写。
你可能还喜欢
如何设计一个灵活的 MySQL 数据表,应对灵活多变的需求
李岩
Jenkins 自动化构建部署实战
火币集团研发中心
Java 程序员应掌握的 Nginx 实战应用
JPM
带你玩转 JSON
能量架构师
Python Pandas 做数据分析之玩转 Excel 报表分析
WinterLeo
小程序从入门到进阶
loonglong
微信扫描登录