java应该如何自学?
首先,java基金会
学习任何一门编程语言,首先要学习的是基本语法。开始Java学习的第一步,当然是掌握计算机基础,基本编程语法,面向对象,set,IO流,线程,并发,异常和网络编程,我们称之为JavaSE基础。当你掌握了这些内容,你就可以在电脑上安装迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面软件了。
JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。
Java基本模块中有六个子模块需要学习:
技术树
第二,数据库
互联网最有价值的是数据。任何编程语言都需要解决数据存储的问题,而数据存储的关键技术就是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库之间最常见的通信技术是JDBC、德鲁伊和C3P0。学习完这些数据库技术,就可以掌握数据库运维技术,复杂业务表结构的设计规范,工作中常见的SQL操作,软件数据存储等等。
数据库不仅是Java开发工程师的必修课,也是其他语言需要掌握的技能。用于在互动过程中存储客户数据。
本节包括关系数据库和非关系数据库。
比如:MySQL,oracle,redis,MongoDB等。学习完数据库后,可以将数据存储在数据库中,也可以通过SQL语句从数据库中查询数据。结合Java项目,可以保存动态站点的数据。
技术树
第三,前端技术
浏览器展现给用户的网页是前端,前端有三个基础技术,分别是Html、CSS和JavaScript。学完这些,为了做出更好更炫的交互体验,我们需要学习jQuery、ElementUI、Vue、Ajax和打包工具webpack。学会了这些技术,我们就可以开发微信小程序,响应式网站,手机网站,像JD.COM这样的B2B2C商城,管理后台。
Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习高级课程的基础。
首先,我们来看看前板。该板块主要包括以下模块:
学习前端技术后,可以完成像JD.COM、淘宝这样的前端项目的准备工作。
技术树
第四,动态网页
掌握前端技术只能做静态网站,但其页面数据不变,而动态网站可以根据数据库中变化的数据显示不同的内容,应用更广泛,所以程序员一定要学会做动态网站。使用Java做动态网站,需要学习Servlet、Filter、Session、Cookie、JSP、EL expression、JSTL等完整的知识体系。学习后可以开发OA系统,内容网站,BBS等。
动态网页是中级程序员的服务器端编程基础,是高级框架学习的必备课程。后期学习的框架和服务底层都是基于动态网页技术。
本节包括Javaweb的核心技术,包括Servlet、请求、响应、Cookie和会话等。通过对这些技术的学习,可以完成动态的站点开发,可以更好的完成服务器和客户的交互,可以把页面上的数据“搬”出来,做成一个小型的应用系统。
技术树
动词 (verb的缩写)编程增强
之前学过JavaSE的基础,但是效率不高,在企业应用中扩展性差。编程强化就是强化JavaSE的基础,会提高程序处理业务的执行效率,增强程序的可扩展性。编程强化会强化多线程高级学习,涉及线程记忆、线程通信等技术。学习后可以增加一个中级程序员的知识储备,在面试过程中或者以后打下良好的基础。
编程强化是对解决实际问题的深入理解和应用,强化了JavaSE的基础,支持后期的自动化框架和一些服务框架的底层理解。
编程强化模块主要包括以下模块:多线程高级,涉及线程内存、线程通信等。JVM优化,优化JVM底层,提高项目执行效率;NIO,同步非阻塞IO提高效率。
学习这个阶段可以优化原项目,让程序更快更稳定。
技术树
不及物动词软件项目管理
公司开发是团队协同开发,为了更好地把握实际开发,我们还需要学习常用的项目管理平台、版本控制器、项目构建工具和自动化部署工具。项目开发中必须有版本升级。管理项目进度和版本需要Git、Maven和Sonar等系统平台。学习软件项目管理后,你将掌握整个项目的实际开发过程,以及整个项目开发过程中使用的协同开发工具。
JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。
Java基础模块有六个子模块:基础语法,可以帮助你建立基本的编程逻辑思维;面向对象,用面向对象的方式写出漂亮的Java程序;集合,后期开发中存储数据的必要技术;IO,对磁盘文件的读写基本操作;多线程和并发性提高程序效率;例外,写代码逻辑更健全;网络编程,应用服务器学习基础,完成数据的远程传输。
学习这个阶段,可以完成一些简单的管理系统,坦克对战游戏,QQ交流等。
技术树
七、流行的技术框架
掌握Javaweb后,具备了开发企业实用项目的能力,但开发效率低,代码量大,开发周期长,开发成本高。一些优秀的框架技术被企业广泛应用于解决上述问题,所以我们还是需要学习框架技术。项目开发中主流的SpringMVC技术有Spring MVC、Spring、MyBatis、MyBatis Plus、Spring Java。这些框架技术都是一个优秀程序员必备的技能。
使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以把常见的逻辑操作封装起来形成框架,所以框架是企业开发的入门技能。
流行的框架板有几种主流框架:弹簧框架,占据主导地位,其生态系统涉及多种解决方案;MyBatis框架,用ORM思想操作数据库。
学完这一节,你就可以开发真正的企业级项目,你做出来的项目会更符合企业的要求。
技术树
八、分布式架构
需要分布式微服务技术。通过本课程的学习,可以具备大型SOA架构和微服务架构的能力,掌握大型微服务项目必备的技术和实践经验。在企业发展过程中,业务量和用户逐渐增加。为了确保系统的可用性,系统变得越来越复杂,R&D人员的数量也在增加。每个人都很难维护一个复杂的系统,经常修改一些内容,导致牵一发而动全身。因此,我们需要升级系统架构。
随着互联网的发展,业务的复杂度和用户的体验都需要提高,于是分布式架构出现了。本节主要讲解分布式架构的相关解决方案。
主要包括以下模块:高性能RPC服务发布和调用框架DubboSpringBoot,它简化了Spring应用程序的初始构造和开发过程;Spring Cloud是服务发现注册、配置中心、负载均衡、断路器、数据监控等一系列框架的有序集合。
这部分的学习可以为大型互联网项目的开发具备必要的技术和实践经验,为进入BATJ打下基础。
技术树
九、服务器中间件
在分布式系统架构中,服务之间的异步通信是非常普遍的需求之一,而消息中间件的诞生正是为了解决这类问题。目前市场上主流的消息中间件有RabbitMQ、RocketMQ和Kafka。我们将借鉴这三个消息中间件来实现分布式项目中的异步通信。学习完这些,就可以实现分布式项目的异步通信、分布式应用日志收集、分布式事务等等。
在大型互联网项目中,中间件是必须的。服务中间件可以帮助各子模块实现相互访问、消息共享或统一访问等功能。包括远程服务框架中间件,如Apache的RPC框架Dubbo等。消息队列中间件,如:阿里巴巴开源分布式中间件RocketMQ,高吞吐量消息发布和流媒体服务Kafka等。
学习服务中间件是中级JavaEE工程师和JavaEE架构师必备的技术。
技术树
X.服务器技术
程序开发出来后,我们把它们打包部署到服务器上运行,所以需要学习常用的服务器技术。常见的服务器有Linux和Window server。Linux性能高,目前是主流。我们写的项目需要一个软件来运行,这个软件叫做web容器。我们需要在服务器上安装一个web容器来发布项目。目前主流的web容器有tomcat、jetty、nginx和undertow。
无论是使用原生Javaweb进行开发,还是使用框架进行开发,项目都需要对外发布,供全世界的人访问,而服务器板可以解决这个问题,所以服务器是项目发布的必要技术。本节包括虚拟化和web应用服务器学习,主要包括以下模块:Vmware,虚拟机软件;专用于服务器的系统LinuxNginx,集群部署时的反向代理服务器;Tomcat,项目发布时使用的主服务器。
学完这一节,我们就可以把开发的项目发布到服务器上,然后让你的朋友远程访问。超级爽!
技术树
XI。集装箱技术
有了服务器操作系统和web容器,我们可以部署一个独立的站点。在分布式系统中,如果使用单机部署方式,会投入大量人力,出错几率很大。所以Docker这种服务器虚拟化技术在今天也被称为必备技术。Docker可以帮助运营商实现快速部署和批量维护。使用Kubernetes实现自动部署、大规模可扩展性和应用容器管理。
集装箱化技术是近两年的热门话题。环境可以通过容器化技术进行封装,便于移植,大大提高了开发效率。本节包括容器化技术Docker及其平台管理引擎Kubernetes。Docker是一个开源的应用程序容器引擎,可以将应用程序和依赖包打包成一个可移植的镜像,然后发布到任何流行的Linux或Windows机器上,也可以被虚拟化。Kubernetes是开源的,用于管理云平台中多台主机上的容器化应用。Kubernetes的目标是使容器化应用程序的部署简单高效。通过本节的学习,你可以通过以上技术快速搭建环境,节省开发时间,提高开发效率。
技术树
十二。商业解决方案
企业开发会遇到一些常见的业务场景,比如搜索引擎、缓存、任务调度、工作流、报表导出、日志管理、系统监控等。,那么这些常见的解决方案也有优秀的免费开源中间件可供使用。如ElasticSearch、Lucene、Solr、redis、MongoDB、slf4J、ECharts、Quartz、POI等。商业解决方案课程的商业计划书和技术难点,解决了企业发展中90%以上的痛点和难点。
虽然我们已经有了基础技术和先进技术,但是如果要和企业开发结合,还需要探索实际项目的业务解决方案。本节收集了实际业务场景中的真实解决方案。常见的业务解决方案有:搜索业务场景解决方案、日志采集分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这套解决方案技术集,可以达到中级甚至高级工程师的水平。
技术树