面试

新年牛牛牛 2021 年关注这几个高质量公众号

穿精又带淫゛_ 提交于 2021-02-06 08:01:43
2021 年了,前端技术日新月异,发展迅速,前端公众号是不是感觉越来越多了? 在着辞旧迎新之际,这里盘点几个前端开发工程师 2021 年必须关注的优质公众号,希望对你有所帮助。 大家可以像我一样,利用碎片时间阅读这些公众号的文章,真的有收获! code秘密花园 一个优质的前端号,作者ConardLi,掘金六级作者,博文百万阅读量。长期分享前端基础、框架、node、算法、面试相关优质文章和资源。 👀 扫一扫关注大佬 👀 前端技术优选 前端技术优选为你精选业界前端好文,专注前端及node领域,欢迎关注。 👀 扫一扫关注大佬 👀 前端宇宙 掘金LV6作者,曾输出多篇千赞好文!此外,小编还是个爱摄影爱旅游的程序员,前端进阶的路上,与君同行。 👀 扫一扫关注大佬 👀 前端试炼 18年毕业,工作1年半后跳槽进入大厂,目前是一名高级前端工程师,负责团队基础建设。他善于总结、热于分享,在社区经常能见到他的身影。公众号每日一篇前端优质文章,快关注! 👀 扫一扫关注大佬 👀 前端迷 专注于vue/react/常见前端面试/最新web前端技术的分享;致力于算法以数据结构及前端底层原理、源码技术研究探讨;独具匠心,用心去打造一个一流的前端交流社区。 👀 扫一扫关注大佬 👀 技术漫谈 掘金优秀作者,专注于从规范的角度讲解 JS 知识点,图解重难点。这也是「现代 JavaScript 教程」官方公众号

最适合程序员编程刷题的网站

夙愿已清 提交于 2021-02-06 01:06:28
有不少的程序员小伙伴,为了拿到好的offer,采用了大量刷题的方式。 特别是对于新手、进阶的程序员来说,刷题能够让你的编程能力会得到一个质的飞跃。 下面w3cschool给程序员小伙伴们分享6个编程刷题网站: 0、LeetCode Online Judge 据不完全统计在上面被刷过的题可以围绕地球三圈,这个编程网站并非浪得虚名。谁用谁知道。 1、Codility Codility是一家著名的国外刷题网站。 Codility主要是帮助各大名企、中小企业 笔试 。支持多种语言,能够在线编程。 2、w3cschool 有不少的计算机专业的学生都听老师介绍过这个网站。 W3cschool网站不仅含有各种的编程知识,也包括了java、 php 、ios开发等大量的编程题。 它帮助大量的学员实现了,由学校学习编程到公司编程工作的过渡。 不得不提到的是,在w3cschool app上,照样可以进行刷题训练。 3、HackerRank 网站提供各种编程谜题、现实中的编程难题和挑战。 一般程序员小伙伴们刷完LeetCode之后,就会选择HackerRank继续刷题,更多的是研究算法。 4、CodeChef CodeChef编程题目的难度从入门、简单、中等到挑战都有,会举办竞赛,获胜者可是有奖金的哦! 5、Programmingbydoing 对于一名编程的菜鸟而言,这个网站是在适合不过啦!

海量数据面试题分析

扶醉桌前 提交于 2021-02-06 01:04:08
分享编程技能、互联网技术、生活感悟、打造干货分享平台,将总结的技术、心得、经验分享给大家,这里不只限于技术! 还有 职场心得、生活感悟、以及面经 。 点击上方 " 杨守乐 " ,选择“置顶公众号”,第一时间送达! 海量面试题的条件一般都要求我们处理一批计算机内存放不下的数据。当我们遇到这种面试题时,常有以下几种思想: 哈希切分 哈希切分就是将一个大文件,利用哈希的原理,将其分为若干个小文件。相同的数据都被分到同一个文件里。例如我有一个存放着100亿个整数的大文件,将其分为100个小文件。将每个数都模100,结果相同的数存放到一个文件里。如果这100亿个数理想均匀,则每个小文件大约为1亿个数。 位图(BitMap) 布隆过滤器(Bloom Fileter) 哈希表 堆 例题1:给一个100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 这道题没有给出我们能运用的内存是多大,所以应该先和面试官沟通清楚,问清楚可以用的内存有多少。假如为1GB。 解法:利用哈希切分,将这100G的大文件切分成1000个约为100M的小文件(倘若内存还不够,可再分)。上面我们已经说过,相同的数据已经被分到了相同的文件里。再分别按顺序将这1000个小文件引入内存, 利用哈希表或者其他方法,求出每个小文件中出现最多的IP地址。这样我们就得到1000个IP

