我在自学Java,请教Java如何学?
针对很多初识Java者,对如何学习Java、如何学好Java很迷茫,作为过来人跟你来分享分享自己的经验!
初识,对于很多初学者来说,想到Java马上就会去开始动起来了,实际学习Java应该先了解大致的一个思路或者说学的这些东西在哪些地方用。目前Java主要应用于两方面
1.Java企业级应用开发
2.安卓应用开发(开始走下坡)
我们就聊聊第一种,Java企业级应用开发(Java 2 Platform Enterprise Edition),Java的企业级应用开发主要分为三大块:
前台:HTML/CSS/JavaScript
后台:JavaSe/JavaEE
数据库:Oracle/MySql/SqlServer
上图是我梳理的一个Web系统如何交互的,能够帮助你快速的在脑海中直观的建立项目的完整技术应用。
第一步:客户端(手机,平板,pc)部分向服务器发送请求,这里由运行在服务器上的容器(tomcat,websphere,nginx。。),这些容器的作用就是管理我们的后台程序的管理程序。我们开发的程序都是由容器去托管运行的,根据前端的HTTP请求,解析出请求内容,然后调用后台代码或者定位对应的资源。
第二步:后台代码(例如Java)执行对应的业务逻辑代码,返回结果或者是操作数据库然后再返回结果。
第三步:容器将执行结果返回到浏览器(前端代码),彩色区域就是我们的前端部分了,展示给用户最直接的地方,基本被我们手机,平板,pc电脑的浏览器渲染展示。
有了大致到印象以后,我们来聊聊怎么学好Java。
学习JavaSe从语法、数据类型、面向对象、API等等开始,在学习的时候会发现,学这些感觉不知道用在哪里,会迷茫。不要急淡定,就好比我们学前班学的a o e i u v一样,这是在做准备,但是需要提醒大家的是在学这个的时候要多做练习(请参照你小学背课文,写了几十斤的练习本,编程绝对没那个难),多做一些有趣的案例,用程序代码去实现一些数学算法,逻辑数学推理等等。这些对你的编程思维有非常大的帮助。一定要去做!!
接下来我要提醒的是javase还没结束,请重点关注:泛型,注解,反射,动态代理,多线程,网络编程。非常重要。特别是 注解 反射 动态代理要掌握好这对后期你学习框架,看框架源码,掌握框架原理有非常大的帮助的。
接下来我们应该学什么了呢?前面的知识点会让我们很痛苦但是苦尽甘来了。解析来我们要做一些可以看得见的东西,学前端知识了。不要问我为啥不去学swing这些呢,请记住Java擅长的领域不是桌面应用程序。当然你练习的时候想自己做几个界面的软件去学学也无伤大雅。
前端其实要熟练不难HTML是负责前端页面内容的,就好比一个人,有鼻子有眼睛,有手有脚,你需要做的就是把鼻子眼睛 手放到哪里就是了,你放什么浏览器就老老实实展示什么。HTML5也只是将标签进行了升级,语义化标签,增加了些高级的组件。
然后CSS就是负责前端页面的风格,就好比一个人有鼻子有眼睛有手了,它们分别长成什么样是由css来决定的。css更多的就是在描述html组件的属性,例如颜色是什么。长宽是多少等等。对于大家来说是非常容易理解和掌握的。CSS3就更好玩了,增加了动画和各种特效绝对让你玩的不亦乐乎。
前端最有趣最有想法的部分来了,JavaScript负责前端界面的行为,就好比一个人嘴巴能说话,眼睛能看世界,脚能走路,都是由JavaScript来实现的。学习JavaScript我们会发现跟Java太相似了,因为ECMAScript越来越像Java了,而JavaScript的核心语法部分就是ECMAScript,所以javascript入门不难,而JavaScript在前端体现的一个非常重要的功能就是动态操作html和css的属性,他能操作是因为他由一个叫做dom的东东,操作html和css来达到动态效果。javascript学习过程中还有一个非常重要的部分就是面向对象,请记住独立的function叫做函数,依赖某个对象的function叫做方法。特别要掌握prototype,如果你面试碰到我那么我可以很负责任的告诉你prototype是我必问的面试题。
掌握好了prototype,然后我们再来学习jquery的使用,正常来说我们只需要学习好jquery的基本api使用就ok了。但是我还是建议你去看看jquery的源码。这个时候你就会发现prototype的强大在jquery里面体现的淋漓尽致。然后jquery要记得去掌握类级插件和对象级插件的封装。以后你的工作中绝对会遇到使用别人的组件可能需要调bug 可能需要个性化改造甚至有可能自己需要写插件的哦。
然后我们开始接触JavaEE的核心,Servlet、Jsp、标准标签库、自定义标签等等,这里就会有前台和后台知识的汇总了。大家就会发现原来前后台是这样自对接的。熟练这部分后再想着我们系统的数据存储,然后我们就要开始对数据库进行接触了。
数据库就像我们生活中的图书馆,里面的书架对各类书籍按照一定的规则排列方便我们查找方便,数据库的作用毋庸置疑就是将系统的一些运行数据存储管理起来。学习阶段主要是学习关系型数据库,熟练使用T-SQL语言标准。
学完数据库我们就应该使用前面学到的知识做一个完整的系统了,在做之前先熟练MVC框架原理,搭建环境时自己写好一个自己的MVC框架。
经过前面的项目,自己能够完整的开发出项目了。代码量肯定很大啦。这个时候我们来了解框架。作为一个Java软件工程师,找一份Java软件工程师的工作,连框架都不懂的话,找工作很难的。企业需要的都是能尽快上手做事情的,所以框架是我们最后一个必备知识。
Struts2/SpringMvc作为一个系统的核心框架,专门是用来管理整个系统的请求转发的。目前大部分企业对SpringMvc的应用已经流行起来,特别是struts2的几次安全漏洞事件后,SpringMvc的发展将会更加的快速。所以大家学习的时候不能忘了SpringMvc一定要学。
Spring框架能帮我们带来很多的便捷,例如JavaBean的生命周期管理、事务管理、日志管理等等。也是企业中最常用的框架!!
Hibernate/Mybatis,作为数据库层的框架,这两个框架后者目前在企业中应用更广,所以大家在学习完Hibernate框架一定要对Mybatis进行学习。
这三大类的框架组成的整合就是 SSH,SSM,将这个三个角色的框架整合在一起我们就可以搭建一个企业级的应用开发环境了。
学到这里,基本你对Java软件工程师所需具备的基本技能已经完成了,去找份Java软件工程师的工作的能力已经具备了。
当然如果还想更加具备核心竞争力那么就学学 shiro,springboot springcloud等等框架 以及docker容器等。
前面的知识算是对你找份工作的铺垫,接下来就是工作中的一些应用了,根据企业中项目的需求在以后的工作中肯定还需要应用到很多其他知识。例如,工作流、前端的其他框架、公司自己的框架、WEB应用服务器、操作系统(linux)、网络的一些基本知识等等相关扩充知识。
如果你想一起找一个圈子一堆人一起交流学习,欢迎来我创办的Java技术分享中心群:8054 4187 8 大家一起交流学习!
我也有一些积累几个T的百度云盘资料,😄,想要的进群找我就是了!
你这个厉害了,是直接copy的吧,一下就这么多蚊子
哈哈哈,这个是我自己写的,只是刚好看到你的问题直接拿过来了,欢迎加群!!!