引言
明天是学校正式开学的一天,我也要迎来了自己的大三生活。我学的专业是计算机科学与技术,从大一下学期接触到java时,我就对其产生了很大的兴趣,然后一直在学习关于java方面的知识。注册CSDN已经很长时间了,但是这是第一次写博客,以前在学习的时候也想着写博客,但是那时自己的整体学习路线还没有梳理清楚,写的博客也类似于笔记,并没有太大的意义。目前在经过一年半的学习后,我对J2EE开发的大体架构和学习路线也有了更深的认识,因此开始写博客来对所学的知识进行梳理与总结。
在大一下的学期,我重点学习了java基础知识,比如:标识符和数据类型、表达式和流程控制语句、数组、向量和字符串、对象和类、异常、IO。在这个阶段我并没有对java的多线程、高并发、网络功能以及最底层的java虚拟机、代码安全、垃圾收集机制、集合框架的源码进行深入的了解,就进入了J2EE的学习。
在大一下的暑假,我学习了html、css、js、jsp、Bootstrap、jQuery、JDBC、mysql、Servlet、tomcat、ajax、xml、json、拦截器、过滤器等基础Web开发知识。然后用一个月的时间学习了SpringMVC、Spring、Mybatis三个框架,并将其整合做了个小型的网站。在整合SSM框架时,遇到了各种各样因为jar包冲突而引起的问题,因此我开始学习maven(后来又学了gradle进行构建,个人感觉gradle好用一些)来构建代码和项目管理。当时实验室的学长告诉我们最好要拥有开发自己的技术博客,这样既可以对平时的学习进行总结,也可以在面试中加分。所有我就开始开发属于自己的博客网站。因为是第一次写一个完整的网站,所以在开发过程中遇到各种问题。因为要实现网站的搜索功能,我开始学习全文检索(Lucene、ElasticSearch)。在这个过程中我用了大概三个月的时间。到此,我的大一生涯也结束了。
在大二上的学期开设了数据结构与算法分析课程,数据结构和算法对于从事计算机的人的重要性众所周知。因此,我在这上面也投入了很多精力。对着微服务的概念越来越被认可,同时自己也觉得Spring框架的配置十分繁琐,于是就去了解了关于SpringBoot的知识。
在大二下的学期,我开始了解关于缓存、高并发、分布式的相关知识。关于缓存,我着重学习了redis,在这过程中对于缓存设计的目的、缓存的持久化、缓存复制的原理、缓存的更新、穿透和无底洞、redis的高可用以及redis集群等有了一定的认识。在高并发方面,我写了一个秒杀系统,使用redis作为缓存,RabbitMQ作为消息队列以及页面静态化来减小对数据库访问的压力,提高系统的QPS。关于分布式,我了解了分布式的基本概念以及分布式系统解决的问题以及在设计分布式系统中应该注意的问题。但是我对于分布式的理解还是很浅,需要更加深入的去了解。
马上就要步入大三上,我学习的方向是深入多线程、了解java最底层的知识(java虚拟机、CG等)、MySQL调优、学习一些基本的设计模式、看一些源码(Spring、Hashmap等)从而了解那些是如何写代码的。