程序员经常去的6大编程刷题网站,面笔试、复习、挑战必备!建议收藏

♀尐吖头ヾ 提交于 2021-02-05 22:43:45
编程是一门以技术说话的活儿,工欲善其事必先利其器,在成为优秀程序员的道路上,我们少不了要复习和补充身上的知识库,尤其是在面试或者做项目的时候就显示出来了。 刷题是成长最快的方式之一,我身边的很多老程序猿也会经常去刷题,一来查漏补缺,二来去挑战一些东西来增加自己的能力。 俗话说得好:“一分钱一分货,你有多少东西,就决定了你值多少钱”。 话不多说,我们直接进入今天的主题:程序员经常去的6大刷题网站。 (PS:网站排序不代表什么,只是简单的序号,每个网站都有自己的特色) 一、Virtual Judge 网址:https://vjudge.net 找ACM(国际大学生程序设计竞赛 )的题目可以去这里找,经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛,这里集合了很多OJ的题目,很多国际竞赛的程序精英都是从这里成长的。 当然了,这个很权威很国际化哈,英文能力还是有一定的需求的,哈哈哈。 二、牛客网 网址:https://nowcoder.com 这个网站应该很多人都熟悉,是国内少有IT行业笔面试网站,其内容矩阵涵盖了笔试题库、在线编程练习、线上课程、交流社区、竞赛平台、笔面试服务、ATS系统等,为滴滴、网易、360、蘑菇街、楚楚街等多家企业提供校园招聘、编程竞赛等线上服务。 在这里你甚至可以进行BAT这种大公司的笔面试模拟,上面也有很多大牛

漫画:这道面试题难死啦!

旧街凉风 提交于 2021-02-05 17:00:52
刷题不能盲目,最好的方法,就是直接跟着 有经验的大佬学习 。大黄给小灰介绍了一个算法大神,这个大神在同济大学读本科时,就拿到了 ACM 亚洲分区赛金牌,从卡内基梅隆大学毕业后,直接加入 Facebook。作为 Facebook Messenger Tech Lead,参与了 Facebook App、Facebook Messenger、Facebook Phone 等产品的研发。 小灰听到这里只想说:快停止你的凡尔赛行为! 这位大神就是 覃超 ,是前 Facebook 工程师,也是小灰的偶像之一。他在 Facebook 时,面试过上百个程序员,对算法面试的各项考点了如指掌。所以他总结了一套,特别适合大厂算法面试的 LeetCode 高效解题四步法 ,手把手带你实战演练。 这套解题方法,浓缩在超哥的 《算法面试通关 40 讲》 中,在课程里,超哥现场解题,借此梳理题目背后的考点,并梳理了一整套算法题切题的思路,可以说,跟着刷题,能有效提升你的算法面试通过率。 拼团特惠+口令「xiaohui77」 立省 ¥45,到手 ¥84,仅限 50 人 小灰很早之前,就去学习过超哥的算法心法,确实非常精彩,而且拿来就能用,实践性超强。小灰可以拍胸脯保证,只要你认真跟下来,吃透这套算法面试通关方法论,你也能成为 Offer 收割机。 在课程里,超哥还用 白板教学 ,让小灰找回了当年上学的感觉

java八股文-jvm内存模型----------面试笔记

最后都变了- 提交于 2021-02-05 15:22:21
jvm内存模型: 根据JVM规范,JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分。 程序计数器(线程私有): 是当前线程锁执行字节码的行号治时期,每条线程都有一个独立的程序计数器,这类内存也称为“线程私有”的内存。 正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果是Natice方法,则为空。 java 虚拟机栈 也是线程私有的。 每个方法在执行的时候也会创建一个栈帧,存储了局部变量,操作数,动态链接,方法返回地址。 每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。 通常所说的栈,一般是指在虚拟机栈中的局部变量部分。 局部变量所需内存在编译期间完成分配, 如果线程请求的栈深度大于虚拟机所允许的深度,则StackOverflowError。 如果虚拟机栈可以动态扩展,扩展到无法申请足够的内存,则OutOfMemoryError。 本地方法栈(线程私有) 和虚拟机栈类似,主要为虚拟机使用到的Native方法服务。也会抛出StackOverflowError 和OutOfMemoryError。 Java堆(线程共享) 被所有线程共享的一块内存区域,在虚拟机启动的时候创建,用于存放对象实例。 对可以按照可扩展来实现(通过-Xmx 和-Xms 来控制) 当队中没有内存可分配给实例,也无法再扩展时

