技术超神之路

简介: 在江湖中要练就绝世武功必须内外兼备,需要精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。

在江湖中要练就绝世武功必须内外兼备,需要精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。你剑法再厉害,一剑刺过来,别人一掌打断你的剑,你还怎么使剑法,你一掌打到一个武功高的人身上,那人没什么事,却把你震伤了,你还怎么打。

为了练内功心法,参考8个你必须知道的面试大纲 ,作个人理解与扩充,目前为v1.0版本,这份大纲图随着个人能力的提升会不断的完善。

简单来说,通过这份大纲有计划去国内大厂看看,也是一份面试准备,接下来的时间,本文所列出的知识点都会以个人理解的方式写技术文章。再此鞭策下自己。

Java核心

1. 面向对象

面向对象编程思想的精是23种设计模式,从入门编程那天开始,到研发寿命结束,面向对象的思想都是一直需要学,需要思考的内容。

个人创建了一个设计模式的专题,感兴趣的可以关注下。目前刚写,后面会完善。

专题地址:https://www.jianshu.com/c/2e11dad59747

2. I/O

Java中IO操作主要是指使用Java进行输入,输出操作. Java所有的IO机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的IO流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。

Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。

流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。Java的IO模型设计非常优秀,它使用Decorator模式,按功能划分Stream,您可以动态装配这些Stream,以便获得您需要的功能。例如,您需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。

2.1 IO的用途

  • 文件访问
  • 网络访问
  • 内部内存访问
  • 管道通信
  • Buffering
  • Filtering
  • Parsing
  • 读写文本(Readers / Writers)
  • 读写对象

2.2 IO的概览

img_0c2f2dc0026e0c369a7493df60b729d3.jpe
JAVAIO.jpeg

  • 基于字节的I/O接口:InputStream,OutputStram ,典型:FileInputStream,FileOutputStream
  • 基于字符操作的I/O接口:Writer,Reader 。典型:FileWriter,OutputStreamWriter
  • 基于磁盘的I/O接口: File
  • 基于网络操作的I/O接口:Socket

参考《深入分析Java Web技术内幕》第二章

3. 多线程
  • 掌握Thread类型
  • 掌握多线程的程序运行原理及并发并行
  • 线程安全性,死锁等
4. 异常
  • 掌握异常的工作原理并且掌握异常的处理方式
5. 正则表达式
  • 掌握常见正则表达式。正则表达式记忆部分居多。
6. J2EE
  • 掌握Servlet内置对象、动作及相关特点和工作原理
  • 掌握Spring框架的IOC和AOP实现原理(反射和动态代理)
  • 至少掌握一个MVC框架(Spring MVC)的工作原理,并熟练运用。
  • Spring源码,Tomcat整体架构,Jetty,Mybatis等源码分析
7. Java虚拟机
  • 类的加载机制 :加载、链接(验证、准备、解析)初始化、使用、卸载。类加载器分类及其应用程序类加载器、自定义加载器。
  • jvm内存结构:程序计数器、堆、虚拟机栈、本地方法栈、方法区(Java8已移除)、元空间(Java8新增)的作用及基本原理
  • GC算法: 垃圾回收。对象存活判断
  • GC分析 :命令调优 JVM内存参数设置及调优

参考链接:http://www.importnew.com/23742.html

8. 数据库开发
  • 理解至少两种数据库引擎(Inndb/Mysiam)的差异性
  • 熟悉索引的内部数据结构,熟悉常见的索引方式(Btree,hash),和索引类型(unique,full text,normal)
  • 会使用explain分析SQL语句,会优化SQL语句
  • 熟悉一种NOSQL,知道内部实现原理(内部数据结构,在算法优化,内部机制)
  • 掌握分布式数据库的知识,分表,分库,分区,分布式事务等,可以学习一个数据库中间件(TDDL/COBAR)熟悉高并发、大数据情况下的数据库开发。
9. 数据结构和算法
  • 掌握线性表和树的特点并熟练运用
  • 掌握常用的排序和查找算法:插入排序(希尔排序)、选择排序(堆排序)、交换排序(冒泡排序)顺序查找、二分查找、哈希查找
  • 熟练运用排序和查找思想解决编程问题

