Java基础——自学java之路

java编程自学教程(超详细版) JDBC是 Java平台上最重要的技术,是 Java平台的核心技术。JDBC以面向对象思想设计和实现的,它能够把 Java程序和数据库连接起来。JDBC提供了丰富的 SQL语句和数据源接口,它也是连接 Java程序与数据库的桥梁。: SQL语句, SQL查询,优化,多表连接与表的操作, JDBC数据库操作。: Java类、对象、继承、多态、封装、抽象类、接口、继承与多态。: JSP编程和 Servlet编程的概念、特征以及相关技术等。:异常的概念,异常的定义,处理方法。5阶段Java大厂提升技术。 阅读详情

前段时间逛论坛,总会有很多新手很迷茫,问到:到底该怎么学好Java,这个问题很重要,尤其对于像我们这样大多数都是靠自学的人来说,找到一个好的学习方法至关重要!于是乎,我就给大家回答了很多,突然间想到了很久以前,看过的马士兵老师的一篇关于Java自学之路的文章,于是在网上找了找,结果找到了,马士兵老师的视频,是我目前最为推崇的Java学习视频,虽然还有很多,如张孝祥、黎活明、李兴华老师等,他们的都很好,本人曾经都看过,李兴华老师的基础视频,黎活明老师的EJB,都是经典!但是本人强烈推荐老马的(尽管老马有时讲的实在是太细,连他自己都说之前的80%,都可以忘记...甚至:接下来的你可以不听...<此处省略N个字>),为什么相信马士兵老师?

1、马士兵老师有多年的开发经验,十几个大型项目经验(百度百科有介绍)。

2、老马比较幽默,很多的时候听着都能让人大笑(经典语录:1、豆芽长得再高,它也是颗菜!我想怎么吃,就怎么吃!2、你是生长在石器时代的人吗?...你是生长在...)。

3、老马的普通话比较标准,听着舒服,清华的苗子,霸气侧漏!

4、学技术的同时,能学到很多道理。(1、给你一辆自行车,先骑着,再去研究它的原理。2、三流公司卖产品,二流公司卖服务,一流公司卖标准)

5、老马讲课有一个非常完整的word文档,上面明确写了讲课内容,重要程度,而且他会在讲课的过程中明确哪个是重点,哪个不是重点,这样我们就可以有选择性的学习。举个例子,比如说讲到spring框架的时候,其实每个框架都希望开发者用自己来实现所有的功能,所以像spring它也提供自己的MVC,也提供包括持久层、View层的实现,但事实是持久层和view层我们大多时候会选择其他的框架来做,如hibernate、ibatis、struts等,所以,对于spring来说,其它方面就不能说成是重点(当然你要全面学习spring,这些你都应该学好)。不过老师给你讲明白这些后,怎么学习,看你了。

当然,这只是我的个人建议,大家可以自己选择喜欢的老师。本章系Java之美[从菜鸟到高手演变]之Java学习方法。希望广大学子能尽早找到适合自己的学习方法,早日打开技术的大门,学好技术,创造未来!

在阅读过程中有任何问题,请及时联系:egg。

邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef

如有转载,请说明出处:http://blog.youkuaiyun.com/zhangerqing

 

以下文章来自尚学堂官网,经本人整理,不过有些链接已经打不开了,不过,想得到上面的资源的话,自己去尚学堂的官网(http://www.bjsxt.com)找就行了。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 一:学会选择

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html]

为了就业,不少同学参加各种各样的培训。

决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。

那么究竟应该选择什么方向呢?

我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。 每个培训机构都会宣传自己的好处,并不能说明大的趋势。一些新闻文章很有可能是枪手写的,不必太过相信。国外背景的教师和课程,未必适合你。

那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出一条路?

我讲一个通过招聘网站的观察方法。

可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如:

http://www.51job.com

http://www.chinahr.com

http://www.zhaopin.com

以及csdn的招聘频道等

还有一个网站也不错,http://www.jobui.com,综合了各大招聘网站的数据。

这些数据都是最真实不掺假的原始数据,你可以每隔一段时间搜索一次,一些规律就会被总结出来了。

比如说我在http://www.jobui.com中搜索java,全国大概提供了3万个职位。

然后要多翻几页,这样不仅能够看清楚大概有多少是有效的职位,而且还可以看清楚用人单位最关心的技能是什么,这个很重要,决定着你将来要花多少时间和精力在特定的知识点上,比如说swing,搜了一下,全国只有700个左右的职位,仔细读了一下,也并非全是有效的职位,花太多时间和精力在这个上面就不值得了,当然自己感兴趣或者为了研究的话另当别论。不过如果是为了快速的就业,把太多时间和精力花在很多职业生涯的前一、二年用不到的知识上就太可惜了。

同时,并非某一个行业的职位数目少,就不能当作一个方向进行选择,比如.NET,我搜索到的职位数是1.6万左右,比java少,是不是就选java了呢?不一定,因为java职位虽然多,但是可能竞争者可能也多,有些方向虽然职位数不多,但是和你竞争这些职位的人数量也少,不见得就不能选择。

 

不过,如果某一个方向的职位数目过少,你可就要小心了,选择这样的方向风险会非常大,如J2ME。我个人觉得java/J2EE、.net、嵌入式开发是不错的三个方向。

如果非要在java和.net中选择的话,我个人是推荐java的,原因:

1:Java能够开发linux、unix服务器上的程序

