JAVAJava 初学者,如何学习 Java?

JAVAJava 初学者,如何学习 Java?

更新:JAVA距离写下这个回答已经7年多了,那时候我还在读书,当时只是想分享一下学习过程中的思考,非常高兴陆陆续续还有这么多朋友能看到。也时常感叹文字的神奇,这段文字记录了我七年前的认知,却偶尔还会引发七年后朋友们的共鸣。突然回味,还会给我一种时空交...

更新:

JAVA距离写下这个回答已经7年多了,那时候我还在读书,当时只是想分享一下学习过程中的思考,非常高兴陆陆续续还有这么多朋友能看到。也时常感叹文字的神奇,这段文字记录了我七年前的认知,却偶尔还会引发七年后朋友们的共鸣。突然回味,还会给我一种时空交错的幻觉。

虽七年有余,我觉得当年的分享依然适用,没有过时。我不想太多的修改回答的内容,尽量保持他的原样,但经过这几年的实践,我的思考会更加的完善。

断更几年,我一直在路上,也一直在思考,还是觉得自学完全JAVA可以有出路,只是时间和毅力的问题,而我将继续用我有限的经验,帮助大家找到适用于自己的入门方法。而这次是从计算机编程的角度出发,不仅仅局限于java。

在接下来的日子里,我会继续跟大家交流这些年我有限的经验和思考。欢迎新老朋友多多交流。私信我加个人。

—————————————–

作为一名Java的完全自学者。我来说说吧,希望能给大家带来点帮助,如果有不同意见的大家一起来讨论,总之,希望大家可以共同进步。。废话不多说了。。进去正题。。

学习Java呢如果你学过别的面向对象的语言那么通过类比我觉得你一JAVA定学起来比较轻松,当然了我们这里就从什么语言没学过的小白说起。。

首先来给大家推荐几本参考书。

ONE:

删了之前推荐的书,每个人适合的学习材料不同。

TWO:

在读上面两本书的同时我建议你多看点网上的视频,网易公开课计算机体系里的Java教学,慕课网里的教学。

我想说的是这些视频最好是主看一个老师的(是主哦,也就是主要跟着一个老师的思路和顺序走,其他老师的作为不同角度的掌握),假设这个老师是A,听完课后如果觉得A讲的这节你不是很懂,那么一定要去看B老师讲的这节的内容,如JAVA果还不懂那就看C讲的的这节,D,E,F老师同理。。*****强烈建议!!!!看视频一定要做笔记!!!不然看了也白看,除非你有过目不忘的才能。。******

THREE:

硬件的东西说完了接下来我们就来聊聊方法,首先Java是一门语言,然后语言是用来和计算机沟通实现一定的功能,也就是说,语言是为需求而生滴。。所以你必须先有一个需求,比如你想用Java编写一个小游戏,那么你的初级阶段的学习就该是为了实现这个目标不断奋斗,兴趣使然嘛这样你就不会觉得累枯燥

(当初我学Java就有一个。。。特别奇怪的开始,记得那是一个夜黑风高的寒假,我JAVA姑姑家有一家店门相当于超市吧,啥都卖,过年特别忙,于是乎我被拉去当苦力,摆在我面前的是。。有无数程序的结账抄写过程,需要人力暴力操作。。我受不了了,开学我就开始学JavaAWT和SWING编程,第二个假期回家编了个界面程序给它,量身定做解决他的一切需求)额,说了这么多我只是想说要有明确的目标知道你要干啥,在干啥。。

FOUR:

学习初期你肯定会有千千万万个问题,心里有无数疑惑,这时候千万不要急躁,不要放弃。。解决方法应该是,有疑惑尽量请教别人,如果你觉得怕麻烦别人,那么请你去翻书,我建JAVA议不懂的地方要多看几本书的这个知识点,因为老师不同讲解的思路角度也不同,就像买鞋,一定有一款适合你。。如果你懒到书都不想翻,那么没关系,你就把这点疑惑完全的一字不落背下来。。多思考,有那么一天,往后走着走着你就会发现前面豁然开朗。。

FIVE:

最后也是最重要的一个就是代码量。。一定要多敲,不要眼高手低。。往往敲代码的时候你才可以发现问题。。我始终相信一句话,泪水和汗水这类东西,如果你流多了上天它自然会给予你一些东西来作为交换的礼物。。贵在坚持,忘记了在哪里看JAVA到的一句话,如果你的耐力和野心不相匹配,那么你最多也就是一个笑话。

额,我知道的只有这些了,说了这么多答主也每天在学习,希望大家一起讨论,说的不准确的多多包涵。。感谢看到这儿的人,费着这么大的劲读完,大家辛苦了。。。原谅答主语文不算特别好。。大家加油,为做一个充满幸福感的码农奋斗,。

如果是0基础学java,先搞明白要做什么?

java现在可以写j2ee,也可以写android。

弄web,首先搞明白,是做企业应用还是互联网应用,技术也有区别。

先从最简单的java语法学,不必说。然后就写web程序吧,从servlet,filter,jsp写。

然后开始框架,springmvc ,spring,hibernate,mybatis,尝试自JAVA己搭框架写点应用(这种书很多)

基础了解后,看看springside,很有名气,现在版本是4(我个人一直认为版本1的文档是最精致的,方便深入了解框架背后),跟自己搭建的比较下,重构之前写的应用。(该看看业界最有名气martin的《重构》一书)

此处有更多的框架要了解,比如logback、sitemesh,freemarker等等,还有maven(最好的情况自然是用git,吧应用部署到github上,用travis-ci进行持续构建),单元测试、功能测试,持续集成等。

阅读源码是其中很重要的,推荐看老外的吧,我在做项目的时候吧cas1,cas2,cas3版本的源码全部读了,很有收获,项目中的部分功能在版本2的基础上改写的,远在cas3支持之前。

别忘了去iteye转转,看看robbin以前写的java系列文章。

JAVA以上这些工作中就基本够用了。深入的知识看点赞数再写吧。

请完全零基础,电脑操作只会开关机的朋友看这里!!!经过半年的迷茫和折腾,我才渐渐明白,知乎大V给的建议,或许真的很有用,但对于还没入门的我们并不适合…对于现在零基础的我们,可能零基础自学、摸着石子过河最终到达彼岸的朋友的建议更有用。

经过痛苦的迷茫期(各种找资料,看书还是看视频,下一步学什么?等等),我今晚觉得自己稍微有点安慰,好像似乎能看到点希望。

JAVA个回答只是想帮助和我一样迷茫的零基础朋友,如果我走在你们前面,我可以做探路人,希望你们不要浪费时间在找资料上。

++++++++++++++++++++++++++++++

我15年毕业,大学日语专业。16年9月18日开始决定学编程。

【1,启蒙阶段】

同样地,花了3天经历了入门语言选python还是C的纠结后,我最终选择看郝斌老师的C语言视频入门。具体学习方法看我的另一个回答,希望对你有帮助:零基础学计算机? – 知乎

这个阶段与其说学C,不如说懂一些基本的编程知识,比如:循环结构,数组,简单的内存分配原理,指针概念等。郝斌老师的C语言视频,对小白非常友好,JAVA启蒙教育做得很好!

如果时间不是很宽裕,可以直接从下面的javaSE视频开始,看自己能否接受。

如果时间比较宽裕,喜欢循序渐进,培养兴趣了解一些计算机知识,那么可以看看。

我个人觉得郝斌老师讲课很有魅力,我喜欢听他唠嗑。像一位好朋友娓娓道来。

<看完视频一定要敲代码>

学习C语言时,一个视频看完,里面老师敲的示例自己觉得没把握的,一定要敲一遍(脱离视频自己敲)。IDE一开始就安装好,方便看完就敲。推荐Dev C++。

我记得,2016年10月下旬,经过一个月努力(每天下班三小时),我把C语言视频看完了(部分视JAVA频可以用影音加速播放),然后花了一个半月把绍兴文理学院在线判题系统上的100道初级C语言题目做完了,至此基本的循环语句,条件判断还有数组就很熟练了。

在线判题的代码建议用Dev C++在本地写好,复制粘贴过去。上面的小题目,让我敲得不亦乐乎,忘了上一天班的疲惫。至此,编程学习启蒙阶段结束!