扩展领域

Web技术
  • 前后端接口协调
  • 至少熟悉一款JS框架(React,Vue,Angular)
  • web前端的常见知识,网站性能优化

想成为全栈工程师,前端的各种技术也要了然于心。仅仅列出几条简单的。另外我创建了一个Web前端的文集,感兴趣的可以关注下。

文集地址:https://www.jianshu.com/nb/14577827

Linux
  • 熟练运用Linux常见命令
  • 熟悉Linux操作系统基本概念及特点
  • Linux集群,高可用,高性能

Linux也是全栈中不可少的一个环节,各种架构,服务器相关都是涉及到Linux,学会使用Linux一定能加快不少你的开发。平时也会经常写各种Linux的相关知识,感兴趣的话可以关注我的Linux文集。

文集地址:https://www.jianshu.com/nb/20776954

最后

行动是成功的第一步,接下来要顺着这个技术成长之路,让自己技术 "超神". 努力所有的技术知识点填满。

附录

目录
相关文章
|
8月前
|
算法 计算机视觉 索引
OpenCV竟然可以这样学!成神之路终将不远(十八)
OpenCV竟然可以这样学!成神之路终将不远(十八)
|
8月前
|
安全 计算机视觉 索引
OpenCV竟然可以这样学!成神之路终将不远(二十一)
OpenCV竟然可以这样学!成神之路终将不远(二十一)
|
9月前
|
存储 编译器 C++
函数璀璨之路:探索C++函数的进阶之道
函数璀璨之路:探索C++函数的进阶之道
|
C语言
小白的崛起之路——每日一记
如果arr[mid]是小于key,那说明key还在右边这时数据范围就缩小到[mid+1,right],(mid为什么要加一呢?因为mid所占的数据不符所以要加一缩小范围)。也就是把mid+1的值赋给了left;然后再算出mid值进行查找,如果下一次arr[mid]==key 那恭喜找到了,否则继续进行以上操作,也就可以放进一个循环中,当[left,right]区间不断缩小里面的元素也就不断减小,直到元素没有为止循环停止。这时如果left大于right说明这个序列中没有想要找的元素key。
59 0
|
存储 分布式计算 自然语言处理
【C++修炼之路】1. 初窥门径(一)
【C++修炼之路】1. 初窥门径(一)
【C++修炼之路】1. 初窥门径(一)
|
安全 编译器 程序员
【C++修炼之路】1. 初窥门径(二)
【C++修炼之路】1. 初窥门径(二)
【C++修炼之路】1. 初窥门径(二)
|
供应链 JavaScript 前端开发
开源会走上违心之路吗?
开源项目越“成功”,它给维护者带来的压力就越大。
155 0
|
存储 监控 安全
从平凡到非凡 阿里云李克的技术进阶之路
人物简介:李克 阿里云边缘云计算领域技术负责人 2009年硕士毕业加入阿里至今,一直从事CDN及边缘云领域的技术研发工作,在CDN、边缘计算等方向上有丰富的行业经验,全程参与了阿里云CDN商业化转型,边缘云中台体系的建设,研究方向包括数据智能、分布式架构和性能优化、云计算等领域。目前主要负责边缘云的技术研发以及架构演进。
842 1
从平凡到非凡 阿里云李克的技术进阶之路
|
Web App开发 移动开发 JSON
前端成长之路之打好根基
前端成长之路之打好根基
292 0
前端成长之路之打好根基
|
架构师 安全 Java
开发者故事|热爱代码且发量惊人,一名反“内卷”研发工程师的日常
许多人在选择“程序员”这一职业的背后,或多或少都会有故事可讲。本文是我们与一名 Erda 的用户沟通时深度挖掘到的故事,征得本人同意后对其进行了整理,并设立了【开发者故事】这一栏目,旨在收纳广大同学的故事。
192 0
开发者故事|热爱代码且发量惊人,一名反“内卷”研发工程师的日常