2:JavaEE和.NET在企业应用方面的关注点是差不多的,但是学习了java如果将来想转到.net上会比较简单,几天的学习然后上手开发应该是问题不大的,但是反之就不行了。

当然如果有了些经验之后,你就会发现语言或者平台不再是技术上的阻碍,一些原理性的东西学到手,然后再加上项目经验,使用什么平台,反而不是最重要的。不过如果非要用一种平台进入企业开发的领域,至少在目前,2007年9月,我推荐java。

完全可以不同意我的观点,但是无庸置疑,如果是为了就业,多到招聘网站阅读阅读职位的信息,对你将来的方向和学习是大有益处的。选择是最痛苦的,看看《天生购物狂》中的刘青云就知道了,不过既然无法逃避,就作出自己的选择吧。每个人都会受到别人的影响,在作出决定之前,要想尽各种办法让自己理性一些吧。这样,你的选择会离正确的方向更近一些。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 二:JAVA自学路线图

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_2.html]

有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。我试着给出自己的见解,抛砖引玉吧。

这个路线图是给那些为了就业的人准备的,如果只是兴趣,不一定照这个走。

这里只是讲了路线图,关于路线中的各个阶段,学到什么程度,如何学习等,可以参考后面的JAVA自学之路七:《路线图明细》。

首先要学JavaSE,这是无庸置疑的。

与此同时,是的,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法。

在这儿之后,你可以选择向J2ME、或者Java GUI、Socket编程等方向努力,但是通过第一篇的办法,你可以很容易就将这方向过滤掉(永远不要忘了我们是为了就业),好吧,暂时和它们诀别,还是向着J2EE的方向前进吧。

在JavaSE完成之后,可以试着完成一些小项目,同时关注一下设计模式的内容,不必强求自己能够完全掌握各种细节,往前走吧。

掌握一种编程工具,比如说Eclipse。

数据库,可以选择使用Oracle或者MySQL开始。

JDBC,用Java连接数据库。

可以选择在这个地方切入Hibernate,也可以选择在Struts之后。

HTML CSS JavaScript,这些东西是做web项目必需的内容。

Servlet JSP,服务器端必需。

XML AJAX,新的流行趋势不能不了解。

作一些小项目吧。比如BBS、留言系统、学籍管理、商城等等,随便着一些业务逻辑比较简单的来做一做。

Struts,MVC的典型应用

Hibernate,OR Mapping的典范之作。

Spring IOC + AOP, 面向对象 + 面向切面,完善的旅程。

把以前自己的小项目加入Struts、Spring、Hibernate的元素吧。

去研究各种商业项目的业务逻辑吧,才能在你的简历中加入浓重的一笔。

EJB3.0,java在走了很多弯路后的回归之作,值得研究。

SOA,业界铁定的未来趋势,要紧紧跟随。

在后面,我会告诉你每一步的学习方法和学习重点。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 三:要动手

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_3.html]

无论如何,请坚持不懈的动手实验!

学习Java要动手,仅仅是看和听是不能够学好编程的。

总有同学来信问我们这样的问题,说:"老师我看了视频了(下载:http://www.bjsxt.com/download.html),可是怎么一动手就没有任何思路呢?"

对此,我一般都会说不要着急,如果你只是看了视频就想行云流水的话,那老师这些年的锻炼真是白费了,这么多年的苦练才能略有些行云流水的感觉,你一朝一夕就想自己能够达到,不是太奢侈了吗:)

 

作为编程的过来人想一下,当年自己学编程的时候是什么时候有思路的呢?至少也是照猫画虎画了一段时间之后吧,我本人是在某一个领域画虎画了上万行代码的时候才慢慢有自己思路的。就像写作文,要有自己思路总是一般来说要经过几个阶段,首先学习词汇,然后学习造句,然后大量阅读别人的文章,自己模仿着写一些,逐渐的经验积累,才能形成自己的思路。学编程,恐怕也得慢慢的来吧,只是看一看、听一听视频,是不足以学好编程的。所以,动手吧,跟着做,一行一行的跟着敲,一个项目敲完了,比如坦克,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。如果遇到,暂时对于一些思路不能理解的同学,我一般都会劝告说,动手写,先写代码,量变会引起质变的。而这种质变的确发生过不少次。提醒一句,要理解代码思路之后再跟着敲 ,背着敲,千万不要左边摆着别人的程序,右边自己一个一个子母的写,这就不再是程序员了,成了打字员了。

纸上得来终觉浅,所以:

别问那么多,别想那么多,动手写吧。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 四:要事为先

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_4.html]

对待人生的任何事情都要:抓大放小,要事为先

 

对于一个以前从来没有接触过java的人,java无疑是庞大的,似乎每个领域都可以拓展开来都是一片开阔地,每一个领域要想深入接触到每一个细节所耗费的精力都是巨大的。这个时候大家都胸怀壮志,两眼发光的盯着每一个崭新的知识点,遇见了任何一个知识点都恨不得抠的清清楚楚,明明白白。难道这有什么不对吗?我的意见是,没什么大毛病,但是学习效率太低了!我们推荐的学习方式是:抓大放小,要事为先。比如说学习J2SE的时候,学到GUI这一章,有的同学认为,既然学到这儿了,我们去把SWING细细的了解一遍吧;还有的同学,遇到了在Linux下的Shell编程,就恨不得把Shell先学成专家才肯,或者是才敢,继续往下学习;有没有过这样的感觉,一本书的上册没有学好,觉着下册心里也没底儿,甚至非要把上册复习一遍才敢继续学习。如果你也是这样,要去看看心理医生啦,没准儿会有洁癖的毛病:)。任何事情都要追求完美才敢继续往后进行,是一种性格缺陷。

 

