Java入门后如何提升?算法的本质是什么_算法_学习_系列

Java入门后如何提升

首先学习真的是一个循序渐进的过程,也是一件需要坚持的事情。对于这个话题,不同阶段的人可能有不同的理解,所以我把我整理了比较全面的java学习路线分享给大家,以供参考。下面的这个学习路线主要针对于那些刚刚学习了java,但是还没有深入理解的同学。

我大概把学习流程分了三个阶段。

1、简单的数据结构

(1)基础概念(2)数组(3)链表、(4)队列(5)栈

2、树

(1)二叉树(2)平衡二叉树 (3)最优二叉树(哈夫曼树) (4)红黑树 (5)B、B+、B*树

(5)LSM树

3、图

(1)图的基础知识和两种遍历方式(2)最小生成树 (Prim 算法 和 Kruskal 算法)

(3)最短路径算法 (Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法)

(4)拓扑排序

4、排序算法(8种排序算法和时间空间复杂度)

5、java中排序工具

(1)数组排序(2)集合工具类排序

6、常见算法

(1)字符串比较KMP算法(2)剪枝算法(3)布隆过滤器(4)回溯算法

**二、java基础**

1、java集合

(1)各个java集合类(2)使用场景以及性能分析

2、常用类

(1)基础类型封装类(2)BeanUtil工具类(3)string系列类(4)java各种关键字(transient、final、static等等)(5)Math系列(6)system系列

3、javaIO

4、java泛型

5、多态以及实现原理(主要是内存上的结构)

6、java注解和反射

7、java中的语法糖

8、java8、9、10新特性(主要是8)

9、java异常

10、其他零碎知识点(比如创建对象的4种方式)

三、**设计模式**

1、创建型模式(5种)

2、结构性模式(7种)

3、行为性模式(11种)

四、JVM**系列**

1、jvm内存结构

2、类的加载机制

3、GC算法、分析、优化、工具

以上这个阶段看完了基本上就可以进入下一阶段了。第一个阶段是最枯燥乏味的,当然再上一个阶段中假设你还学习了HTML、css、js、jsp+servlet+jdbc这些。如果没有你可以先把这些学习了进入下一个阶段。可能像jvm系列这些在后面学习也可以,不过我觉得一开始就先明白更好

**第二阶段**

一、SSM框架

(1)spring(先使用)(2)mybatis(3)springmvc(4)SSM整合(包括使用maven整合)

二、相关工具

(1)maven(2)git(3)IDEA(4)eclipse(5)日志框架(6)Jenkins

三、java并发编程(内容比较多)

四、java网络编程

(1)序列化(2)网络编程基础(主要看书、TCP/IP这些)(3)NIO(4)netty(5)远程调用(RMI、Thrift、gRPC)

五、数据库

1、Mysql、Oracle

2、nosql(redis、MongoDB)

第二阶段结束之后,我觉得应该是分专题的,因为没有严格意义上的先后顺序了,基本上就是用到哪一块就学哪一块就好了。

**第三阶段**

一、应用服务器

1、Tomcat

2、Jboss

3、Jetty

4、Weblogic

二、linux(不需要完成整个运维师的知识、会使用和底层原理)

三、分布式系统(这里面内容很多、框架也很多)

(1)Dubbo(2)Zookeeper(3)三大消息中间件(4)分布式缓存(5)springSession

(6)高并发分流ngix(7)文件系统fastDFS(8)数据扩容mycat(9)Docker等等

四、微服务架构

(1)springBoot(2)SpringCloud等等

五、安全

1、加密机制

2、shiro安全验证框架

3、其他安全知识

4、一致性算法

其他的还有大数据与云计算等等框架。喜欢的关注我

算法的本质是什么

感谢邀请:

算法,广义算法是解题方案准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。简单的理解就是处事的逻辑流程和执行策略,是一些列行为过程的集合。狭义的算法是计算机出现之后,对于给予计算机指令的一系列指令,特别是完成较为复杂指令的程序被统称为机器算法。

简易算法流程图如下:

特别声明

本文仅代表作者观点,不代表本站立场,本站仅提供信息存储服务。

分享:

扫一扫在手机阅读、分享本文