【2,javaSE基础】

12月下旬我我开始了javaSE的学习。网上看了一大堆推荐,知乎也反复看别人的回答,最终选了传智播客《毕向东java基础视频25天》。前四天很简单,都是C里面学过的知识点,比如数组,所以基本2倍速,每天看1天视频。第5天,JAVA开始讲面向对象。挺激动的,因为学C时郝斌老师有提过面向对象,觉得很神秘。但遗憾的是,初次接触面向对象,看得我全场懵逼,头皮发麻,完全云里雾里。最后索性自暴自弃,不看了。那时刚好又准备离职,过年在家什么都没做,白白浪费近两个月。等3月份来到杭州找到工作,又重新开始学习毕老师的25天视频时,发现竟然连C的部分内容也生疏了….所以,学习千万不要断。

毕老师的25天视频,思路清晰,语言幽默,每个知识点掰开了揉碎了喂给你,非常适合初学小白。毕老师讲课的魅力在于,让小JAVA白能听得进去,不枯燥,甚至觉得很有意思!自己也很喜欢他的讲课风格。但零基础的各位可能会和我当时一样,看到第五天时完全懵逼。因为对于零基础初学者,Java还是挺难的。

后来发现毕老师还有其他版本的视频,相比25天版调整了部分知识点讲解顺序。但是,但是…听了刘意老师的视频后,觉得刘意老师的风格也很不错!思路非常清晰,语言简短直接。也是我现在最推荐的javaSE视频教程。反而毕老师有些知识点的讲解有点绕。但毕老师很多地方之所以听起来绕,是因为真的太照顾初学者了。算是为JAVA了初学者做出的让步吧。

完全零基础的朋友,建议先看毕老师的,再看刘意老师的。放心,完全零基础的朋友,一遍肯定学不会。所以看两遍都算少了。

有一点基础的朋友,建议可以直接看刘意老师的。觉得有点偏难的话,可以会过来看毕老师的。

具体建议后面会给出。

<对零基础学习者的建议>

0,看视频学习,不要看书学习。我自己是日语专业的,此前完全没有接触过编程,对编程是完全没概念的。知乎上很多人都说看视频慢,建议直接看优秀的书籍,所以我就买了C语言的一些书和java的一些书(都是初学入门的),JAVA但都看不懂,看不下去。反而是后期跟着视频学习一段时间后,再翻开书本,慢慢能知道书里在讲什么了。大家千万不要觉得看视频会显得自己学习能力不够强。实际上,大学选择计算机专业的同学,又有多少比例是不靠老师上课,自己躲图书馆把编程学会的呢?从这个角度来说,看视频相当于大学课堂听课。并没什么不妥。

1,不懂的知识点视频多看几遍,如果视频有配套笔记,第二天起来复习一遍,加深印象。自己也可用word做笔记,写学习日志。javaSE初期建议用最简单的EditPlus或UltraEdit敲代码,顺便掌握最简单的dos命令(cd.. cd javac java差不多了)。javaSE中后期,JAVA立即跟着视频换Eclipse,赶紧熟练工具的使用。javaSE有不懂的,可以百度或谷歌,看看别人的技术博客。再回过头看视频可能就突然明白了。因为我也这么试过,对我帮助很大,希望你也能试试。

2,根据视频内容画思维导图!根据视频内容画思维导图!根据视频内容画思维导图!

强烈推荐这个方法。我建议思维导图画两个版本:

初版——记录视频讲解思路和各个知识点,尽量详细。

再版——自己试着回忆,把最核心的知识点提取出来。

画思维导图的好处在我看来至少有两个:

①理清讲解思路,让JAVA自己有全局观。初学java,肯定会被它漫长的学习路线吓到。如果只是看看视频,不反刍每个知识点的话,过一段时间就会忘光,根本不知道那些知识点是在哪一张,甚至忘了自己学过没有!这是我沉痛的教训,不知道浪费了多少时间!

②方便日后复习,以及遗忘时的检索回忆。

下面是我的思维导图截图(windows可以使用Xmind)

思维导图要自己做,自己看,效果最好。看别人的基本没效果。