大胆的放弃一些东西吧,有失才有得,把自己有限的、宝贵的精力用在对于就业直接相关的地方,这才是最有效率的学习方式!等你参加工作,有了可持续发展的事业动力和经济基础,有时间有精力闲的没事儿干的时候,再去研究那些其它吧。

 

曾经有一个故事,说得是产能和产量的关系。

一个人喜欢读书,读了一辈子,无所不通,这时候要做任何工作都可以,他的产能到了极致,但是,他老了,即便每天产出大量的东西也不能维持多久了,一辈子的产量并没有多少。另一个人直接工作,忙,天天在机器旁日复一日,做了一辈子,没时间学习和进修,可以想象,产量能有多大呢。人的一生,要锻炼产能,也要及时产出,引擎要转,也要停下来加油,这两者平衡的越好,你的贡献和产量就会越大。如果钻研的东西和产能目标(或者说近期的产能目标)无关的话,要舍得放手。所以,对于SWING,暂时先扔在一边吧。对于shell,对于各种协议过于详细的细节,对于喜欢的游戏编程,对于javascript各种华而不实的效果,都暂时和它们分别吧。一切和我们的直接工作目标关联不大的东西,扔在一边或者弄清楚到足够支持下一步的学习就可以了。

 

那这样岂不是妨碍我成为通晓各种细节的高手了吗?

我一向不认为一个人掌握了很多很多知识点的细节就是高手了,一个人如果告诉你,回字有四种写法,你会认为他是高手吗?毫不客气的说,现在我们所教授的所有知识细节在网上或书中都可以找到,只要你肯花时间花精力去动手试,去钻研,没有什么不能掌握的。struts、spring你能掌握吗?当然能!但是如果把时间花在spring的各种细节的研究上,花在研究中国企业应用不广泛地的spring mvc上,这个精力就太浪费了,而且学习的积极性会受到打击,谁愿意整天泡在细节的蜘蛛网中挣扎不出来呢?谁愿意天天经历风雨却总是不能见到彩虹呢?

 

盖房子,要先建骨架,再谈修饰。

画山水,要先画结构,再谈润色。

认识一台结构复杂的机器,应该首先认清楚脉络,然后再逐步认识每一个关节。

为了应付从小学到大学的考试,我们背了各种各样的不应该提前掌握的细节,同时也养成了见到细节就抠的学习习惯。而现在,是到改改的时候了。

 

请在合适的时间,做合适的事情吧。

把时间和精力花在作项目上面,花在写作品以及锻炼解决问题的能力上面吧,这是迈向高手的正确的而且快速的方向。

 

我一直不认为一个课程提供了很多很多的细节就是优秀的价值高的课程了,掌握必要的细节,这个不含糊,至于其他,或者通过视频给出(这样可以给出更多的细节,但是不占上课时间,课上只讲重要的、必要的细节知识),或者在掌握了自学的能力后自己能够查出,这才是正途。当你看书到某个地方暂时不理解的时候的,暂时放手吧,追求一些行云流水、自然而然的境界吧,只是不要停下前进的脚步,不要被大路旁边的支根末节干扰了你前进的行程,项目,真实的项目,这才是目的,就在不远的前方。

 

陶渊明读书,叫做“不求甚解”,但他是大诗人。

诸葛亮读书,总是“观其大略”,但他是大政治家。

作研究的,是在确定了方向之后才详细的研究深入的东西。

到了庐山,脉络形状扔在一边,盯着一棵棵小草、一粒粒石子的看,怎么样才能识得“真面目”?

作为应用型的人才,是研究回字的n种写法还是抓紧时间向着主要应用的方向努力,请自己作出抉择。

以项目驱动自己的学习吧,当把握了技术的脉络之后再去补充细节的研究,是正途。

这辈子就不研究其他的方向了吗?

当然要研究!但是在将来合适的时间再说吧。

所以,抓大放小,要事为先!

那么,在JAVA的这些课程中,哪些才是大,才是要事呢?请继续读下去。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 五:问题解决之道

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_3.html]

既然是学习,就不可能不遇到问题。

既然是自学,就没有方便的和老师探讨的机会。

那么,遇到问题之后,环境配不通,程序调不过,运行不正常,遇见这些恼人的问题的时候,该怎么办呢?

首先我要恭喜你,遇见问题,意味着你又有涨经验的机会了,每解决一个问题,你的JAVA经验值就应该上升几百点,问题遇到的越多,知识提升的越快。但是总是解决不了也是很恼人的,怎么办呢?我一般要求我们的学生都是这样来进行的。

 

当你遇到一个问题的时候:

1:要仔细的观察错误的现象,是的,要仔细

有不少同学的手非常快,在编译一个程序的时候,报了一大堆的错误,扫了一眼之后就开始盯着代码一行一行的找,看清什么错误了吗?没有!

有的时候安装软件出问题了,一个对话框弹出来说出错了,马上举手问老师:“不得了了,出错了,出错了”。

“什么错误?”

“还没看呢?”

这都是典型的不上心的方法!请记住,学习编程并不是一件很容易的事情,自己首先要重视,要用心才可以。

在开发中,仔细观察出错信息,或者运行不正常的信息,是你要做的第一件事。

