技术超神之路

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

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

为了练内功心法,参考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月前
|
人工智能 算法 Java
【C/C++】从零开始认识C++历程-启航篇
【C/C++】从零开始认识C++历程-启航篇
|
2月前
|
前端开发 JavaScript 开发工具
震惊!前端小白到大神的蜕变之路,这些技巧你竟然还不知道?
前端开发是互联网技术的重要组成部分,从新手到大神需要掌握HTML、CSS和JavaScript的基础知识,熟练使用框架和工具,如React、Vue和Git,并注重性能优化。持续学习和实践是成长的关键。本文分享了一些实用技巧,帮助你在前端开发之路上快速进步。
34 4
|
2月前
|
算法 开发者
技术之路:从迷茫到坚定的探索之旅
在技术的海洋中,每个人都是一艘小船,面对着波涛汹涌的挑战和未知的风浪。本文通过个人的技术成长经历,探讨了如何在不断变化的技术环境中找到自己的方向,以及如何通过持续学习和实践来克服困难,最终实现自我超越。
|
6月前
|
数据采集 前端开发 JavaScript
探索技术之路:我的编程之旅与感悟
在数字化时代的浪潮中,编程已成为连接思想与现实的桥梁。本文通过个人经历的叙述,探讨了编程学习过程中的困难与挑战、解决问题的策略以及持续学习的重要性。文章旨在为那些初入编程世界的朋友们提供一些实用的建议和鼓励,同时分享作者对于技术发展的深刻见解。
45 0
|
3月前
|
人工智能 前端开发 数据挖掘
技术之旅:从迷茫到探索的蜕变
【10月更文挑战第15天】 本文通过个人经历,探讨了技术学习过程中的常见挑战和解决策略。文章以作者自身从大学毕业生到技术领域专家的成长历程为例,展示了持续学习和实践的重要性。通过具体案例分析,本文旨在启发读者在面对技术挑战时,如何保持积极态度,寻找有效的学习方法,并最终实现自我超越。
|
5月前
|
Java 程序员 Python
技术之路:我的编程之旅
【8月更文挑战第20天】在这篇文章中,我将分享我的编程之旅,包括我如何开始学习编程,我遇到的挑战和困难,以及我从中学到的经验和教训。我希望我的故事能够激励更多的人去尝试编程,同时也希望能够给正在学习编程的人一些帮助和指导。
|
5月前
|
C++ 容器
【C++航海王:追寻罗杰的编程之路】关于空间配置器你知道多少?
【C++航海王:追寻罗杰的编程之路】关于空间配置器你知道多少?
41 2
|
5月前
|
项目管理 开发者
探索技术之路:我的编程之旅
【8月更文挑战第7天】在数字化时代的浪潮中,编程已成为一种不可或缺的技能。本文将通过个人经历和感悟,探讨编程的美妙之处及其对职业发展的影响。我们将一起回顾从初学者到熟练开发者的转变过程,并分享在技术探索中的一些心得体会,希望能为那些正站在编程起点上的读者提供启发与鼓励。
|
7月前
|
存储 安全 程序员
【C++航海王:追寻罗杰的编程之路】C++11(一)
【C++航海王:追寻罗杰的编程之路】C++11(一)
50 0
【C++航海王:追寻罗杰的编程之路】C++11(一)
|
8月前
技术之路:披荆斩棘,不负初心
在这充满变革与挑战的时代,每一个技术工作者都在不断前行,面对困难与挑战,保持初心,才能在技术之路上披荆斩棘,终有所成。
49 1