3,实在不行的话,买本传智播客的《java基础入门》,它只讲对零基础学习者来说最基础最需要的知识。其他的书本,包括知乎上推荐的《head first java》,《疯狂java讲义》,《java核心技术》JAVA都不太适合现阶段的我们。太厚,知识点太详细。要知道,我们现在刚学完C,才了解编程的循环语句而已。再怎么好的入门书籍,它对受众也是有一定要求的。而这个阶段的我们,就像小婴儿,即使给我们一辆带辅助轮的自行车,我们也骑不了…我买过一本《疯狂java讲义》,就翻了几次。看着密密麻麻完全不熟悉的知识点,很烦躁很焦虑。当然,我不是说看书不好,只是本阶段不推荐。至少我学完崔老师的javaweb,到目前为止,从书本上学到的可能就占了0.5%。几乎完全是靠视频学来的。而且视频也有源码和笔记,JAVA已经很方便。

对零基础的学习者老说,javaSE的学习非常困难,因为完全白纸一张。你会有无数疑问,会经历无数次沮丧,无数次想放弃,无数次怀疑自己的智商。比如我,学了一个多月才学到毕老师的异常一章。之前在面向对象一章就已经很崩溃,哪知异常也这么抽象,完全不知道它是干嘛的….但千万不要放弃学习,也不要停下进度。可以多看几遍或者先往后看,到时候再回过头来学习。

<javaSE哪些是重点?>

我相信很多人都会有这个想法,根本原因是知识点真的太多了,有些暂时可以不学的,会想跳过。其实javaSE全是重点,JAVA培训班本身就是帮我们筛选掉不重要的知识点了。以刘意老师视频为例,面向对象(封装,继承,多态),异常,多线程,集合框架,IO,网络编程都挺难的。其中面向对象是javaSE的重中之重,里面的知识点个人认为是最难的。后面的知识点都是建立在这之上展开的,没学好面向对象,后面就会稀里糊涂。

按照后面javaweb的学习来看:

面向对象是基石,javaSE中最重要的一是集合,二是IO,希望大家学习这两个知识点时认真对待,多敲代码,多思考。

常用API里,String及其相关类StringBuilder, StringBuffer等必须熟悉,后面会不断用到。不学好的话,后面怎JAVA么死都不知道!

泛型一般只出现在集合中,个人觉得如果一时无法掌握,那么会集合存储和遍历时用泛型就行了。

反射对于初学者老说是非常抽象的!!但它又无比重要。它虽然不是JavaSE的重点,但是它是JavaWeb很多难点的底层支撑,不懂反射,寸步难行。感到困惑时可以参考我的反射思维导图,完全是初学者不专业的解释。链接: 密码:lgq3windows下载XMind软件打开。

多线程,集合框架,IO和反射都很难,其中IO又因为东西太多,个人觉得是最难的。

GUI,网络编程可以先过一遍。不用纠缠。起码在后面教程都用不上。

异常可以先了解下,我JAVA目前也没怎么懂。

>重点

面向对象☆☆☆☆☆

集合☆☆☆☆☆

IO☆☆☆☆☆

String/StringBuffer/StringBuilder☆☆☆☆☆

反射 ☆☆☆☆☆

泛型☆☆☆☆

>熟悉

异常,多线程

>先过一遍

GUI,网络编程,正则表达式

【3,javaSE之后干嘛】

学完JavaSE后,就是JavaWeb的学习了。

我当时学完毕老师的25天后,迷茫了很久…根本不知道下一步怎么走,该看谁的视频好一点。后来才知道毕老师原来还有35天、30天、33天版的java基础视频。但我已经没时间全部看一遍了,也没必要。

>区别

25天版(2011年录制)

声音清晰,但没有讲反射,没有HTML,CSS, JavaScript,DOM

35天版(2012年,号称史上最适合初学者)

声音不是很清晰,相比25JAVA天版多了反射,HTML,CSS, JavaScript,DOM

30天版(2013年6月)

声音清晰,相比25天版多了反射,HTML,CSS, JavaScript,DOM

33天版(2013年10月,最新)

声音清晰,相比25天版多了反射,HTML,CSS, JavaScript,DOM