读清楚了,才能在以后的步骤中有的放矢,哭了半天,总要知道哭的是谁才成。

这里又分三种情况:

  A:错误信息读懂了,那么请进入2步:要仔细思考问题会出在哪些环节

  B:没读懂,愣是一点没看懂,进入第4步吧:google

  C:读了个半懂,有些眉目但是不太能确定,第2步和第4步结合着来。

 

2:要仔细思考问题会出在哪些环节(重要)

当你读懂了一个问题之后,要好好的思考这个问题可能会在哪些环节上出错。

一辆汽车从总成线上下来,车门子关不上!

哪错了?你怎么查?

当然是顺着生产线一站一站的查下来。

程序也是一样的,也是一系列语句完成后产生的结果。

写一个网络程序,总是发现服务器端打印不出接收的数据,有几个环节会出错?

仔细分析这个现象的环节:

客户端产生数据->按“发送”按钮->发送到服务器->服务器接收到后打印

这几个环节都有可能会出错:

有可能客户端根本就没产生数据,有可能发送按钮按下去后根本就没发出去,或者发出去的不是你产生的东西,或者根本就没连接网络,或者发送出去服务器没有接收到,或者接收到之前就打印了等等等等。

 

学着去这样仔细的分析程序的环节和这些环节可能会产生的问题,你的经验值定然会大幅度快速的提升,这样做很累人,但是一件事情如果做下来一点都不累的话,这个东西还有价值吗?在网页A输入了一个人的名字,提交到B,首先存储到数据库,然后再读出来,发现乱码!怎么办?当然是分析环节:客户输入->HTTP发送->B接收->存储到数据库->读出->展现到网页每个环节都可能出问题,怎么才能知道哪里出的问题?继续往下读。

 

3:如何定位错误(重要)

分析清楚有哪些环节之后,下一步就是定位到底什么环节出错了。

定位有以下三种办法:

A 打印输出,比如java的System.out.println(),比如js的alert(),这种办法常用,必须掌握

B Debug,可以参考我们的视频《坦克大战》,详细讲了Eclipse的调试。

C 删掉一部分调试一部分,也就是去掉一部分的功能,做简化,然后调试剩下的功能,JSP和JavaScript常用。可以参考我们的视频《BBS》等

这些我说的比较简单,详细了解的话请关注以下我们的视频吧,在近期会逐步的将一些知识点的视频进行免费的公布,http://www.bjsxt.com/download.html

 

4:如果还不行,google吧

还查不出来?恭喜你,你遇到的错误是值得认真对待的错误,是会影响你学习生涯的错误,问一下google或者百度吧。照着下面的方法查查看。

 

一般来讲,搜索引擎可以搜到各种知识点,我曾经跟同学们开玩笑说:“学会了怎么google或者baidu,其实没必要跟老师学了,自己全都搞懂了,尚学堂是没必要来的。”当然,只是玩笑,培训的作用有三个:

A:系统化知识

B:真实项目锻炼经验

C:少走弯路,节省时间

不知不觉开始做广告了,请原谅,处其位谋其事,总得为尚学堂说点什么:) 

言归正传,如何查搜索引擎?

先精后粗,首先先进行尽量精确的查找,比如一个错误,SocketException,你怀疑它是在connect()方法出的问题,那么当然是选这样的关键词java connect SocketException

先中后英,本着以解决问题为主的想法,练习英文还是先放在一边吧,首先应该在中文网页中查询,还不行的话,搜索英文的吧,最近的尚学堂课程中会带大家阅读英文的书籍。有很多东西就像一层窗户纸,远看灰蒙蒙怪唬人的,你壮着胆子一捅,它就破了。阅读英文的书籍就是如此,不是想象中的那么困难:)宁可在沙场上战死,也不能被吓死不是吗:)

信息筛选,搜索出来的结果不见得能够完全匹配,建议大家多阅读前几页的搜索结果,多打开几个网页看看,不过,我的经验是超过3页一般就没意义了,所以超过3页还没有找到合适的答案,或许应该调整一下关键词,或者放粗整个搜索的结果了。

经常的进行知识难点的查询,如果一个问题牵扯的面比较广,就干脆到网上搜索一些相关的专题,比如“java 乱码 mysql”“oracle 创建用户”等等,如果有必要,不要犯懒,勤动手写一些小小的测试程序,来弄明白知识点的细节。这也是涨知识的重要的途径。

 

5:什么?还不行?那么就BBS吧

如果实在还不行,就到BBS上面问一问高手吧。到哪个BBS上?google或者百度不就行了么:)关键词“java论坛”“java bbs”然后在搜索结果里好好的看看那些活动频繁的论坛,以后就是你经常光顾的地方了。http://community.youkuaiyun.com就很不错。向别人提问是非常需要技巧的!曾经有人问我这样的问题:“请问如何才能学好java呢?”这个要求太泛泛了。 还有人给我一段代码甚至jar包也寄过来,然后说老师的我的代码中有个错误您帮我查查:(我没有办法去花大量的时间建立环境去调试一个还不知道存在不存在的错误!还有人在BBS上问这样的问题:“是否有人能帮我完成一个完整聊天的程序?请帮我写一个登陆模块吧!”这个要求有些过分了,有人帮你做是你的运气,没有人帮你是正常反应。向别人提问,应该首先确定你已经做了自己应该做的事,简单说是我前面列举的1,2,3,4步你都作过了,然后再求助于人。不要没有经过认真思考就草率的向别人提问,自己也不会有长足进步的。那我该怎么样向别人提问呢?在google或百度搜索《提问的智慧》,你会找到答案。在这里我给出一个链接http://community.youkuaiyun.com/IndexPage/SmartQuestion.aspx,磨刀不误砍柴功,先花点时间去阅读一下吧。得到别人的回答,要懂得感恩。不需要去写信感谢,不需要支付费用,不需要那些花言巧语,做到下面这一点就够了:

当你逐步成为高手的时候,要回答别人在论坛上提出的问题,有时间有精力的前提之下!

6:还解决不了?问老师吧,这个只能是在你参加了培训的前提下了。

7:还解决不了?天哪,是不是思路从根上就搞错了?写信给我,让我也学习一下,共同进步吧。mashibing2004@sina.com

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 六:项目的自学

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_6.html]

现在就业竞争的激烈程度已经远远高于当年了,记得我当年毕业时,一个会编程的毕业生站到台上,大声问道:“我会ASP,月薪5000有没有人要?” 台下的企业马上哗的举起一大片手:"我要我要 !"那时 没有任何项目经验也会有人提供学习的机会:)这种好日子恐怕一去不复返了(有些夸张,但无疑当时找一份不错的工作是比现在要容易的多)而现在,即便是各种必要的知识你掌握的差不多了,但还有一座大山横在你的面前,那就是-项目经验。有经验的程序员都知道,学习编程的最有效率的方式,恐怕就是把你扔到一个项目组,连滚带爬的做下一两个项目来,你马上会发现所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。 如果想锻炼实际开发的能力而不仅仅是背诵或者了解一些知识点,如果想成为真正的好手而不仅仅是背诵“回”字有几种写法,那么,作项目吧!

目前,各种编程的知识点变得越来越容易掌握,按照《JAVA自学之路五:问题解决知道》中的各种办法也可以逐步积累自己知识的广度和深度,那现在什么才能够体现水平的不同?当然是项目经验。

目前,尚学堂的课程已经超越了知识点的研究和罗列,我们将在未来的时间里逐步公布各个知识点的视频,包括SSH、EJB等,这样做有两个好处:首先自学的同学可以免费得到原来商业培训的内容,这样起码可以节省一些时间,省一些力气。其次尚学堂自己可以更加专注于项目上。

目前尚学堂的项目写作占了课程50%左右的比重,尚学堂的项目也早已经超越了简单的MIS系统的概念,逐步的成为综合了搜索引擎、工作流、SCA/SDO、Linux/UNIX、大型数据库系统、设计模式、架构模式、负载均衡等各种深层应用的综合大型项目并且采用手把手式的教学方法,做的更加的深入和细致,从现在看效果相当好,最近142班的就业就完全证明了这一点(了解142的就业情况),我们的计划是最近逐步将项目比重提升到70%以上,相信效果会更好。

签于公司的规定,我们并不能将所有的项目实战都录制成视频来公布,但是已经公布的项目实战也是非常的有价值的:(http://www.bjsxt.com/download.html)

1:Chat & Tank系列

2:BBS

3:Shopping(近期公布)

 

那么如果自学我们应该怎么样才能学习项目的开发呢?

一个比较有效的办法是,可以在现有项目的基础上做的更深入一些,比如在你按照视频完成了BBS之后,可以增加一些其他的功能,例如注册/积分/精华/搜索/贴图等等,在完成了Shopping之后,可以增加一些评论/排行/统计/存货等等方面的业务逻辑,尝试用自己的技术将他们作出来,这样既积攒了项目经验,又记住了知识点。那么如何才能确定我要写什么样的业务逻辑呢?应该讲这对于一个初学者是非常困难的,一些简单的系统,比如说BBS、Shopping、图书管理等等,它们的业务逻辑很容易确定,去浏览和参考一些现成系统的功能,很容易就能了解了。但是对于商用的大型系统,光是了解业务逻辑本身就会花费大量的精力,如果有时间有精力有财力的话,还是建议考虑一下我们的培训吧,这样经验的积累和薪水的提升会更快,从以前的统计数据看非常容易就可以回收这笔投资(替尚学堂的广告,必须得写,请见谅,但保证真实)。

如果条件不允许,那么就按照上面的方法来学习项目吧,不要因为暂时不能接触更大型更深入的项目而气馁,记住:机会总是青睐有准备的头脑,努力吧。

 

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 七:路线图明细

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_7.html]

