光背面试题可没用,谈谈如何真正掌握一个技术知识点

news/2024/7/9 16:49:42 标签: 面试, epoll, java

阅读本文大概需要 3 分钟。


如何真正地掌握一个技术知识点,这是我一直在探索的一个问题,在秋招复习的那段时间,我主要通过阅读博客、整理博客等方式构建了自己的知识体系,所以也算是有了一些经验,在这里分享给大家。





1、第一次接触


作为一个学习者,在学习过程中往往会遇到很多新概念,比如你在学习并发编程的时候,会遇到“锁”、“同步”、“CAS”等奇奇怪怪的概念,光看文字解释大部分人都是一头雾水,我也一样。


所以,第一次接触一个技术知识点,往往是我们充满好奇,渴望探索的时刻,保持这份好奇心,继续下一步探索吧。





2、深度优先遍历


深度优先遍历(DFS)是一种算法思想,用在这里,想表达的是“如果遇到一个陌生的概念,学习它的过程中往往会同时遇到其他陌生的概念”那么就用深度优先遍历的方法去搞定它。


刚刚我们提到并发编程里的“锁”这个概念,就应该噶


比如我遇到了“网络IO模型”这一问题时,卡在了IO多路复用这一问题上,搜索以后,发现IO多路复用在Linux操作系统上的解决方案有:poll、epoll和select。


这三个概念又是什么东西呢,没办法,只好用DFS的方法继续去了解,搞懂了poll之后,继续搞懂epoll,而理解epoll又是相当费劲的,不得不去了解epoll的实现原理,甚至需要去看源码,可见学习一个技术知识点并不轻松。





3、搞懂底层原理


对于上面提到的epoll,笔者为了学习它实在费了不少功夫,一开始光看一些面试题的解答,以为记住答案就可以了,但是真正到面试的时候你就会发现背的东西根本靠不住,一是容易忘,二是容易被看穿。


当你背了很多面试题的答案之后,你就会发现,背的越多,忘得越多,这就是一个恶性循环,怎么办呢,只好硬着头皮去理解原理呗。


当然,对于这种级别的知识点,我可不推荐你抱着《UNIX网络编程》去

探索,有点太夸张了,去看一些比较好的博客就足够了,比如在掘金,开发者头条,搜一下你感兴趣的知识点,挑几个高赞回答瞅一瞅,总有几个大佬能告诉你真相的。


我早已熟悉这一学习方式,于是很快就找到了一篇讲解epoll原理的文章,这篇文章不仅把基本概念解释清楚,甚至还解析源码,另外,我在另一篇文章里找到了epoll底层数据结构的示意图,竟然是一颗红黑树。此时再把两者一结合,基本上这个概念就变得很好理解了。


4、构建自己的知识体系


不管是学什么技术,最终都需要你进行归纳、整理,才能把所学的东西变为自己的。工作为什么要写日志,平时学习为什么要写博客,其实就是在构建自己的知识体系。


在学习的过程中多做笔记,多做总结,习惯一旦形成,久而久之,便会印在你的脑海里,你下次再被问到这一问题时,你就可以用自己之前总结过的内容来回答。


比如我在学习Java并发编程的时候,一开始也觉得毫无头绪,相关知识点杂乱无章,后来我整理了一个技术专栏叫做“Java并发指南”,在这里的过程中梳理了并发编程的知识结构,从最基础的Java多线程,再到JMM内存模型、锁、JUC并发包、JUC源码,依次进行学习。


如果对我整理的博客专栏感兴趣,也可以直接点击原文链接进行查看。




推荐阅读:

应聘腾讯,面试官和我聊了一个小时的人生

职场半年,我犯过的错





听说点“好看”是种美德?我要先点个好看




http://www.niftyadmin.cn/n/540827.html

相关文章

Java IO-file类

------------------------方法.工具---------------------------- 获取File路径和检测状态: 操作File路径和名称: File getAbsoluteFile() :获取绝对路径 String getAbsolutePath():获取绝对路径 String getPath() :获取文件路径 String getName() :获取文件名称 File getParen…

C语言 · 输出日历

算法提高 输出日历 时间限制:1.0s 内存限制:512.0MB按照下述格式打印2006年12月日历:Calendar 2006-12--------------------------Su Mo Tu We Th Fr Sa-------------------------- 1 2 3 4 5 6 7 …

(转)JAVA中解决Filter过滤掉css,js,图片文件等问题

在加入过滤器时,会出现网页可以加载,但是网页中的js,css等文件无法加载的问题。 因为在网页加载时,先将整个网页加载,然后加载网页中的js,css等文件,而在进行js,css文件加载时&#…

python开发接口:dnspod-python

2019独角兽企业重金招聘Python工程师标准>>> 前言 dnspod-python 是 Dnspod 官方的 Python 开发接口。 小编推荐一个学python的学习qun 975,691720,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具&…

javascript倒计时代码及倒计时弹窗

在前端开发中,难免会用到倒计时。如做的双十一活动,在距活动开始的半个月前需要做些宣传工作,需要告知用户优惠活动什么时候开始。这个时候就要用到倒计时,如在整站的某个页面提醒用户活动什么时候开始等。而在活动的后期&#xf…

Java Date,long,String 日期转换

http://www.cnblogs.com/gossipgirl/articles/2294084.html ---------------------------------------------------------- 1、java.util.Date类型转换成long类型 java.util.Date dt new Date(); System.out.println(dt.toString()); //java.util.Date的含义 long lSysTime1…

性能优化(三)看完这篇文章,至少解决 APP 中 90 % 的内存异常问题

我们为什么要优化内存 在 Android 中我们写的 .java 文件,最终会编译成 .class 文件, class 又由类装载器加载后,在 JVM 中会形成一份描述 class 结构的元信息对象,通过该元信息对象可以知道 class 的结构信息 (构造函数、属性、方法)等。JVM…

discuz的MVC结构

首先,我们先介绍一下MVC开发思想简介,MVC的全名是Model-View-Controller是模型-师徒-控制器的缩写,它是一种软件设计思想。使用一种业务逻辑、数据和显示分离的方法资质代码,实现代码复用的最大化。 接下来,我们介绍一…