每个机构的路线都有点不一样,比如尚硅谷,动力节点等…我觉得如果选择一家培训机构的视频,就看他们全套的。因为知识点安排和讲课风格会大体接近,比较熟悉。上面的这么多版本,我本来不打算给出,但怕有些同学有收集癖。但真的没必要把每个版本看一遍,非常浪费时间。我也只看过毕老师25天版本全部、30天版的多线程和刘意老师的JavaSE。

毕老师30天的视频最后有简单地讲解HTML CSS JavaScript和DOM,可以给我们一个基本概念。学完JavaSE后,崔希凡老师的javaweb刚开始也会讲HTML CSS JavaScript和DOM,而且更全面更详细。讲课风格很朴实,很清晰。JAVA相信大家也会习惯并喜欢他。

前端三剑客,对于我们零基础,只看毕老师的视频是根本没法掌握的,但毕老师讲解后有了大概框架后,再看崔老师的javaweb中的前端视频会吸收得更好。

建议学完HTML就马上做一个小页面,巩固下标签的知识。HTML是三剑客里最基础的,必须掌握常用的标签。我学完HTML立马做了一个黄色网页(额,我比较不正经…):

<JavaWeb哪些是重点?>

首先,学习html和css后记得做一个小案例,快速熟悉标签使用。这里是我写的黄色网页代码,仅供参考:链接: 密码:29dw《激情六月天》

学习js的dom操作时,留个心眼,多关注。JAVA这个学好了,后面的xml也有非常类似的语法,也是dom操作。js的dom学好了对学习xml的dom操作会有帮助。重点是xml的dom。

dom4j重点练习。试着自己封装一个小工具。

JavaWeb的反射就当复习,好好学。

tomcat一定要跟着视频配置一遍。光看视频是记不住的!!

servlet超级重要,多看几遍,看一遍我敢打赌你会晕。东西太多了。建议做一下思维导图。理清知识点。

request和response以及JSP超级重要,也很难。多看几遍,不要心急。request域超级重要。

cookie和session超级重要。多看几遍,不要心急。session域超级重要。

day12-13,老实说,我只记得${EL表达式},知道怎么导入标签库<%@…>。其他的都忘了。

day14一定要跟着敲,因为后面的JAVA小案例都是在这个上面扩展。这个不敲,后面的敲不了!

day15-19算一个小周期。都是数据库操作。还是那句话,跟着敲,才记得住。不敲你肯定记不住,真的。

相比servlet,感觉监听器和过滤不是很重要,老师有点一带而过的感觉。

上传下载和JavaMail挺复杂的。我反正第一次没掌握,用到查吧…但这些后面的项目会用到。

ajax,很难。

综合练习,一定要敲,即使你觉得很难,也要硬着头皮敲完。敲完以后,自信心暴涨,那时你自己对javaweb那些知识点是重要的哪些是次要就会有自己的理解。重要的知识点,在你心里沉淀出来。就是这么神奇!!

最后JAVA的基础加强,收获也很大。直接提升到另一个境界。为学习框架做铺垫。也算崔老师的道别礼物。

最后,这是我学习时做的思维导图,有些做得很差,做到一半就放弃的也有。

链接: 密码:4310《思维导图》

有疑惑可以看看,没准能帮到你。但记得,不要先看我的。一来,我也是初学者,会有理解偏差。二来,不希望我的笔记让你先入为主,这很危险。

(17年5月中旬,学完毕老师的25天教程,非常照顾小白,讲得非常生动有趣。我竟然有种看电影,很享受的感觉…但JavaSE终究太难,学完之后还是有点懵。这时阅读到林琪老师的答案,很受鼓舞。JAVA里面的视频很优质。刘意老师的JavaSE和崔希凡老师的JavaWeb简直神作!于是5月17晚连夜写了这个答案。希望让更多像我这样的小白得到帮助。断断续续的,今天我终于学习完崔老师的JavaWeb视频了。十分感慨。又来重新编辑。希望对正在阅读此答案的你有帮助。加油。

再次编辑于 2017-10-4 23:21:25)

======================================

学习路线建议(按传智播客黑马程序员来)

1,javaSE:

毕向东30天版(小白人生导师,强烈推荐)

刘意JavaSE(2014年年底录制,强烈推荐)