下面给出第二节《JAVA自学路线图》[http://www.bjsxt.com/zixue/zixuezhilu_2.html] 中知识点的明细:

注:

1:下面大多数的知识点我们已经公布了视频或者会近期公布(几个月之内),请大家关注一下这个网址http://www.bjsxt.com/download.html,可以按照该页面的提示,用电驴进行下载

2:这里是为方便大家自学给出的列表,请大家不要同尚学堂的课程画等号,下面的内容要比实际授课简单很多,另外很多知识是融汇在项目开发中的,适合面授,不适合自学。

------------------------------------------------------------------

1:J2SE

面向对象-封装、继承、多态

内存的分析

递归

集合类、泛型、自动打包与解包、Annotation

IO

多线程、线程同步

TCP/UDP

AWT、事件模型、匿名类

正则表达式

反射机制

 

2:数据库(Oracle或者MySQL)

SQL语句

多表连接,内外连接, 子查询等

管理表、视图、索引、序列、约束等

树状结构存储

存储过程、触发器

数据库设计三范式、

 

3:JDBC

JDBC基础

连接池

树状结构存储与展现

DataSource & RowSet

JDBC连接Oracle及MySQL

 

4:HTML_CSS_JAVASCRIPT

html、css、javascript基础语法

JavaScript Form判断

Dom编程基础(事件处理等)

JS常用效果如TreeView、下拉联动等

JS学习方法

JS调试方法

DreamWeaver初步(建立HTML、Table、Form、CSS)等

 

5:Servlet & JSP

 

tomcat基础

servlet基础

web.xml配置基础

web application的结构

servlet生命周期

request response等常用方法

ServletContext类

HTTP协议基础(GET POST)

Cookie

Session

Application

 

JSP的几种语法(包括JSTL等)注意在项目中练习,不要拘泥于语法细节而裹步不前。

 

6:Struts

多层架构理论

Model 1 and Model 2

Struts基本概念

MVC

Action与业务逻辑类的关系

在Struts与JSP之间传递数据

Struts处理流程(控制流)

Struts TagLib(了解常用的)

JSTL

ActionForm

字段收集

上传文件

类型转换

DTO

动态Action Form

验证框架

ActionForward 转发与重定向

动态生成ActionForward

全局与局部的ActionForward

Action Forward Scope

UnknownActionMapping

Action的线程安全

I18N

如何切换语言环境

Struts异常处理机制 程序处理 自动处理自定义异常处理器

Struts的多模块配置

 

7:XML

(XML/XSL、XSLT/DTD、SCHEMA等基础的概念、关于Java的编程可以暂时扔在一边)

 

8:Hibernate

OR Mapping原理

Hibernate基础开发步骤

Hibernate基本接口(重点Session)

普通属性映射

关联关系映射

Native SQL

inverse lazy cascade

继承关系映射

HQL

性能优化 一级缓存 二级缓存 查询缓存

事务与并发 悲观锁、乐观锁

OpenSessionInView

CurrentSession

(至于JTA、联合主键、自然主键、动态主键、Any类型 Creteria Queries Intercepter and Event 自定义类型等,可以暂时扔在一边)

 

9:Spring

IOC/DI

Spring配置

Spring架构

AOP及Spring AOP

声明式事务(AOP)

Spring + Hibernate Spring支持Web

Scope

(其他的Spring模块对于自学来说可以暂时扔在一边)

 

10:EJB3.0

J2EE架构基础(JTA JMS等)

EJB基础(地位及基本理论、分类等)

Annotation

Ant编译与部署EJB

Session Bean

EJB的依赖注入

Persistence API

(可以用JBoss学习EJB3.0)

11:至于SOA,对于自学的同学来说,暂时不用特别关注。梳理一下,你就会发现东西不是想象中的那么多呀!

 

建议大家优先学习我们公布的视频,然后再去找参考书,因为这个时候就能分辨出来哪些书适合你了。那么,如何才能找到好书呢?一个简单的办法,在卖书的网站上,比如http://www.china-pub.com,搜索你想了解的知识点比如"javascript",按销售排行,排在前几位的,应该就是不错的,记下书名,到书店阅读几章,合适你的就是好书了。没钱买?简单!还有什么google + 电驴找不到的资料吗:) 

写了这么多,有一些是广告,在其位,谋其政,但并没有讲假话,还望大家理解,如果大家在自学的过程中有什么问题的话,可以写信给我mashibing2004@sina.com或者training@bjsxt.com,我愿意随时聆听大家的教诲。

 

如果是技术问题,记得首先要阅读《JAVA自学之路五:问题解决之道》哦 :)

java零基础从入门到精通(全) 目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 类体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的一个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre 阅读详情

相关推荐

Adversarial Texture for Fooling Person Detectors in the Physical World

本文提出了对抗纹理的想法(AdvTexture),与基本补丁攻击不同对抗纹理可以生成任意大小,可以覆盖任意大小的不了,并且纹理的任何局部都有对抗性的效果。当衣服被对抗纹理覆盖是,摄像头捕捉到的每一个局部区域都可以攻击探测器,这成功解决了片段缺失的问题。提出了一种两阶段生成方法:基于环形收割的可扩展生成攻击(TC-EGA)来制作广告纹理。第一阶段,训练一个全卷积网络FCN作为生成器,通过采样随机潜变量作为输入来产生纹理(不同于GAN中传统的生成器架构,每一层都使用卷积运算)......

weixin_49171105的博客 1067

2024Java零基础自学路线(Java基础、Java高并发、MySQL、Spring、Redis、设计模式、Spring Cloud)

篇篇经典,字字珠玑

学Java,找哪吒 2万+

Playwright自动化测试实战:攻克日历时间控件三大策略与Java实现

在Web自动化测试领域,元素定位与交互模拟是核心技术基础,其原理在于通过程序精确识别并操作页面中的DOM元素,以模拟真实用户行为。这项技术的核心价值在于提升测试效率、确保交互逻辑的覆盖度与可靠性,广泛应用于电商、金融、OA等系统的功能验证。日历时间控件作为典型的复杂交互组件,常涉及动态弹出层、多级导航与状态同步,是自动化测试中的常见难点。本文聚焦于使用Playwright工具,针对此类控件深入剖析了三种核心解决策略:从最高效的直接赋值、到全面模拟用户交互的主流方法,再到利用组件特性的混合定位方案,并结合Ja

weixin_28835551的博客 311

