从零基础的角度来说,每一个 JAVA 工程师都是从零基础开始学的,他们并不是生来就会 JAVA;学习 JAVA 是一个漫长且煎熬的过程,因为 JAVA 的知识点很多,而且也不是很简单,需要你们花大量时间和精力在上面。而且还需要面临一个技术不断更新的情况,在时代的变化中,主流技术的掌握也是一门持久性功课。有需要Java课程及资料的可以私信博主免费领取哦
学习 JAVA 的过程就跟在驾校考驾照类似,概念结合实际,你光会开车对交通规则一无所知也不行,光知道交通规则不会开车也不行,就是像驾校考科目一的时候,首先得了解基本的概念,有了一定的编程思想之后再进行一个实际的练习,实际的练习便是科目二科目三,最后到了面试的阶段便是科目四,熟悉一些基本的概念,再结合所学的知识向面试官展示你的才华,开始你的show time!
首先必须掌握的技术便是 JavaSE,他是学习 JAVA 的基础,就跟我们建房子一样,每一栋房子的开始都是把地基先打好,如果基础建立不牢固,那么这栋房子是经不起风吹雨打的。我们学习 JAVA 也一样,把基础打牢之后才能进行下一步的学习,才能去进阶一些 JAVA 的框架知识;最后把 JAVA 框架的知识吃透之后就可以相对应的,熟悉一个项目的基本开发流程跟项目中经常使用的技术。我们所说的框架也就跟一栋房子的基本框架一样,而我们要做的便是给框架砌砖,给墙壁装修,安装水电,提高这个框架的安全线跟可用性。也有很多人在问二次开发是什么,其实简单一点就是你的房子某个地方太旧了,或者某个地方的线路不通了,装修风格不是你想要的,然后你再对这套房子进行一个改造,以达到你入住的标准;所以二次开发便是你在别人已经搭建好了一个基本的框架之后,你再按要求对该框架进行一个改造。
那么我们在学习 JAVA 的时候应该怎么去学呢?在学习过程中肯定会遇到许多的问题,我们又该怎么去解决呢?下面来听一下作为过来人给你们的意见。
对于初学者的你来说,应该报着一个豁出去的心态把 JAVA 这门语言啃下去,事在人为要相信自己一定可以把它学好,这个过程可不是你想的这么简单,如果你想彻底而又快速的把它拿下,那就一个字:搞;每天 8 小时以上的学习时间,加上一个多动症的性格,有一分一秒不敲代码就难受的手,那么你就离成功不远了。
学习 JAVA 的路程虽然艰苦,但是他的薪资待遇却很香;在平时的代码中,一个关键字敲上去你可能就不会去管他为什么会这样写,就只知道它是 JAVA 内部规定的写法,那么这还是远远不够的,想要真正的了解它就得深入的去解刨,而不是觉得他这样能够运行出来结果就行了。
在我学习 JAVA 的时候,老师经常对我们说的一句话就是:把 JAVA 当做你的女朋友,去了解你女朋友的性格、做事风格和每一根汗毛,让它每时每刻都在你的掌控之中。如果做不到这样,说不定哪天它就跟别人跑了,自己头顶一片草,辛苦了这么久,最终还是没有看到自己的收益,然后别人努力一下便抱得美人归。
我的亲身经历,大学时期我们班有几个比较勤奋的同学,大学期间学校的各类奖项与奖励基本都是属于这几个同学,因为在大学时候的勤奋与努力,所以在大三他们就拿到了企业的 offer。
那么平时他们都是怎么去做的呢?首先他们在学校基本上不玩游戏,每天也不去图书馆,就在宿舍里面敲键盘,你敲 Q、W、E、R,别人敲的便是26个字母;你的电脑界面全是召唤师峡谷,别人的电脑界面全是英文代码;别人脑袋里面想着的是为什么会出现 bug?该如何去修复去个 bug?你的脑袋里面全是对线单杀,什么时候能够操作出一波天秀的开团;别人在期末考试的时候大吃大喝,享受“天伦之乐”,你期末考试的时候彻夜背答案,苦不堪言;别人大学论文一两天就搞定,你的毕业论文几个月都没搞定,而且搞定了还不一定能通过;别人大学毕业月薪上万,你大学毕业还在愁找不到工作;别人几年之后买车买房,你几年之后还不完的花呗借呗。这就是差距,一点一点的拉开,最后天壤之别;这就是现实,别人的努力已经换来回报,你的努力换来的是峡谷王者一千分,但是这有什么用呢?
敌人是谁,那便是 JAVA;学 JAVA 也等于上了战场,这所谓的敌人可是很强大的,当你向它开炮的时候,它也会跑出异常来给你反击,当你们经过几个月的战争,相互了解了对方的作战模式,无论敌人发出什么样的挑战你都能够应对自如,那么这位敌人便不是你的敌人,而是你的合作伙伴,且这个合作伙伴会伴随你一生,实现你们的相互利用,实现你们的互利共赢。
人生也是如此,不管你在工作、学校或者是已经成家立业,这些都将会是你的战场;工作跟每天的任务战斗、学习跟知识战斗、家庭跟经济压力战斗。所以我们不能放松自己,生活如战场,你放松了就给了别人攻击你的机会。
你们知道最强的武器是什么?没错,JAVA 就是其中之一!计算机语言多不胜数,但是为什么JAVA 能够在这么多门语言中脱颖而出呢?一部分原因是 Oracle 公司对于 JAVA 这门语言的维护升级,还有他的可用性,另一部分便是使用者。JAVA 能够给社会发展带来便利,那么社会也会给 JAVA 带来便利。我们经常听到的一句话便是万物皆可对象,这就是 JAVA 的特点,也是它的核心思想,它是一门面向对象的编程语言,不仅吸收了 C++ 的各种优点,还抛弃了C++ 里面难以理解的多继承、指针等概念;因此 JAVA 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java 可以编写桌面应用程序、Web 应用程序、分布式系统和嵌入式系统应用程序等。
996是什么呢?是的,就是朝九晚九,一周六天的意思。虽然这是上班族的话语,但是如果你在学习 Java 的时候以这个时间为标准去学习,那么足以让你成功站在 Java 之巅,这门语言会给你带来不可估量的回报,让你的生活每天都能爽翻天。不管以后创业或者赚外快,这门语言都是不错的选择,在互联网行业,Java 已经杀出了一片天,不用担心它的发展,更不用担心它会淘汰。
我们学习java的时候,最先是通过书籍和网络对这门语言进行一个简单的了解,但是反复看来看去到最后还是什么都没有学到。
下面,就以自己的亲身经历来谈一下学习的过程。
其实我是从大三开发学习 Java 的,那时就基本了解到了 JAVA 的基础知识,但是因为自己过于贪玩,迷恋网络游戏,到学起结束时也就记得个 HelloWord。到了大四,学校统一给我们安排了一个实训,说白了便是培训,就跟培训机构没什么区别,但是我们的自觉性很高,每天从早上9点到凌晨一两点,这样延续了三个多月的时间。那时我和室友们有个趣味约定,把自己掉的头发给收集起来,看谁掉的多,掉得越多表示学得就越好。
开始学习,两三百人坐在一个教室里面,每天提前一个多小时到教室抢靠前的位置,因为怕自己到时候在后面看不清楚老师在黑板上写了什么。每天的时间是上午9点到中午12点,下午2点到6点,晚上7点到10点;晚上到了规定时间教室会关门就要求必须回去休息,然而我们回到宿舍会一起讨论今天所学的知识点,相互碰撞思想,我们都希望最后大家一起找到好工作,然后实现我们大一立下一人一辆车自驾游新疆的flag。
按照每天至少10个小时的时间去学习,花了大概四个月的把所有的知识点学完,并且找到了一份实习生的工作,之后便是面临实习生被打压,然后努力崛起的辛苦场面;没有任何一个人是容易的,所有成功的人都是靠自己的辛苦跟努力换来的。
话题扯的有点远,我们开始内容,下面看看基础阶段应该学习哪些内容。
从 HelloWord 到 [‘H’,’e’, ‘l’, ‘l’,’o’] (数组)
面向对象
集合
I/O 流
线程和网络编程
JAVA学习的相关资料
对于初学者来说 JAVA 是不是难学?一张 JAVA 知识点图你们感受一下。
你要知道,IT界所有的大佬都是从零基础开始的,只不过你们走的路他们比你们先走几年而已。转行其实面临一个巨大的问题:时间。不管你是工作还是在学校,你面临的依然是时间这个问题,在学校你不仅得花时间去学自己专业的知识,还得去学习JAVA的知识;在工作你也得一边工作一边学习;在家里的你面临的却是一个学习氛围的问题。但是为什么又有这么多转行成功的人呢?
首先要做到合理安排自己的时间,既然打算转行就要做好转行所面临的巨大困难。对于一些转行的人来说,他们更希望的是找一个培训班,但是自己的时间跟资金却成了一个很大的问题;话说回来,报一个培训班学习真的比你自己学容易多了,第一,培训班有学习氛围,第二,培训班有自己的管理方式,第三,培训班会安排你们的学习时间。至于如何选择是自己个人意愿,但是身边有个人指导你学习可以让你少走很多的弯路,少花费很多的时间。
那么有人会问了,自学 JAVA 最起码要学到什么程度?我们来看如下图所示
这是应届毕业生的要求,总的来说要求算低的了,它对技术的要求不高,都是基本的一些要求。所以在学习java的时候,能够到达企业的标准便是熟悉 JavaSE,了解 JVM,然后就是使用过相应的框架做过相应的项目。
所以想要通过学习 JAVA 找到工作,那么框架是必须要会的,项目也要会做;基础的前端知识也是要会一点,不能一点都不会,比如 ajax、json 这些东西都不知道。现在常用的框架便是springMVC、spring、mybatis 和 springboot。当然一些权限认证的框架跟缓存也得学会使用,这些便是你在面试过程中的加分项。
知道一个大概的要求之后,给大家分享一个自学Java的学习路线:
1、java开发环境的准备(安装jdk)
2、Java基础语法
3、Java条件结构
4、Java循环结构
5、Java数组
6、核心面向对象
7、Java常用类库(集合)
8、IO流输入输出
9、Java多线程
10、网络编程
11、高级扩展
12、项目实战
1、使用sql建表
2、使用sql向表中插入数据
3、使用sql对数据表中的数据进行删除
4、使用sql对数据表中的数据进行修改
5、使用sql对数据表中的数据进行查询
6、联合sql语句、高级查询
7、数据库的事务
8、存储过程
9、存储引擎
1、使用java代码连接数据库
2、使用代码对数据库中的数据进行增、删、改、查
3、C3P0、Druid连接池
1、JAVAWEB
2、SpringMVC
3、Spring
4、Mybatis
5、MybatisPlus
6、Maven
7、SpringBoot
8、SpringCloud
9、SpringSession
10、SpringSecurity
11、Redis
12、Git
1、项目构建、jar包管理工具Maven
2、输出日志Log4j
3、缓存数据库Redis
4、SQL集群
5、版本管理工具Git
6、Linux服务器操作系统及常用操作
7、JVM的优化与tomcat的优化
8、IDEA的使用