(毕向东javaSE25天版由于有点老了,整个解说都没用eclipse,不利于小白掌握eclipse使用。但内容真心不错。我自己看的是25天版本。毕老师的30天版里的多线程比25JAVA天版本讲得好,也讲了前端知识。)

2,javaweb:崔希凡——超全面的javaweb视频(强烈推荐)

3,ssh框架了解:崔希凡Struts2 + 刘悦东就业班(32期)ssh框架 + 黑马SSH框架2016版

可以按以下顺序:

崔希凡Struts2

刘悦东struts2

刘悦东hibernate

hibernate2016

黑马19期spring(梁桐)

spring2016

学有余力,可以看看汤阳光老师的:

Hibernate:

Spring:

OA项目:

4,工具:

链接: 密码:ssyl

5,学习方法:

小白自学的难点在于:1,找不到合适的资料。2,不知道学习重点。

资料我已经放这了,是个人认为最适合小白的教程。ssh框架由于现在用得不多了,我找过很多传智播客的视频,觉得讲得都不是很好。黑马32期中刘悦东老师讲得还挺好的,起码听起来很舒服。视频也足够新,2016年年底的,JAVA作为了解很足够了。我另外提供了崔希凡老师的Struts2视频,为了能让刚学完JavaWeb的同学习惯。至于学习方法,即使我这篇文章给出了重点,可能你们还是不会相信。所以我建议:不要想着彻底掌握一块知识点再去学下一块知识点,这样永远不可能把这一套视频学好。你应该用最快的时间完整过一遍,对整体学习路线有个把握。第一次学习争取每个知识点懂个50-60%,从后面的内容判断前面哪些知识点是重要的,常用的。然后回过头来有重点突出的攻克,抓大放小。

其他的跟着视频就好。JAVA前期用记事本工具,我用的是UltraEdit,你也可以用EditPlus。后期用MyEclipse,其实就是多了插件的eclipse。要尽快熟悉MyEclipse的各种快捷键。

伸手党和白痴太多,答案里全部都说过的问题还重复问,一气之下链接都删了。

大家直接淘宝吧,9块全套就业班视频。

在10月4日结束JavaWeb后,经历国庆长假和迷茫(各种找资料),耽误了好多时间。网上虽然很多就业班的视频,但感觉都讲得很差。尤其Struts2,感觉都讲不到点子上。看完崔老师的JavaWeb,觉得很棒。本能地想继续看他的框架视频。于是网上找了很久。最终在贴吧发现有个朋友有他的视频,但只给出了第一天JAVA和最后两天的练习视频。即使这样,第一天的讲解已经比其他Struts2视频好太多,非常清晰易懂。今天终于联系上那位贴吧朋友,得到了Struts2视频。另外听说汤阳光老师的Hibernate和OA项目很不错,就连同Spring一起下载了。接下来会学习这些视频。不过现在SSH已经用的不多,做了解吧。时间应该更多地花在SSM,也就是Spring和SpringMVC上。2017-10-21 11:03:11

===========================================

总的路线,大家可以参考林其老师的,我也是看了他的回答而受益的:

JavaSE推荐先看毕老师,再看刘意老师。其中,毕老师30天版本的多线程讲的比25天好。

第一阶段路线说是有包含MySQL数据库,JDBC,DBUtils,DBCP连接池的内容,实际上给出的JAVA视频都只讲javaSE,这些内容在第二阶段javaweb入门里。

第二阶段javaweb学习建议从崔老师的视频入手,对零基础刚学完javaSE的同学,方立勋老师的视频深度可能接受不了。而且方老师的视频直接从XML开始,没有复习html css JavaScript和DOM操作。没学过DOM,直接学XML解析会懵逼。谨记….

Java 学习线路图是怎样的? – 知乎

作者:林其链接:来源:知乎著作权归作者所有,转载请联系作者获得授权。

最后谢谢林其老师

@林其的路线,也非常感谢传智播客。谢谢郝斌老师。不管我最终有没有学出来!

送上两个网页,很有用,大家自己看看。

1,Java学习路线图_黑马Java学习路线图

2,2017Java学习路线图,内附完整JavaJAVA自学视频教程+工具经验+面…-黑马程序员IT技术论坛 – Powered by Discuz!