字节跳动Android金三银四解析:带你轻松理解Android-Hook机制,赶紧收藏!

雨燕双飞 提交于 2021-02-05 15:22:08
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官 : 组件化如何实现,组件化与插件化的差别在哪里,该怎么选型 心理分析 :面试官从架构层次 了解求职者是否用过 模块化 组件化 和插件化,在过去经验有没有运用过这些技术到项目中,这道题属于一个连环炮。求职者该格外小心 **求职者:**应该从App开发的需求来定义技术选型,分别说说模块化,组件化 插件化的优势和区别 先上一份面试资料目录 1、知道它是什么、有什么用 相信很多人在学习的时候,一开始都会在网上找一整套资料或者买一本书来学习,结果就是内容太多,学了记不住或者学到一半感觉很难,便放弃了,更别提写代码了,根本无从入手。 而更好的一种办法便是学之前先不要着急买书,买资料,先了解一下这门语言或知识有什么作用,为什么会有这个,学习后可以解决什么问题,可以从事哪些工作,以及它的发展史,这样就可以保证我们学到的是最新的知识,以及对以后的工作方向有个大致认识。 有了这个大致的认识之后,再决定自己是否需要学习这门知识。 2、构建知识的思维导图 如果决定学习这门知识的话,在来构建这门知识的思维导图,它可以清楚的展现一门语言的知识结构,我们可以对照这思维导图上的知识点一个个的针对性的学习。 至于思维导图的制作可以参考书本目录和一些培训网站,尽可能的涵盖这门知识的所有知识点。 以下是我整理的 Android

90% 的 Java 程序员都说不上来的为何 Java 代码越执行越快(2)- TLAB预热

我只是一个虾纸丫 提交于 2021-02-05 09:26:51
经常听到 Java 性能不如 C/C++ 的言论,也经常听说 Java 程序需要预热, 那么其中主要原因是啥呢 ? 面试的时候谈到 JVM,也有很多面试官喜欢问, 为啥 Java 程序越执行越快呢 ? 一般人都能回答上来,类加载,缓存预热等等,但是深入下去, 最重要的却没有答上来 ,今天本系列文章就来帮助大家理解这个问题的关键。本篇文章是 TLAB 预热。 TLAB(Thread Local Allocation Buffer)线程本地分配缓存区,这是一个线程专用的内存分配区域。 既然是一个内存分配区域,我们就先要搞清楚 Java 内存大概是如何分配的。 我们这里不考虑 栈上分配 ,这些会在 JIT 的章节详细分析,我们这里 考虑的是无法栈上分配需要共享的对象 。 对于 HotSpot JVM 实现,所有的 GC 算法的实现都是一种对于堆内存的管理,也就是都实现了一种堆的抽象,它们都实现了接口 CollectedHeap。当分配一个对象堆内存空间时,在 CollectedHeap 上首先都会检查是否启用了 TLAB,如果启用了,则会尝试 TLAB 分配;如果当前线程的 TLAB 大小足够,那么从线程当前的 TLAB 中分配;如果不够,但是当前 TLAB 剩余空间小于 最大浪费空间限制(这是一个动态的值,我们后面会详细分析) ,则从堆上(一般是 Eden 区) 重新申请一个新的

【刷穿 LeetCode】17. 电话号码的字母组合(中等)

爱⌒轻易说出口 提交于 2021-02-04 17:51:40
题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 DFS 回溯解法 对于字符串 ds 中的每一位数字,都有其对应的字母映射数组。 在 DFS 中决策每一位数字应该对应哪一个字母,当决策的位数 i == n ,代表整个 ds 字符串都被决策完毕,将决策结果添加到结果集: class Solution { Map<String, String[]> map = new HashMap<>(){{ put("2", new String[]{"a", "b", "c"}); put("3", new String[]{"d", "e", "f"}); put("4", new String[]{"g", "h", "i"}); put("5", new String[]{"j", "k", "l"}); put("6", new String[]{"m", "n", "o"}); put("7", new String[]{"p", "q", "r", "s"}); put(