Java 入门 (超级详细)

Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行。Java还提供了丰富的库和框架,可以加快开发过程,提高开发效率。变量是计算机程序中用于存储数据的一种数据类型。它是一个名称,代表了一个值或一个对象,可以在程序中多次使用。

qq_63519395的博客 10万+

PaddleOCR 3.x 最新版使用教程(2025)——从安装到实战身份证识别,一步到位!

本文针对PaddleOCR 3.x大版本更新带来的参数变化和兼容性问题,提供从环境配置到实际应用的全流程解决方案。

qq_58607032的博客 9787

Auto.js凉了之后,我们该用啥?AutoX.js保姆级环境搭建与第一个脚本实战(2024最新)

本文详细介绍了AutoX.js作为Auto.js替代方案的环境搭建与脚本开发实战指南。从技术生态现状分析到2024最新环境配置,再到编写第一个实用脚本和进阶调试技巧,帮助开发者无缝迁移至AutoX.js平台。特别适合需要手机自动化的JavaScript开发者,涵盖从基础到企业级应用的全套解决方案。

weixin_28737073的博客 390

JAVA基础入门自学篇

java入门学习

学历是帮一个人争取机会 | 能力是帮一个人把握机会 5179

Fast-Lio2代码及论文解析2

点云数据频率较低而IMU为高频数据。

努力努力努力 2278

0基础Java自学之路

前言 最近逛知乎的时候,经常看到有人在问“0基础如何自学Java”、“干了几年**,想转行干Java靠谱吗”等问题。不禁让我回想起了自己当初自学Java的日子,因此在这个周末花了点时间,整理了这篇文章,希望对这些正打算自学Java的或者打算转行Java的人有点帮助。 我的自学之路 先告诉你们我的自学过程可能让你们有点参考。 大三的时候,班主任请了2个已经拿到offer的实验室同学来跟...

程序员囧辉 3万+

YOLOv8改进 | 主干网络 | 在backbone添加Swin-Transformer层【论文必备】

YOLOv8改进,Swin-Transform,YOLOv8添加Swin-Transform

kay_545 2367

全志F1C100S/F1C200S学习笔记(11)——spi-flash 启动全流程适配烧录及踩坑指南