也欢迎和我一样零基础的朋友来和我交流。

2017-5-21

++++++++++++++++++++++++++++

早上起来,发现毕老师微博回复我了…虽然毕老师未必觉得自己是名人,但还是好开心。

2017年06月07日 09:12:03

++++++++++++++++++++++++++++

bravo1988:零基础Java学习路线2.0版(持续更新…)349 赞同 · 64 评论文章

正在学习 Java,刚整理完自己的学习笔记,索性就答答吧。

本回答只针对“如何学习 Java”,即学习 Java 语言本身来聊聊,至于 Java 的应用,不在探讨范围,对于语法都不懂的初学者,讲了也是徒添困惑。

自身经历:很早就接触 Java 了,大三上过学校 Java 课,很水,讲讲语法而已。期间JAVA断断续续在搞别的,所以学习周期看起来有点长,目前研一,熟练掌握 Java SE 了。我觉得我走了一些弯路,这里说一说我认为的正确的学习方法吧.

我觉得学习最重要的是两点:

1.学习步骤/方法;

2.学习资源。

我的回答也主要围绕这两点。

首先应该对自己的水平有个大致评估,对自己的学习习惯有基本了解。这决定了你以何种方式学习何种资料。

举个例子,我当时的水平是熟悉编程语法,我觉得我水平应该去深钻了(高估了自己),所以去看Java 编程领域圣经级的《Java 编程思想》(错估了自己的学习习惯,选择了看书),JAVA结果用空闲时间两个月囫囵吞枣看完了,感觉啥都没记住。

所以,楼主如果是零基础,就看些入门的书,比如前面回答的《Head First Java》、《Java 疯狂讲义》,都是适合入门的,不要听一些装逼的动不动甩一本《Java 编程思想》,对这个语言都不熟悉时就看,根本没大作用。需要提醒一点的是,看书的时候最好看完自己敲一遍示例,不要觉得简单,不信试试,一定会出各种各样的问题,解决这些问题 -> 加深记忆。

如果熟悉了基本语法,建议看看张孝祥的 Java 高新技术以及多线程这两部分的视频,网上搜搜资源。虽然然视频很早了,还是 Java4~Java5 的版本,JAVA但核心技术和思想都讲的不错。我看了觉得效果不错(可能和我学习习惯适合看视频有关系吧),学习的过程中最好记笔记,好记性不如烂笔头,多验证自己的想法。比如我就整理了自己的学习笔记

brianway/java-learning

,有兴趣可以参考。

看完了之后,你就会发现 Java SE 其实就是语法和一些 API,熟知熟用即可。除了基本的面向对象(封装、继承、多态)外,Java 自己核心的一些包和技术无非是:集合,泛型,IO,多线程,类加载机制,反射,代理。掌握这些,Java 就算入门了。

PS: 等到了这一步,基本就可以试着用 Java 写一些小程序练手了,有兴趣的话可以选 Android/Java Web JAVA方向之一开始试着做一些入门的小项目,这个就不展开了,我们继续说说 Java 怎么继续进阶。

在熟悉了有大致的知识框架后,可以选择性的深钻,查漏补缺,比如想深入多线程就可以看看《Java 并发编程实战》。也可以查阅《Java 编程思想》或者《Effective Java》等书,至于 Java虚拟机等更底层的知识,可以看看周志明的《深入理解 Java 虚拟机:JVM 高级特性与最佳实践 》,看完会拍大腿赞叹写的好!

总结一下

1.找到适合自己的学习方式:看书为主/看视频为主/自己捣鼓小功能为主

2.找到适合自己现阶段的学习资料。

我前文提到的资料由浅入深有:

入门:《Head First java》,《Java 疯狂讲义》

进阶:张孝祥的 Java 高新技术,Java JAVA多线程视频

高阶:《Java 编程思想》,《Effective Java》,《深入理解 Java 虚拟机:JVM 高级特性与最佳实践 》(周志明),《 Java 并发编程实战》

附上

– 我的个人博客:

Brians Personal Website

– 我的整理的学习笔记(没错,骗star的):

brianway/java-learning

– 我的CSDN:

brianway

