数据结构
普通网友
这个作者很懒,什么都没留下…
展开
-
Java程序员2021必备学习路线,我靠这个在2020最后一个月斩获6张Offer!
国外有一个爆火的开发人员学习路线,目前已经收获了 131 k+ star,在所有仓库中排名第 9 。我司的一些技术大佬给应届生写学习路线的时候都是参考这个仓库来的。这仓库的名字叫做developer-roadmap。其包括的学习路线涵盖:前端、后端、DevOps、Android、React、PostgraSQL DBA。今天就主要为大家拆解一下“后端学习路线”!下图是中文翻译版本,基本涵盖了一个后端程序员必须要掌握的一些通用的后端知识,非常直观!你可以将其作为自己后端学.原创 2020-12-08 15:16:51 · 506 阅读 · 5 评论 -
不吹不黑,领域驱动设计与软件复杂度你真不一定能get到
软件开发领域中,软件复杂度是一个由来已久的话题,从软件的诞生到成熟再到消亡,或多或少总会伴随着软件复杂度的讨论。软件复杂度究竟从何而来?谈到软件复杂度,有三个话题不得不提及,他们分别是软件规模,软件结构,以及业务的变化。软件规模首先是软件规模,它涉及到软件本身的代码量,迭代时长以及迭代的次数/数量,以及该软件经手的开发者数量等。这几个要素都会对软件规模造成显著影响,可以回想一下自己接手别人祖传代码时那种忐忑不安、小心翼翼的心态,生怕因为自己的失误导致出现bug甚至背锅的情况;并且代码规模越..原创 2020-12-03 17:22:37 · 617 阅读 · 0 评论 -
聊一聊我眼中的ThreadLocal(面试题形式总结)
这篇总结一下 ThreadLocal,主要的议题有:ThreadLocal 介绍 ThreadLocal 实现原理 ThreadLocal 内存泄漏分析 ThreadLocal 应用场景及示例最早听说 ThreadLocal 是18年还在实习的时候,那时候有一个要用到线程池的任务,有人说并发的问题也可以通过 ThreadLocal 来解决。但当时没有用到这玩意,只留下了个“可以用它来解决并发问题”的模糊印象。直到现在,我也会在项目中用到 ThreadLocal 了,但如果要详细的解释它的实现原创 2020-12-03 17:15:48 · 495 阅读 · 0 评论 -
备战金三银四!前阿里大牛整合“2021面试宝典”终开源!(涵盖百度/腾讯/小米/网易/搜狗/知乎/京东/360/瓜子等公司面试真题)
金九银十已经过去,小编总结了一些面试题目包含百度/腾讯/小米/网易/搜狗/知乎/京东/360/瓜子,现在放上来,由于是自己整理,所以涵盖不全面的话诸位请谅解。根据我这些年的面试经验来看,面试有一定的层次性,如bat级别公司每个点都会深入,而有些公司则只会问到表层,所以将每个领域都分为必须掌握和深入了解这两个部分。一、计算机网络基础部分TCP报头格式 UDP报头格式 TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚) HTTP状态码(最好结合使用场景,比如在缓存命中时使用原创 2020-12-03 16:28:09 · 498 阅读 · 1 评论 -
备战一年五面阿里,终于在2020结束之际成功圆梦!鬼知道我这一年是怎么过来的!
在网上看到一份挺有代表性的阿里面经,跟大家分享一下~前言在接触Java之前我接触的比较多的是硬件方面,用的比较多的语言就是C和C++。到了大三我才正式选择Java方向,到目前为止使用Java到现在大概有一年多的时间,所以Java算不上很好。刚开始投递的时候,实习刚辞职,也没准备笔试面试,很多东西都忘记了。所以,刚开始我并没有直接就投递阿里,毕竟心里还是有一点点小害怕的。于是,我就想投递了几个不算大的公司来练手,就是想着刷刷经验而已或者说是练练手(ps: 还是挺对不起那些公司的)。面了一个月其他公司后原创 2020-12-03 16:20:34 · 466 阅读 · 2 评论 -
自学福音!枯燥的TCP/IP知识看这篇就够了!
前言计算机网络是一门基础课程,但是老师所讲的东西无非起到一个抛砖引玉的作用。然而对于需要自学的人来说,无疑是更难的。前路漫漫~~计算机网络本来就是比较枯燥的,文章内容较多,建议读者耐心看完这篇文章,希望大家看完后都能有所收获。先把这篇文章的大致结构放上来。推荐观看:清华架构师权威讲解Socket网络通信、TCP/IP通信原理、HTTPS底层原理预备知识谢希仁的那本《计算机网络》是很多大学选择的计网教材,在第一章是一个概论,大致讲了计算机网络的发展,也可以说是每个人都必须了解的小常识.原创 2020-11-03 15:27:20 · 494 阅读 · 0 评论 -
百度面试被算法血虐,闭关29天肝完445页算法神仙笔记成功入职字节跳动!
前言前段时间面试百度Java技术岗时碰到了一道算法题:任意数分三组,使得每组的和尽量相等。由于时间仓促,加之面试时头昏脑涨,这道题没做出来甚至没有给出思路,导致百度面试之旅失败。这让我多少有些遗憾和不甘。因为最近接触算法的东西较多而且本身对算法感兴趣,所以回家之后绞尽脑汁想把这题做出来。说说我的思路:首先一定要先排序,这也是解决问题的关键。然后降序排序后的前三个数各分一组把剩余数往三个数上叠加。我最开始的思路也是如此,问题在于分组个数不确定,出现极端大的数怎么办,怎么叠加?那层窗户纸就是将.原创 2020-09-26 17:01:26 · 3006 阅读 · 12 评论 -
团灭LeetCode!Alibaba技术官甩出的大师级算法宝典真的太香了!
前言:说到算法,相信每一个程序员和接触过程序员的朋友都不会陌生,直到现在算法一直占着面试必问的地位,而算法面试也仍是当前最适合公司筛选程序员的方法之一,在阿里,字节跳动、华为等公司带动下,无论是求职者还是面试官,都逐渐认识到算法面试其实是相对高效、准确且公平的筛选机制,可能你会觉得算法面试有几个实际工作中用到的,不过是“面试造火箭,工作拧螺丝”罢了,那我想说你并没有认识到算法面试的真正目的。说简单点,算法面试就是为了筛选出足够聪明要么足够勤奋的人,在一个算法题中,不仅考察你的沟通能力,你的逻辑思维能原创 2020-09-25 17:12:06 · 643 阅读 · 2 评论 -
助力金九银十!阿里爆款零基础Java面试宝典开源,文档+视频直抵P7!
近几年来,互联网行业变化非常大,除了龙头企业的更替,“裁员潮”“失业潮”也不断掀起,尤其是对于年纪太大的程序员真的是不太友好。但是,根据数据统计表明,自2018来,学习IT行业的人不减反增,更有不少其他行业的人转学转行。那为什么现在越来越多的人转行了呢?从实际上来看,互联网IT门槛低、薪水多,没有太多的限制,这些因素致使现在的年轻人开始往这个行业内跳。确实,IT行业无需太多人脉、资历,是改变自己未来,逆袭的最佳“捷径”。如今,一线互联网行业对IT人才的需求也越来越大,甚至对于人才的培养给予了一定的支原创 2020-09-16 14:46:58 · 1548 阅读 · 14 评论 -
太精彩了!阿里出品Java初学者开发宝典,嗨翻全网,就业必备
前言我常常在想,近些年来互联网行业裁员情况越来越严重,为什么还是会有特别多的人挤破脑袋想要入这一行,尤其是大部分已经工作的人也会想着要转行来学习编程,再根据今年的高考志愿填报情况来看,很明显,计算机学科已经成为热门行业,那对于刚刚入学的新生以及想要转行的人来说,怎么开始学习一门编程语言,确实是一大难题。所以,今天就关于Java这一类编程语言,我们对初学者的学习也有了以下的内容分享,这份内容看完之后可以说是相当精彩,由阿里内部出品的“Java初学者开发宝典”,堪称就业必备,现已嗨翻全网。以下将会从原创 2020-09-09 20:23:46 · 169 阅读 · 0 评论 -
阿里二面Hashmap21连问,我没顶住......
如果在看这篇文章时,对HashMap的结构还不是很了解,可能下面提及到知识点对你会有些帮助。1:HashMap 的数据结构?A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。transient Node[] table;2:HashMap 的工作原理?HashMap 底层是 hash 数组和单向链表实现,数组中的每个元素都是链表,由 Node 内部类(实现 Map.Entry接口)实现,HashMap 通过 put & get原创 2020-09-09 12:52:29 · 377 阅读 · 0 评论 -
名不虚传!字节技术官甩出的“保姆级“数据结构与算法笔记太香了
数据结构与算法大家都知道选择合适的数据结构将会显著地提升代码的性能。即使是像数组和集合这样相似的两种数据结构,在高负荷的运行环境下也会表现得天差地别。但是就算数据结构确定了,代码的速度也还会受另一重要因素影响,那就是算法。那么数据结构与算法,到底难吗?说实话,难,因为很抽象,也复杂,再加上我们的思维定式,没有形成系统化的学习与练习,很多人呐,这块都是短板,尤其新手这块,知道这块重要,但是完全摸不着头脑。这些虽然是难啃的点,但是要吃透下面这份字节内部笔记这些都是小问题,这份笔记用浅显易懂的方式介绍了数原创 2020-09-03 14:31:41 · 513 阅读 · 0 评论 -
备战秋招:HashMap(JDK1.8)原理以及源码分析
对于HashMap想必大家都不陌生,无论是平时code还是面试都经常和它打交道。今天我们通过源码的层面来分析一下它的实现原理,注意本文基于的是JDK1.8。问题是从哪边开始聊起呢?我觉得不妨先从一段熟悉的代码开始。Map<Integer, String> map = new HashMap<Integer, String>();map.put(1, "Jack");然后我们会迫不及待点开HashMap这个类,发现里面有大量的属性和方法,一脸懵逼。那就直接点开put方法?原创 2020-08-29 14:53:42 · 355 阅读 · 0 评论 -
615页程序员进阶宝典!计算机基础+OS+算法数据结构
不知道大家在当初是一个什么都不懂的小白的时候会不会想一些下面这些问题:我不是科班的,转行的,计算机零基础,啥也不懂,学计算机可以吗?计算机基础什么的都不知道,像什么操作系统啊,计算机组成原理啊,还有什么数据结构和算法,完全懵啊,咋整?“其实这些就是一个计算机基础知识的问题,那么这些不会,影响你学习编程吗?答案是不影响你开始学习编程,但是影响你未来可以走多远,学多深!作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来原创 2020-08-24 17:27:30 · 2028 阅读 · 1 评论 -
字节的面试题到底有多难?大厂为何都注重算法?我们该如何应对?
文章的开头大家先来看一看一道字节的算法题,看是否能做出来:给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)大家有没有一脸懵逼的感觉?(我也不会)曾经有个说法,程序=数据结构+算法。这在面向过程的编程语言流行的年代是很受推崇的。然而,随着时代的发展,各种编程语言的出现,各种编程模式的发明,面向对象、设计模式、框架、模型等各种概念出来之前那个说法已经.原创 2020-08-10 13:12:40 · 723 阅读 · 0 评论 -
Java面试技巧:介绍项目整体不错却倒在组件?
经历过面试的你一定知道, 社招岗位的面试里一定会包含项目经历介绍的。面试官会问及一些特定场景下实现方案的设计,还会问你一些基础知识和基本算法。而在考察基础知识时,你一定被面试官追问过,某某组件的实现原理是什么。那么,对于仅仅使用组件的开发人员来说,了解组件的实现原理真的很重要吗?这会不会是面试官的故意刁难呢?在回答这些问题之前,我先跟你分享一下我面试候选人的经历。案例分析当时,候选人已有五年的工作经验,虽然没什么大厂工作经历,但是从简历来看,他对于互联网领域常见的一些组件,比如Redis、MyS原创 2020-08-04 14:20:42 · 366 阅读 · 0 评论 -
大厂面试HashMap,一定要注意这个点,很多人栽在了这儿
Hashmap是Java中最常用的集合类型,使用非常广泛。不过,有些细节问题很多人没有关注过,这也使很多人在面试时栽了跟头!比如,阿里很多团队为了考察候选人的基础,就出了这么一个面试题:为什么HashMap的初始长度和扩容长度是2的N次幂?HashMap的数据结构先了解一下HashMap的数据结构,在java中,数组和链表是最常用的两个基础数据结构,很多集合类都基于他们实现。HashMap也不例外,是一个链表数组,即数组和链表的结合体,当链表长度超过8时,链表转换为红黑树。如上图,Ha.原创 2020-08-03 12:40:12 · 519 阅读 · 0 评论