SPI Flash 系统编译 spi-flash 启动适配 分区规划: 分区序号 分区大小 分区作用 地址空间及分区名 mtd0 1MB (0x100000) spl+uboot 0x0000000-0x0100000 : “uboot” mtd1 64KB (0x10000) dtb文件 0x0100000-0x0110000 : “dtb” mtd2 4MB (0x400000) linux内核 0x0110000-0x0510000 : “kernel” mtd3 剩余 (

丨晋丨 1万+

0 基础 Java 自学之路(2021年最新版)

屌丝逆袭之路

程序员囧辉 41万+

PyCharm配置SSH和SFTP远程连接服务器

关于这篇博文,主要因为公司企业都是通过本地测试,同步到服务器进行跑动,舍友看着同事丝滑的操作,让我做个教程。本着钻研的精神,写下了这篇博客记录 关于pycharm这个软件,只有专业版才有远程连接的这个配置,社区版没有(同事一再强调要专业版,学生认证还可申请免费) 关于SSH和SFTP都是一种协议 具体知识点补充可看我这篇文章: 【计算机网络】常见面试题集锦(全) SSH:提供安全通道进行远程登录 SFTP协议可以远程文件传输获取等,数据的安全传输主要由SSH连接提供

码农研究僧的博客 5533

零基础如何自学Java

 在计算机技术发展迅速的今天,编程技术非常被看好,而Java编程作为当前主流的编程语言更是受到了很多年轻人的青睐。   可是非计算机专业零基础的朋友想学Java空有一腔热情却不知道如何着手开始,带着零基础菜鸟如何自学Java的问题下面就由小编为大家解答: 一、学习动机 首先,我们要很明确地弄清楚我们学习Java的动机是什么,工作需要、兴趣爱好、又或者是想开拓知识面等。决定后就向着目标努力。 二、初步了解 然后,就该考虑我们的学习方向以及知识内容的摄取来源了。先百度初步了解Java的性质和定义,

编程领域的博客 1006

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java自学路线图之Java基础自学

文章目录Java自学基础自学技术要点Java基础自学--Java基础语法Java基础自学--面向对象基础Java基础自学--API基础Java基础自学--集合基础Java基础自学资源 自学Java要从Java基础语法开始自学,自学Java的过程中打好基础是很重要的!首先自学:面向对象基础,API基础,集合基础。这些对Java小白的数学和英语能力的要求门槛不高,在学习的过程中积累相应的数学和Java...

CZ-001的博客 498

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

零基础小白如何自学Java

自学 Java 的过程是一个循序渐进的过程。通过逐步学习基础语法、面向对象编程、数据库操作、Web 开发等内容,你能够从零基础逐步掌握 Java。最重要的是保持持续学习的动力,通过实际项目和挑战不断巩固你的技能。通过参加开源项目、加入技术社区和参与编程竞赛,你将逐渐成长为一名优秀的 Java 开发者。

小宝哥Code的专栏 2331

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

零基础怎么自学Java?自学Java有什么误区?

目前在中国众多行业中,极具发展潜力的就是Java软件开发工程师。学Java的人也是越来越多。实际上在学习Java编程之前需要先学习一些编程基础。新手往往无非进行系统的学习,主要原因是自己搜集信息较为零散,学习过程中无专业的老师引导,自己会走进一些学习的误区。那么,新手零基础怎么自学Java?自学Java有什么误区?

xiaoxijinger的博客 7881

零基础 Java 自学之路

前言 写这篇文章前,我看了一些网上 Java 自学的文章,很多我都不太满意,有的甚至让我感到愤怒,要么是站在现有的视角侃侃而谈,要么是纯粹的瞎编骗小白。 很多文章都有一个老毛病:完全没有从小白的视角去思考,内容太多,什么微服务、架构、大数据都来了,这根本不是自学阶段该去看的东西,小白看了这些文章,只会越看越懵逼,根本没法下手。 行业现状 程序员现状 由于程序员的薪水比较高,最近几年有很多其他专业的人涌进了程序员行业,加速了这个行业的内卷,但是据某招聘网上的数据统计,程序员当前的需求量还是远高于全行

youngpeople_的博客 461

Java 自学,需要掌握哪些基础知识?

自学 Java 是一项充满挑战但也极具成就感的任务。在这个过程中,初学者需要逐步建立坚实的基础知识,掌握关键的概念和技能,以便能够编写高质量、可维护的 Java 程序。 第一阶段:编程基础和算法 1.1 编程基础 在学习 Java 之前,建议先掌握编程的基础知识。这包括: 基本算法和数据结构: 理解常见的算法和数据结构,如数组、链表、栈、队列等,对于理解 Java 中的集合框架和算法有很大帮助。 基本逻辑和控制结构: 理解条件语句(if-else)、循环语句(for、while)、以及基本的流程控

Itmastergo的博客 1950

怎么学java零基础java自学教程,附源代码

java怎么自学,Java学习计划一览其实你完全可以先自学一下,看自己能不能坚持,实在坚持不了了,后另说,自学要有一个好的学习方法(应该怎么学习更高效)由于学习是一个持续 另外还有 Java8 的一些新特性,也要重点关注,比如 Lambda 表达式、集合的 Stream 流操作、全新的 Date API 等等, java基础+java集合+java并。 零基础自学JAVA,我首推这个网站不得不提一下国外这个网站https://codegym.cc/zh/CodeGym是一个非常直观易用的JAVA学习平

aifans_bert的博客 398

自学Java需要哪些基础?

以下是自学Java所需的‌‌与‌‌,分为‌‌和‌。

2509_93005452的博客 693

怎么自学Java才能快速打好Java基础?

首先,从技术角度作为计算机编程语言个人认为自学还是比较难的,通常需要学习者必需明确你学习Java的目的是什么。对于这个问题我个人认为不外乎两大类,其一就是出自对计算机编程的喜好(对Java的喜好);其二是能够掌握Java语言技术从而利用其能够解决自身生存问题。这两类人通常可以肯定的说后者居多。 从我们想以Java计算机编程技术来就业我们就一定要清楚了解企业用人的基本标准是什么。对于现在大多数企业级软件开发来讲,无论是大公司还是小公司通常要求必需掌握如下三方面技术应用点。 其一,Java 语言核心设计和编

Jsono8的博客 576

0基础如何自学Java(从入门到精通)

如果你想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路。 行业现状 ==== 程序员现状 由于程序员的薪水比较高,最近几年有很多其他专业的人涌进了程序员行业,加速了这个行业的内卷,但是据某招聘网上的数据统计,程序员当前的需求量还是远高于全行业的平均线的。所以,程序员的现状我觉得是不错的,至少几年内是无需担心的。 Java 现状 Java一直都是编程开发者的首选学习语言,不仅如此,Java也深受零基础学习者的青睐。 最近几年,Go、Python 等语言快速崛起,大有挑战 Java 地位的趋势,

aaa5221的博客 798

零基础如何自学Java?

对于这个话题,已经不止N次在线上或线下听到了。从这个话题被太多的人提问及回答,我们可以肯定地说,Java这个已经有近15年头的计算机编程语言是有着及其广阔的应用领域和独特而短期无法替代的优势。我们姑且不讨论这些,针对如何“自学Java语言”在此衷肯谈一下个人建议,希望对有此疑惑的伙伴们有些帮助。 首先,从技术角度作为计算机编程语言个人认为自学还是比较难的,通常需要学习者必需明确你学习Java的目的...

weixin_46898270的博客 190

java零基础自学_Java零基础自学经验

Java零基础自学经验学习Java数学不好行不行?要到能自己开发小软件的水平要多久,入门需要看些什么材料啊,网上资料不是很好,培训又要花钱,新手零基础如何自学Java比较快速?下面是由百分网小编为大家整理的Java零基础自学经验,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网!下面分享新新人类的自学经验之谈:我学了2周了,已经入门了,基本代码都能看懂,看不懂的研究研究也就懂了。重点是...

weixin_30802953的博客 257

2021年Java最新自学之路,非常适合零基础自学【建议收藏】

前言 无论你是否想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路。 本文会持续更新,建议收藏。 初衷 在 优快云 上经常有同学私聊我询问 “如何自学 Java”、“想转行 Java 靠谱吗” 等问题,因为自己也是在大学时自学的 Java,所以我能理解这些同学的痛苦和迷茫。 写这篇文章前,我看了一些网上 Java 自学的文章,很多我都不太满意,有的甚至让我感到愤怒,要么是站在现有的视角侃侃而谈,要么是纯粹的瞎编骗小白。 很多文章都有一个老毛病:完全没有从小白的视角去思考,内.

chengxuyuan9527的博客 1万+
上一篇: Java基础——多态性
下一篇: Java关键字——final
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值