– 我的oschina:

brianway的个人空间

系统的学习Java,可以按照这条路径走:Java研发工程师首先完成 Java基础、JDK、JDBC、正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习,学习过程中穿插着完成一些练手项目,比如用Java实现日记本、个人相册、编辑器、通讯录等,在做项目的过程中查漏补缺,对Java基础会有更好的理解,后面可以学习下 SSH 项目以及Java Web应用开发。学JAVA编程最重要的是动手练习,下面是推荐的基础教程和小项目,都搭配有配套练习环境。(建议PC端访问,可以边看教程边在线练)

Java基础部分1. Java 编程语言基础介绍 Java 基本语法、Java 平台应用、 Java 的核心概念:JVM、JDK、JRE以及 java 面向对象思想,同时会学到如何在系统中搭建 Java 开发环境,以及如何利用第三方工具进行 Java 程序的开发。2. Java – Java进阶之设计模式介绍常用的设计模式以及 Java 语言的实现实例来学习 java 设计模式。从中我们可以学习到很多类型的设计模式,其中包括工厂模式、抽象工厂模式、单例模式、适配器模式、观察者模式、装饰者模式等等。3. Java – JDK 核心 API学习包括 java.lang 包,java.util 包, JAVA包以及泛型的相关知识4. SQL – MySQL基础课程该教程实验内容从MySQL的安装开始,介绍了MySQL基础、常用的操作,内容较为简单,如果想要更深入地学习SQL,请学习实验楼其他相关课程。5. Linux – 正则表达式基础在Linux Shell环境中学习正则表达式基本概念,并实践如何使用正则表达式对文本字符串进行处理。6. Java – JDBC 入门教程本实验通过学习 JDBC 定义和架构,回顾 SQL 语法,搭建 JDBC 的环境,通过实例来深入学习 JDBC。从中我们将学习到如何用 java 连接到数据库,并练习编写了一个信息管理的程序,在此基础上可以提高自己的数据JAVA库管理能力。7. Java – Java 8 新特性指南Java 8是近年来一个Java编程语言发行版本,由Oracle 2014年3月发布。该版本为Java带来许多新特性,是一个具有重大改变的版本。 本教程适用于Java初学者或者是具有一定编程经验的开发者,学习该课为自己的技能升级打补丁。8. Java – J2SE核心开发实战java基础的进阶课程,主要讲解IO、Util等常用类库的使用、Swing图形化编程、多线程编程等知识点。Java SSH框架1. Java – Struts框架教程Struts 是Apache软件基金会(ASF)赞助的一个开源项目。通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式。2. Java – Hibernate框架教程Hibernate是一个开源的对象关系映射框架,对JDBCJAVA进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合。3. Java – Spring框架入门教程(新版)Spring是一个于 2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建,作为一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架,框架的主要优势之一就是其分层架构。4 Java – SSH 框架应用实例SSH(Spring + Struts + Hibernate)集成框架应用项目课,它是应用十分广泛的一种 Java Web 应用程序开发框架。

Java 练手项目推荐

1. Java – Java开发简单的计算器

使用 Java 语言完成了一个简单的计算器。将使用到 Java Swing 图形组件等等。

2. Java – Java实现记事本

本实验将主要讲解如何使用Java语言编写一个记事本应用,涉及到Swing界面编程、文件读写等知识点。

3. Java – 自己的Java编辑器

本项目使用 Eclipse 开发,配合 Java 语言完成一个 Java 编辑器。它的主要功能:1、Java代码的编辑 2、编译及运行Java程序。

4. Java – Java实现电子通讯录

采用简单的 MVC 框架开发一个 Java Web 通讯录应用,学习并实践如何使用 Vaadin 实现界面,及使用 Eclipse 进行 Java Web 开发的基本流程。此外涉及基本知识点知识点:Java容器,Java同步,异常处理。

原文链接:https://www.fogwhale.cn/?p=202,转载请注明出处。

0
分享海报

评论0

站点公告

雾鲸自营支付系统

易支付费率低至3%yzf.fogwhale.cn

码支付限时免费对接使用mzf.fogwhale.cn

显示验证码
没有账号? 注册  忘记密码?

社交账号快速登录