如果您是java的初学者

如果您是java的初学者
如果您是java的初学者

如果您是java的初学者,最想知道的莫过于如何才能学好java。以下是我的几点建议。

1.奠定java的语法基础

学习java的第一步,就是学会使用java这个程序语言来编写程序,而学习程序语言的第一步就是熟悉其语法的使用。程序语言就是一门语言,所不同的是这种语言是用来与计算机沟通的,所以若要熟悉语言,使用的方法莫过于多看别人写的程序,了解别人是如何使用java来解决问题的,然后针对同样的程序进行练习,并从实例中测试自己是否真正了解到如何解决问题。

2.运用基本的j2seAPI

除了java语言本身的语法之外,懂得运用j2se的API也是一个必要的课题,然而在这么多的API 下,您必然想知道哪些API是必要或常用的。我的建议是先掌握字符串处理、异常处理、容器(Container)、输入/输出(I/O)、线程(Thread)这几个主题。

API的内容庞大,没有任何一本是可以详细讲解每个API如何运用,您也不需要将API背诵下来,您要懂得查询API文件说明,虽然API文件都是英文的,但基本上只要有基本的英文阅读能力就足以应付查询需求。以j2se5.0来说,您可以从下面的网址查询到API文件说明:

https://www.360docs.net/doc/302725700.html,/j2se/1.5.0/docs/api/。

3.使用搜索引擎

作为一个开发人员,懂得使用搜索引擎来寻找问题的答案是一项必要的能力。我习惯使用

Google(https://www.360docs.net/doc/302725700.html,/),几个简单的关键词通常就可以为您找到问题的答案。

4.加入论坛参与讨论

在学习的过程中,如果有人可以共同讨论,将会加速学习的速度。您可以找一个讨论区并摸索当中的资源,这可以省去不少的学习时间。在中文讨论区中我建议多参与java技术论坛,在论坛上有相当丰富的资源。

5.学习地图

在学习完基本的j2se之后,您会想要实际应用java来编写程序,如果民需要编写窗口程序,可以学习Swing窗口设计;如果您要编写数据库相关软件,可以学习JDBC;如果您想要朝Web程序发展,可以学习JSP/Servlet;如果您想要学习手机程序开发,可以朝j2me方向学习。

在java的官方网站上,有一篇java技术概念的地图(Java Technolog Concept Map),其中以图表的方式描绘出了各种需求下的学习方向参考。您可以浏览该图表来了解java各个技术主题之间有什么关联,以确定您未来学习的方向。

JAVA自学之路

一:学会选择

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

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

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

我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。

每个培训机构都会宣传自己的好处,并不能说明大的趋势。

一些新闻文章很有可能是枪手写的,不必太过相信。

国外背景的教师和课程,未必适合你。

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

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

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

https://www.360docs.net/doc/302725700.html,

https://www.360docs.net/doc/302725700.html,

https://www.360docs.net/doc/302725700.html,

以及csdn的招聘频道等

还有一个网站也不错,https://www.360docs.net/doc/302725700.html,,综合了各大招聘网站的数据。

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

比如说我在https://www.360docs.net/doc/302725700.html,中搜索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自学路线图

有不少的同学发信给我,和我探讨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自学之路三:要动手

无论如何,请坚持不懈的动手实验!学习Java要动手,仅仅是看和听是不能够学好编程的。总有同学来信问我们这样的问题,说:"老师我看了视频了,可是怎么一动手就没有任何思路呢?" 对此,我一般都会说不要着急,如果你只是看了视频就想行云流水的话,那老师这些年的锻炼真是白费了,这么多年的苦练才能略有些行云流水的感觉,你一朝一夕就想自己能够达到,不是太奢侈了吗

作为编程的过来人想一下,当年自己学编程的时候是什么时候有思路的呢?至少也是照猫画虎画了一段时间之后吧,我本人是在某一个领域画虎画了上万行代码的时候才慢慢有自己思路的。就像写作文,要有自己思路总是一般来说要经过几个阶段,首先学习词汇,然后学习造句,然后大量阅读别人的文章,自己模仿着写一些,逐渐的经验积累,才能形成自己的思路。学编程,恐怕也得慢慢的来吧,只是看一看、听一听视频,是不足以学好编程的。

所以,动手吧,跟着做,一行一行的跟着敲,一个项目敲完了,比如坦克,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。

如果遇到,暂时对于一些思路不能理解的同学,我一般都会劝告说,动手写,先写代码,量变会引起质变的。而这种质变的确发生过不少次。

提醒一句,要理解代码思路之后再跟着敲,背着敲,千万不要左边摆着别人的程序,右边自己一个一个子母的写,这就不再是程序员了,成了打字员了。

纸上得来终觉浅,所以:别问那么多,别想那么多,动手写吧。

JAVA自学之路四:要事为先

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

对于一个以前从来没有接触过java的人,java无疑是庞大的,似乎每个领域都可以拓展开来都是一片开阔地,每一个领域要想深入接触到每一个细节所耗费的精力都是巨大的。这个时候大家都胸怀壮志,两眼发光的盯着每一个崭新的知识点,遇见了任何一个知识点都恨不得抠的清清楚楚,明明白白。

难道这有什么不对吗?

我的意见是,没什么大毛病,但是学习效率太低了!我们推荐的学习方式是,抓大放小,要事为先。比如说学习J2SE的时候,学到GUI这一章,有的同学认为,既然学到这儿了,我们去把SWING细细的了解一遍吧;还有的同学,遇到了在Linux下的Shell编程,就恨不得把Shell先学成专家才肯,或者是才敢,继续往下学习;有没有过这样的感觉,一本书的上册没有学好,觉着下册心里也没底儿,甚至非要把上册复习一遍才敢继续学习。如果你也是这样,要去看看心理医生啦,没准儿会有洁癖的毛病。

任何事情都要追求完美才敢继续往后进行,是一种性格缺陷

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

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

一个人喜欢读书,读了一辈子,无所不通,这时候要做任何工作都可以,他的产能到了极致,但是,他老了,即便每天产出大量的东西也不能维持多久了,一辈子的产量并没有多少。

另一个人直接工作,忙,天天在机器旁日复一日,做了一辈子,没时间学习和进修,可以想象,产量能有多大呢。

人的一生,要锻炼产能,也要及时产出,引擎要转,也要停下来加油,这两者平衡的越好,你的贡献和产量就会越大。如果钻研的东西和产能目标(或者说近期的产能目标)无关的话,要舍得放手。

所以,对于SWING,暂时先扔在一边吧。

对于shell,对于各种协议过于详细的细节,对于喜欢的游戏编程,对于javascript各种华而不实的效果,都暂时和它们分别吧。一切和我们的直接工作目标关联不大的东西,扔在一边或者弄清楚到足够支持下一步的学习就可以了。

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

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

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

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

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

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

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

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

我一直不认为一个课程提供了很多很多的细节就是优秀的价值高的课程了,掌握必要的细节,这个不含糊,至于其他,或者通过视频给出(这样可以给出更多的细节,但是不占上课时间,课上只讲重要的、必要的细节知识),或者在掌握了自学的能力后自己能够查出,这才是正途。

当你看书到某个地方暂时不理解的时候的,暂时放手吧,追求一些行云流水、自然而然的境界吧,只是不要停下前进的脚步,不要被大路旁边的支根末节干扰了你前进的行程,项目,真实的项目,这才是目的,就在不远的前方。

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

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

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

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

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

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

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

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

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

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

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

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

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

那么,遇到问题之后,环境配不通,程序调不过,运行不正常,遇见这些恼人的问题的时候,该怎么办呢?首先我要恭喜你,遇见问题,意味着你又有涨经验的机会了,每解决一个问题,你的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 常用。

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”

然后在搜索结果里好好的看看那些活动频繁的论坛,以后就是你经常光顾的地方了。

https://www.360docs.net/doc/302725700.html,就很不错。

向别人提问是非常需要技巧的!

曾经有人问我这样的问题:“请问如何才能学好java呢?”

这个要求太泛泛了。

还有人给我一段代码甚至jar包也寄过来,然后说老师的我的代码中有个错误您帮我查查:(

我没有办法去花大量的时间建立环境去调试一个还不知道存在不存在的错误!

还有人在BBS上问这样的问题:“是否有人能帮我完成一个完整聊天的程序?请帮我写一个登陆模块吧!” 这个要求有些过分了,有人帮你做是你的运气,没有人帮你是正常反应。

向别人提问,应该首先确定你已经做了自己应该做的事,简单说是我前面列举的1,2,3,4步你都作过了,然后再求助于人。不要没有经过认真思考就草率的向别人提问,自己也不会有长足进步的。

那我该怎么样向别人提问呢?

在google或百度搜索《提问的智慧》,你会找到答案。

在这里我给出一个链接https://www.360docs.net/doc/302725700.html,/IndexPage/SmartQuestion.aspx,磨刀不误砍柴功,先花点时间去阅读一下吧。

得到别人的回答,要懂得感恩。

不需要去写信感谢,不需要支付费用,不需要那些花言巧语,做到下面这一点就够了:

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

6:还解决不了?问老师吧,这个只能是在你参加了培训的前提下了。 7:还解决不了?天哪,是不是思路从根上就搞错了?写信给我,让我也学习一下,共同进步吧。

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

现在就业竞争的激烈程度已经远远高于当年了,记得我当年毕业时,一个会编程的毕业生站到台上,大声问道:“我会ASP,月薪5000有没有人要?” 台下的企业马上哗的举起一大片手:"我要我要 !"

那时没有任何项目经验也会有人提供学习的机会:)

这种好日子恐怕一去不复返了(有些夸张,但无疑当时找一份不错的工作是比现在要容易的多)

而现在,即便是各种必要的知识你掌握的差不多了,但还有一座大山横在你的面前,那就是-项目经验。有经验的程序员都知道,学习编程的最有效率的方式,恐怕就是把你扔到一个项目组,连滚带爬的做下一两个项目来,你马上会发现所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。

如果想锻炼实际开发的能力而不仅仅是背诵或者了解一些知识点,如果想成为真正的好手而不仅仅是背诵“回”字有几种写法,那么,作项目吧!

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

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

目前尚学堂的项目写作占了课程50%左右的比重,尚学堂的项目也早已经超越了简单的MIS系统的概念,逐步的成为综合了搜索引擎、工作流、SCA/SDO、Linux/UNIX、大型数据库系统、设计模式、架构模式、负载均衡等各种深层应用的综合大型项目并且采用手把手式的教学方法,做的更加的深入和细致,从现在看效果相当好,最近142班的就业就完全证明了这一点(了解142的就业情况),我们的计划是最近逐步将项目比重提升到70%以上,相信效果会更好。签于公司的规定,我们并不能将所有的项目实战都录制成视频来公布,但是已经公布的项目实战也是非常的有价值的:(https://www.360docs.net/doc/302725700.html,/download.html) 1:Chat & Tank系列

2:BBS

3:Shopping(近期公布)

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

一个比较有效的办法是,可以在现有项目的基础上做的更深入一些,比如在你按照视频完成了BBS之后,可以增加一些其他的功能,例如注册/积分/精华/搜索/贴图等等,在完成了Shopping之后,可以增加一些评论/排行/统计/存货等等方面的业务逻辑,尝试用自己的技术将他们作出来,这样既积攒了项目经验,又记住了知识点。

那么如何才能确定我要写什么样的业务逻辑呢?

应该讲这对于一个初学者是非常困难的,一些简单的系统,比如说BBS、Shopping、图书管理等等,它们的业务逻辑很容易确定,去浏览和参考一些现成系统的功能,很容易就能了解了。但是对于商用的大型系统,光是了解业务逻辑本身就会花费大量的精力,如果有时间有精力有财力的话,还是建议考虑一下我们的培训吧,这样经验的积累和薪水的提升会更快,从以前的统计数据看非常容易就可以回收这笔投资(替尚学堂的广告,必须得写,请见谅,但保证真实)。

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

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

下面给出第二节《JAVA自学路线图》中知识点的明细:一: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

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

(至于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,对于自学的同学来说,暂时不用特别关注。

梳理一下,你就会发现东西不是想象中的那么多呀!

建议大家优先学习我们公布的视频,然后再去找参考书,因为这个时候就能分辨出来哪些书适合你了。

那么,如何才能找到好书呢?一个简单的办法,在卖书的网站上,比如https://www.360docs.net/doc/302725700.html,,搜索你想了解的知识点比如"javascript",按销售排行,排在前几位的,应该就是不错的,记下书名,到书店阅读几章,合适你的就是好书了。没钱买?简单!还有什么google + 电驴找不到的资料吗:)

前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员。本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享。

个人认为想成为一个合格的JAVA初级程序员应该具备如下知识:

一、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;什么是抽象类,什么是接口。了解了概念后,您还需要这些概念是如何体现的,如类和对象有什么区别?类是如何封装的?

二、JAVA语法:如果您已经有了开发经验,恭喜您,您学习JAVA语法来将比较容易。如果您有C++等面向对象语言的开发经验,您只需简单的翻看一下介绍JAVA的相关书籍就可以了。如果您是新手,没有关系,您下些工夫,好好研究一本JAVA初级教程之类的书就可以了。

学习了JAVA语法,加上面向对象的知识,只有您用心,您就可以写出来比较好的JAVA代码了。如果您再抽出时间熟悉一下JAVA编程规范,您代码的水平就应该不俗了。

三、JSP和HTML:在我国的绝大多数公司,做JAVA程序员都少不了和JSP以及HTML打交道。因此,想成为JAVA程序员就不可避免的要熟悉JSP和HTML,您最好能知道JSP的几个内置对象,如Session,Request,Reponse,,以及常用的JSP标签,如include,userBean等。尽管一些工具会帮您生成HTML代码,但您还是要熟悉比如title,,,,等。如果您再熟悉一下JS和CSS就更好了,那会使您制作的页面更友好。

四、WebServer:熟悉了以上三种,可以肯定的说您已经可以制作出来JSP页面了,您也可以在您的页面里使用自己开发的JAVA类(JAVABEAN)了,但您的页面总要跑起来才能看到您要的效果,这就要求您必须熟悉一种WebServer,比如:TOMCAT,RESIN等。您要熟悉如何发布您的应用,如何利用WebServer的数据库资源等。

五、开发工具:大家都知道,开发工具可以帮助您更好更快地开发,因此熟悉几种开发工具很有必要。目前JAVA的开发工具比较流行的有JBuilder,IDEA,Eclipse,HTML的开发工具有Dreamweaver等。

六、熟悉一种框架:熟悉一种框架其实是成为JAVA程序员的一种可选知识,但目前开发B/S结构的应用的开发小组,都差不多会采用一种框架来构建自己的应用系统。框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本。目前比较流行的框架有Struts 和WAF等。

对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。

问题一:我声明了什么!

String s = "Hello world!";

许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。

这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:

String string = s;

我们是声明了另外一个只能指向String对象的引用,名为string,并没有第二个对象产生,string 还是指向原来那个对象,也就是,和s指向同一个对象。

问题二:"=="和equals方法究竟有什么区别?

==操作符专门用来比较变量的值是否相等。比较好理解的一点是:

int a=10;

int b=10;

则a==b将是true。

但不好理解的地方是:

String a=new String("foo");

String b=new String("foo");

则a==b将返回false。

对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用"=="操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是"foo",应该是“相等”,但是==操作符并不涉及到对象内容的比较。

对象内容的比较,正是equals方法做的事。

看一下Object对象的equals方法是如何实现的:

boolean equals(Object o){

return this==o;

}

Object对象默认使用了==操作符。所以如果你自创的类没有覆盖equals方法,那你的类使用equals 和使用==会得到同样的结果。同样也可以看出,Object的equals方法没有达到equals方法应该达到的目标:比较两个对象内容是否相等。因为答案应该由类的创建者决定,所以Object把这个任务留给了类的创建者。

看一下一个极端的类:

Class Monster{

private String content;

...

boolean equals(Object another){ return true;}

}

我覆盖了equals方法。这个实现会导致无论Monster实例内容如何,它们之间的比较永远返回true。

所以当你是用equals方法判断对象的内容是否相等,请不要想当然。因为可能你认为相等,而这个类的作者不这样认为,而类的equals方法的实现是由他掌握的。如果你需要使用equals方法,或者使用任何基于散列码的集合(HashSet,HashMap,HashTable),请察看一下java doc以确认这个类的equals逻辑是如何实现的。

问题三:String到底变了没有?

没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。请看下列代码:

String s = "Hello";

s = s + " world!";

s所指向的对象是否改变了呢?从本系列第一篇的结论很容易导出这个结论。我们来看看发生了什么事情。在这段代码中,s原先指向一个String对象,内容是"Hello",然后我们对s进行了+操作,那么s 所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改,或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为String对象建立之后不能再改变,所以对于每一个不同的字符串,都需要一个String对象来表示。这时,应该考虑使用StringBuffer类,它允许修改,而不是每个不同的字符串都要生成一个新的对象。并且,这两种类的对象转换十分容易。

同时,我们还可以知道,如果要使用内容相同的字符串,不必每次都new一个String。例如我们要在构造器中对一个名叫s的String引用变量进行初始化,把它设置为初始值,应当这样做:

public class Demo {

private String s;

...

public Demo {

s = "Initial Value";

}

...

}

而非

s = new String("Initial Value");

后者每次都会调用构造器,生成新对象,性能低下且内存开销大,并且没有意义,因为String对象不可改变,所以对于内容相同的字符串,只要一个String对象来表示就可以了。也就说,多次调用上面的构造器创建多个对象,他们的String类型属性s都指向同一个对象。

上面的结论还基于这样一个事实:对于字符串常量,如果内容相同,Java认为它们代表同一个String 对象。而用关键字new调用构造器,总是会创建一个新的对象,无论内容是否相同。

至于为什么要把String类设计成不可变类,是它的用途决定的。其实不只String,很多Java标准类库中的类都是不可变的。在开发一个系统的时候,我们有时候也需要设计不可变类,来传递一组相关的值,这也是面向对象思想的体现。不可变类有一些优点,比如因为它的对象是只读的,所以多线程并发访问也不会有任何问题。当然也有一些缺点,比如每个不同的状态都要一个对象来代表,可能会造成性能上的问题。所以Java标准类库还提供了一个可变版本,即StringBuffer。

JDK工具java命令详解

java命令也是SCJP必考内容,很有用处,即使你现在用的是IDE.

一、查看用法

C:\>java -help

Usage: java [-options] class [args...]

(to execute a class)

or java [-options] -jar jarfile [args...]

(to execute a jar file)

where options include:

-client to select the "client" VM

-server to select the "server" VM

-hotspot is a synonym for the "client" VM [deprecated]

The default VM is client.

-cp

-classpath

A ; separated list of directories, JAR archives,

and ZIP archives to search for class files.

-D=

set a system property

-verbose[:class|gc|jni]

enable verbose output

-version print product version and exit

-version:

require the specified version to run

-showversion print product version and continue

-jre-restrict-search | -jre-no-restrict-search

include/exclude user private JREs in the version search -? -help print this help message

-X print help on non-standard options

-ea[:...|:]

-enableassertions[:...|:]

enable assertions

-da[:...|:]

-disableassertions[:...|:]

disable assertions

-esa | -enablesystemassertions

enable system assertions

-dsa | -disablesystemassertions

disable system assertions

-agentlib:[=]

load native agent library , e.g. -agentlib:hprof

see also, -agentlib:jdwp=help and -agentlib:hprof=help

-agentpath:[=]

load native agent library by full pathname

-javaagent:[=]

load Java programming language agent, see https://www.360docs.net/doc/302725700.html,ng.instrument

这个命令帮助是英文的,不知道JDK咋搞的,也不妨碍使用。

另外,这个命令的非标准选项也是很重要的,常常在JVM优化配置方面很关键,可以参看本人的JVM 参数配置文章。

C:\myproject>java -X

-Xmixed mixed mode execution (default)

-Xint interpreted mode execution only

-Xbootclasspath:

set search path for bootstrap classes and resources

-Xbootclasspath/a:

append to end of bootstrap class path

-Xbootclasspath/p:

prepend in front of bootstrap class path

-Xnoclassgc disable class garbage collection

-Xincgc enable incremental garbage collection

-Xloggc: log GC status to a file with time stamps

-Xbatch disable background compilation

-Xms set initial Java heap size

-Xmx set maximum Java heap size

-Xss set java thread stack size

-Xprof output cpu profiling data

-Xfuture enable strictest checks, anticipating future default

-Xrs reduce use of OS signals by Java/VM (see documentation)

-Xcheck:jni perform additional checks for JNI functions

-Xshare:off do not attempt to use shared class data

-Xshare:auto use shared class data if possible (default)

-Xshare:on require using shared class data, otherwise fail.

Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供初学者做个参考。

我在学习Java的过程中主要围绕以下几个方面来学习:

1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握

和运用Java。

2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。

4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。

学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。

Java环境的搭建

要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。

可以从https://www.360docs.net/doc/302725700.html,下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。

解压安装。然后,进行环境设置。

1.对于Windows平台要进行以下设置:

set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows; C:\Windows\Command

set classpath=. ; YOUR_INSTALL_DIR\lib\tools.jar

2.对于Linux平台要编辑/etc/profile文件:

JA V A_HOME=your_install_dir/JDK/j2sdk

CLASSPATH=$JA V A_HOME/lib/tools.jar:$JA V A_HOME/lib/td.jar:$JA V A_HOME/jre/lib/rt.jar:. PATH=$PATH:$JA V A_HOME/bin

export PA TH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE INPUTRC JA V A_HOME CLASSPATH RESIN_HOME

最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。

下面介绍一下JDK的几个重要的命令:

◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;

◆javac 编译器,由.java文件生成.class文件;

◆jar Java压缩打包工具;

◆Javadoc 文档生成器。

最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。

开始写自己的代码

现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。

1. 先用编辑器写一代码(我用的是Linux的vi):

以下是引用片段:

[stone@coremsg work]$ vi Hello.Java

public class Hello{

public static void main(String []argc){

System.out.println("Hello Word!");

}

}

2. 编译:

以下是引用片段:

[stone@coremsg work]$ Javac Hello.Java

3. 执行:

以下是引用片段:

[stone@coremsg work]$ Java Hello

Hello Word!

成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。

学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。

在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶

段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。

学习更多

如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。

1.Java Web编程

对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP 的Web编程。

2. J2EE的学习

J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。

◆了解J2EE中的技术术语的含义。

我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。

◆了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。

MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。

◆了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。

平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。

◆学习J2EE下的各种技术。

在有了前几阶段的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你

可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。

菜鸟入门:Java语言学习六大要点

Java的学习是比较复杂的,主要表现在相关的一系列平台、规范和协议上。有经验的Java 程序员都知道,只掌握了Java语言本身很难开发应用程序。本文不讨论这些复杂的概念,而是我是在北京参加的培训,现在从初学者的角度,对于Java语言本身的学习提出自己的见解和建议。本文的讨论基于以下假设:

1. 学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究

2. 将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台

一、掌握静态方法和属性

静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的java规范中,静态方法和属性被频繁使用。因此学习者应该理解静态方法和属性。Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。

二、重视接口

在面向对象早期的应用中大量使用了类继承。随着软件工程理论的不断发展,人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接口近年来逐渐成为java编程方法的核心。另一方面,就应用而言,大部分开发是建立在规范基础之上的,不需要自己建立复杂的继承关系和庞大的类。因此读懂规范和用好规范已经成为应用程序开发人员的首要任务,Java各项规范的主要描述手段就是接口。

三、学好集合框架

java描述复杂数据结构的主要方式是集合框架。Java没有指针,而是通过强大的集合框架描述数组、对象数组等复杂的数据结构。学好这些数据结构的描述方法对于应用程序编

写,特别是涉及到服务器方、3层结构编程至关重要。程序员在这个时候不能再用诸如数据库结果集之类的结构描述数据了。

由于很多语言没有这么强大的集合框架体系,很多初学者不知所措,更不知道拿来做什么用,因此应该引起足够的重视。

四、例外捕捉

java对例外捕捉的强调是空前的,它强迫程序员用显著的与逻辑方法完全不同的方式描述例外捕捉,对于程序描述的完整性和严谨性有很大的意义。c++也有类似的机制,但是我们看到很多c++程序员并不习惯使用这些机制。

Java的初学者应该充分学习好这种例外捕捉机制,养成良好的编程习惯。

五、多线程需要理解机理

很多java程序员热衷于多线程程序编写,认为是对逻辑能力的挑战。其实在大量应用中根本就不需要编写多线程程序,或者说大多数编写应用程序的程序员不会去写多线程程序。这是因为多线程机制都内置到基础平台当中了。

程序员应该了解的是多线程原理和多线程安全,这对于今后准确地把握程序是至关重要的。

例如JSP中编写到不同的位置对于多个用户环境的安全影响完全不同,又如著名的Super Servlet是每一个访问作为一个进程,但是每一个页面是一个线程,和Servlet正好相反,对程序的性能和安全的影响有天壤之别。

六、了解网络编程

java号称是最强的网络编程语言,但是大多数应用程序开发人员是从来不会自己开发什么底层的网络程序的。需要做只是了解原理就够了。网络机制的实现是靠平台实现的,除非自己开发平台,否则是不需要知道socket怎么实现,怎么监听访问的。因此在这方面花太多的功夫就偏离了“将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台”这一假设。

1. 你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams.

最值得阅读的摄影书籍

我推荐的,最值得阅读的摄影书籍 重新整理了一下需要阅读的书,有的还是一本新书,有的已经读过了——大多数是关于摄影的书籍——也就放在这里给大家做些参考。这里的这些书比较适合已经熟练掌握摄影技术,但仍然期待有所发展、突破的,特别是对想砸破沙锅问到底,希望知道摄影作用于人的感觉的原理的,或者对知觉、视知觉和心理学比较感兴趣的朋友们。我已经将他们分类排列,便于大家检索。 关于[摄影基础类]: 因为这是我自己觉得最有价值的书,所以在这里列举的[摄影基础类],实际上是针对我这个阶段的“基础”,而不是真正的摄影初学者可以用来做“摄影入门”的书籍。事实上很多人都是从一本厚厚的蓝册子入手开始学习摄影的,那也确实是一本很好的教程:《美国纽约摄影学院》——虽然我并没有把它列入我以下的图书列表中。 关于[摄影作品分析研究类]: 这是很重要的一门课,我们每天都见到大量的图片,哪些是好,哪些是坏,自己一定要学会分辨。我在这里建议大家少买些摄影杂志,那里充斥着大量的广告和二流的摄影作品。它们刺激你消费,刺激你转向并不该那么在意的“摄影器材”方面,也让你逐渐被别人的不成熟的审美观点和摄影技术同化。买书或杂志,是一件需要慎重对待的事情,如果你还没有学会辩证的阅读,那么书对于你来说不一定是好东西。 关于[摄影技术提高类]: 这个无需多说,内在的修养再高,也需要依赖于技术上的实现。多拍是技术提高的首要条件,拍的同时多多思考,挑剔一点的对待自己的作品,当你发现你的技术跟不上你的审美时,可以找两本负责人的技术方面的书,认真看看别人的经验。需要注意的是,一定要尽量避免那种类似“五十招让你速成摄影大师”这样凑份子的书,没有任何事情是可以走捷径的。 关于[艺术理论研究类]: 当你的修养和技术都到了一定程度,但却仍然摆脱不了创作瓶颈的时候,或许我们可以从头开始,看看艺术的发展过程,了解一下艺术的流派。让一个摄影师静下心来读这些书恐怕很难,不过它们的确非常重要,而且是不可替代的。别的不说,有一个问题你可以问问你自己到底弄明白没有:“摄影到底是什么?”别急着回答,人家的答案可能有种以上。 关于[视觉、知觉、心理学类]: 这是我的研究方向。我认为这些是比艺术理论更要根基的部分。所有的艺术都是作用于人才成为艺术,而我想知道它们到底对人做了些什么。 关于[其他类]: 一些我认为很好的书而已,哲学类的有一点,或许与摄影无关。

Java入门基础代码

例1-1 DoubleVariableDemo.java class DoubleVariableDemo{ public static void main(String args[]){ double dRadius=2.0d; double dArea=Math.PI*dRadius*dRadius; System.out.println("半径为2的圆的面积:"+dArea); } } 例1-2 BooleanConstantDemo.java class BooleanConstantDemo{ public static void main(String args[]){ final boolean BFLAG=true; if(BFLAG) System.out.println("Always Print Out Me!"); else System.out.println("Never Print Out Me!"); } } 例1-3 DecisionDemo.java class DecisionDemo{ public static void main(String args[]){ short x=1,y=2,z; // 错误代码 // z = x + y; // 正确代码 z=(short)(x+y); System.out.println(z); } } 例1-4 IntegerConstantDemo . java class IntegerConstantDemo{ public static void main(String args[]){ final byte nMaxValue_1=100; final short nMaxValue_2=200; final int nMaxValue_3=300; final long nMaxValue_4=400; System.out.println("整数常量的nMaxValue_1值"+nMaxValue_1); System.out.println("整数常量的nMaxValue_2值"+nMaxValue_2); System.out.println("整数常量的nMaxValue_3值"+nMaxValue_3); System.out.println("整数常量的nMaxValue_4值"+nMaxValue_4); // nMaxValue_1 = nMaxValue_1 + 1; 不能更改常量的值

了解法国文化必看书籍

了解法国必须读的十本书 2010-04-28 17:15:33 [1] “普罗旺斯”系列:一个都市人的独白 [2] 《小王子》——关于生命和生活的寓言 [3] 《带一本书去巴黎》——在苦涩中细品革命 [4] 《恶童好色日记》——看漫画就像看电影 [5] 《达·芬奇密码》——巴黎活广告 [6] 《第一性》:做爱就是革命 [7] 《恋人絮语》:罗兰巴特的狡黠智慧 [8] 《你好,忧愁》——缅怀萨冈 [9] 《我的野生动物朋友》:一本充满野心的畅销书 [10] 《ELLE》:她世纪看《她》 1.“普罗旺斯”系列:一个都市人的独白 《普罗旺斯的一年》《永远的普罗旺斯》《重返普罗旺斯》彼得梅尔/著 清晨在斜身入窗的阳光中醒来,滴几滴橄榄油在涂满了碎番茄的面包上,和着阳光一起吃下;花一上午的时间在山谷里漫步;午后挟一本书,在小树林找一个凉快所在,睡上两小时;趁余阳未尽,回到游泳池里,舒舒服服地伸个懒腰;晚上睡在能看到星星的房间里,窗外更有鸟鸣山涧幽。这还不够,都是习惯了文

明和物质的都市人,所以这里还应该是喧闹、绚丽、生机勃勃的,有一群有趣、热情、淳朴的当地人,让你生活得闲适却并不单调,宁静却并不孤单。 梅尔说:欢快的假日有两个最简单的要素,一个是明媚清澈的阳光,一个是随心所欲的计划。这两点,只有到过普罗旺斯才有体会。 现在去不了?哦,或许有一种办法能找到它。那就是读梅尔的书,在《重返》中品味从《一年》到《永远》。 2. 《小王子》——关于生命和生活的寓言 “这就像花一样。如果你爱上了一朵生在一颗星星上的花,那么夜间,你看着天空就感到甜蜜愉快,所有的星星上都好像开着花。”法国著名作家圣·埃克苏佩利的《小王子》一书,自从1943年在纽约问世以来,被译成42种文字,经久不衰。“这本给成人看的儿童书处处包含着象征意义,这些象征看上去既明确又隐晦,因此也就格外的美。” 一个平实无华的童话,既没有离奇的情节,也没有惊天动地的壮举,《小王子》在其富有诗意的淡淡哀愁中也蕴含着一整套哲学思想。 3.《带一本书去巴黎》——在苦涩中细品革命 林达带着一本人民文学出版社1978年版的《九三年》,奔赴巴黎。正因为是在“革命”中读的法国革命,所以,对法国和巴黎的第一印象,就是革命了。

摄影书读书笔记

读《现代新闻摄影》笔记 鉴于从学长学姐那儿了解到的相关信息,即大二下学期的专业课是摄影方面的内容,,我决定看了一些与摄影相关的书,这次写的篇读书笔记就是与摄影有关。 这本《现代新闻摄影》主要是与摄影的理论知识有关。它介绍了数码相机的相关方面,从中,我了解到一些细节知识。 我重点的记录了一些内容: 1.光圈与速度的功能:照相机的镜头内由金属片组成的能够伸缩的光孔叫作 “光圈”。它是摄影曝光的一个控制系统,快门按下,影像的光色穿过光圈感应在影像传感器上,之后经过影像处理器把所感应的光线与色彩转化为数据存储在影像记忆卡中。其影像传感器受光多少,还与光圈开启后的曝光时间长短密切相关,那么,这个时间控制系统是“速度”。 2.在曝光控制和影像的表现方面,相机的功能重大。其中包括一些光影效果、 画面构成、摄影观察、题材表现画面语言表达、文字表述、传播方式等。3.白平衡:AWB 自动调节系统,相机根据环境自动调节。其色温的跨度是 3000----7000k 日光适应拍摄的光线条件是明亮的室外日光下,其色温在5200k左右 多云适应在黎明、傍晚或多云光照条件下拍照,可过滤部分蓝色,使照片画面区域正常。其色温约为6000k 钨丝灯适应在室内的白炽灯下拍照,可过滤部分黄色,是照片色彩趋于正常。其色温约为3200k 荧光灯适应在室内的日光灯下拍照,可过滤部分绿色,使照片色彩趋于正常。其色温约为4000k 闪光灯其色温约为6000k,接近日光色温,可拍出教真实的色彩。 自定义手动调整色温,其色温约在2000—10000k。 4.ISO感光度:感光度调节:在强烈日光条件下使用ISO25或ISO50;白天在户 外,一般晴天或其他比较明亮的光照条件下使用ISO100中速感光度;在白天微弱的光线条件下或室内用ISO200以上的高速感光度。同时,在弱光条件下也可以用ISO100以下的低速感光度拍照,其先决条件有二:一是拍摄

java初学者学习心得

学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课(包括java),兴趣最重要。一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并且有自己的老师讲解,还有了上机的机会,比自己自学省事多了,于是鼓足信心,开始了漫长的java征途。 还记得我编写的第一个经典程序“hello W ord”。从那时起我已开始走进Java的世界。当时自己不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?问了好多同学,他们告诉我的答案是一样的“java本身要求就是这样子的”,但我自己不甘心,就进行了下面的好多操作:把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。结果把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。接着在以后的学习中我也采用这样的方法解决问题,却发现自己的速度比别人慢了好多,我就把自己的课余时间也分一部分给了java。因为基

础是最重要的,只有基础牢固才有可能对后面的学习有更加深刻的认识! 学习一门新的语言,参考书是离不开的。听老师说订的教材偏难,不适合我们初学者,于是我在图书馆借了参考书(一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等)。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。 在学习Java的语法时,Java的语法是类似c语言的,所以学习的比较轻松。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,和同学一起讨论了好久才得以解决。 在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C语言的经验,花了很长时间,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了很多遍,才彻底领悟了。 开始熟悉Java的类库。基础类库里面的类非常非常多。据说有3000多个。但是我真正使用的只有几个,比如说java.io.*; java.util.*; java.sql.*;等。

马晓宏《法语(4)》学习辅导用书-Le

Le?on 13 一、词汇短语 (tout) au long loc.adv. 自始至终地,全部地 【词组】écrire un mot tout au long完整地写一个词 lire tout au long du voyage旅途中一直在读书 bon gré mal gréloc.adv. 不管愿不愿意 【例句】Bon gré mal gré, il devra se soumettre.不管愿意不愿意,他都要服从。 phase [faz] n.f. 阶段,时期 【例句】Le malade est en phase terminale, il est aux portes de la mort.病人已经是末期了,生命危在旦夕。 【词组】les diverses phases de la fabrication des livres书籍制作的各个不同阶段 remettre [r?m?tr] v.t. 放回;使想起;使恢复原状;重新穿上 (se)v.pr. 恢复原状;恢复健康 【例句】①N’oubliez pas de remettre ces livres dans l’étagère.别忘了把这些书放回书架上。 ②Est-ce que tu peux remettre ce qu’on t’a dit hier soir?你能回忆起别人昨晚上跟你说什么了吗?

【词组】remettre qch en question把某事重新提出来讨论 remettre à neuf翻新,翻修 remettre qn au pas使某人就范 se remettre à重新开始做 se remettre de从……中恢复过来 affres [afr] n.f. pl. 极度的苦痛,折磨 【例句】J’ai des affres de la faim.我非常饿。 【词组】les affres de l’agonie 临终的痛苦 censé,e [sɑs e] adj. 被认为……的 【例句】①Les étrangers ne sont pas censés utiliser les bains publics que fréquentent les Chinois.外国人不使用中国人经常去的公共浴室。 ②Il est censé responsable.他被认为是有责任的。 tomber [t?b e] v.i. 跌倒;掉下;降落 【例句】①Les idées justes ne tombent pas du ciel.正确思想不是从天上掉下来的。 ②La nuit tombe.夜幕降临。 【词组】tomber par terre.跌倒在地。 tomber dans le désespoir陷入绝望 tomber du lit比平时起得早 tomber sur不期而遇

Java初学者

总结 1. 用记事本编写程序输出“HelloWorld” public class B1{ public static void main (String[] args) { System.out.print("hello world");}} 2. 结合\n,\t,空格等,在控制台输出下图所示效果。 public class B1{ public static void main (String[] args) { System.out.print("日\t一\t二\t三\t四\t五\t六\n\t\t \t1\t2\t3\t4\n5\t6\t7\t8\t9\t10\t11\n12\t13\t14\t15\t16\t17 \t18\n19\t20\t21\t22\t23\t24\t25\n26\t27\t28\t29\t30\t31"); }} 3. 结合\n,\t,空格等,在控制台输出下图所示效果。 public class B1{ public static void main (String[] args) { System.out.print("*************************\n\t人事管理系统\n\t1.添加用户\n\t2.管理用户\n\t2.退出系统");} } 4. 结合\n,\t,空格等,在控制台输出下图所示效果。 public class B1{ public static void main (String[] args) { System.out.print("*********\n*******\n*****\n***\n*");} }

西班牙语 法语(二外 自学者书单)

前言:所有想要自学法语,西语的同学,我都建议先有老师带你学会所有发音,然后再开始自学。想要通过MP3和视频学发音的,还是算了吧~切身之谈! 还有啊,背中国教材的课本,背引进教材的对话都非常重要啊~~~楼主是各种后悔有木有!!! 话不多说,开始· 法语: 课本:简明法语教程 学实用语法和词汇。进行阅读,写作训练,要背课文哦!齐进法语有视频教学,大家可以百度之。 法语专业的课本是马晓宏老师编的《法语》,但对自学者和二外法语的同学来说,简法学好了完全就够了。 课本:reflets走遍法国 听力,口语训练,了解法国文化,本书的视频互动教学法很有趣。第一册台湾电台有配套讲座 现另有一本更新的名为festival法语浪漫的课本,台湾电台也有配套讲座,而且下册的讲座比走法的下册讲座要更好,(确切地说是好的太多)据学过的同学说也是相当不错,听力材料特别棒。不过法语浪漫没有视频教学法,也没有中文编译本。 建议大家买走法,第一册上只买课本,其他别买(教书用书,练习册,语法手册别买。你不是有了简法了么,还要这些做什么),课本练习答案杨淑娟老师会念的,大家练练听写也很好。第一册下还得买本教师用书(蔡淑玲老师不念答案),第二册也要买教师用书。 词典:法语助手 手机词典,网上找免费版。现在几百块就能买个安卓智能机,何必去花几百块买电子词典,或者一天到晚翻纸质词典?这词典超级好用,应付日常查询,动词变位是绝对够了。该软件苹果,塞班都,安卓都能用。 语法书:法语现代语法 毛意忠老师编写,法语界公认的权威。 还有一本全新法语语法,是法国直接引进版,也是毛老师翻译。完全是法国人的思维模式,适合高水平同学,例句都不带翻译的。

《一本摄影书》读后感精选10篇

《一本摄影书》读后感精选10篇 《一本摄影书》是一本由赵嘉/ 爱摄影工社著作,电子工业出版社出版的平装图书,本书定价:98.00元,页数:377,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。 《一本摄影书》读后感(一):一本真正的攝影聖經 把其他所謂的“聖經”都遠遠拋離,要買就買這本,其他所謂的“聖經”都是浮雲。。。看得出來作者是花了時間和心去完成這本書,對比市場上滿大街粗製濫造的“聖經”,我覺得看完這本就夠了,不管什麼品牌。是一本真正的“攝影聖經”! 《一本摄影书》读后感(二):自认为对摄影不甚了解,但还是发现一处严重错误,114页这个是蝴蝶光吗? 自认为对摄影不甚了解,但还是发现一处严重错误,114页这个是蝴蝶光吗? 自认为对摄影不甚了解,但还是发现一处严重错误,114页这个是蝴蝶光吗? 自认为对摄影不甚了解,但还是发现一处严重错误,114页这个是蝴蝶光吗? 自认为对摄影不甚了解,但还是发现一处严重错误,114页这个是蝴蝶光吗? 《一本摄影书》读后感(三):好书 内容通俗易懂平时看书都会犯困的我竟然一看就看了两个小时。看着书就好像现场在给你授课一样不错不错。的确是一本好书。相信自己能破天荒的把这书看完内容通俗易懂平时看书都会犯困的我竟然一看就看了两个小时。看着书就好像现场在给你授课一样不错不错。的确是一本好书。相信自己能破天荒的把这书看完《一本摄影书》读后感(四):好书,只值3星 两天读完了,书是好书,初学者确实学到了东西,但三星不能再多,要是没看前言我可能还会给四星。 大量图文不符,所有的如右图如下页图没一个对得上的。前后内容重复,基础知识在不同章节重复出现。更不提错别字和排版错误,连续四页正文的字号,一页一样。很怀疑

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

最值得阅读的摄影书籍

最值得阅读的摄影书籍 重新整理了一下需要阅读的书,有的还是一本新书,有的已经读过了——大多数是关于摄影的书籍——也就放在这里给大家做些参考。这里的这些书比较适合已经熟练掌握摄影技术,但仍然期待有所发展、突破的,特别是对想砸破沙锅问到底,希望知道摄影作用于人的感觉的原理的,或者对知觉、视知觉和心理学比较感兴趣的朋友们。已经将他们分类排列,便于大家检索。 关于[摄影基础类]: 因为这是我自己觉得最有价值的书,所以在这里列举的[摄影基础类],实际上是针对我这个阶段的“基础”,而不是真正的摄影初学者可以用来做“摄影入门”的书籍。事实上很多人都是从一本厚厚的蓝册子入手开始学习摄影的,那也确实是一本很好的教程:《美国纽约摄影学院》——虽然我并没有把它列入我以下的图书列表中。 关于[摄影作品分析研究类]: 这是很重要的一门课,我们每天都见到大量的图片,哪些是好,哪些是坏,自己一定要学会分辨。我在这里建议大家少买些摄影杂志,那里充斥着大量的广告和二流的摄影作品。它们刺激你消费,刺激你转向并不该那么在意的“摄影器材”方面,也让你逐渐被别人的不成熟的审美观点和摄影技术同化。买书或杂志,是一件需要慎重对待的事情,如果你还没有学会辩证的阅读,那么书对于你来说不一定是好东西。 关于[摄影技术提高类]: 这个无需多说,内在的修养再高,也需要依赖于技术上的实现。多拍是技术提高的首要条件,拍的同时多多思考,挑剔一点的对待自己的作品,当你发现你的技术跟不上你的审美时,可以找两本负责人的技术方面的书,认真看看别人的经验。需要注意的是,一定要尽量避免那种类似“五十招让你速成摄影大师”这样凑份子的书,没有任何事情是可以走捷径的。 关于[艺术理论研究类]: 当你的修养和技术都到了一定程度,但却仍然摆脱不了创作瓶颈的时候,或许我们可以从头开始,看看艺术的发展过程,了解一下艺术的流派。让一个摄影师静下心来读这些书恐怕很难,不过它们的确非常重要,而且是不可替代的。别的不说,有一个问题你可以问问你自己到底弄明白没有:“摄影到底是什么?”别急着回答,人家的答案可能有100种以上。 关于[视觉、知觉、心理学类]: 这是我的研究方向。我认为这些是比艺术理论更要根基的部分。所有的艺术都是作用于人才成为艺术,而我想知道它们到底对人做了些什么。 关于[其他类]:

java编写的简单局域网聊天室(适合初学者).

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; import java.awt.Panel; import java.awt.Point; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileWriter; import java.io.IOException; import https://www.360docs.net/doc/302725700.html,.DatagramPacket; import https://www.360docs.net/doc/302725700.html,.DatagramSocket; import https://www.360docs.net/doc/302725700.html,.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class GUI_Chat extends Frame { private static final long serialVersionUID = 1L; private TextArea viewTextArea = new TextArea(20, 1; private TextArea sendTextArea = new TextArea(; private TextField ipTextField = new TextField(20; private Button sendButton = new Button(" 发送" ; private Button clearButton = new Button(" 清屏" ; private Button logButton = new Button(" 记录" ; private Button shakeButton = new Button(" 震动" ; private Panel panel = new Panel(; private DatagramSocket socket ;

这6本书可以提高你的法语水平...

作者:Amanda 来源:6 livres àavoir sous la main pour améliorer votre fran?ais 6 livres à avoir sous la main pour améliorer votre fran?ais 这6本书可以提高你的法语水平 Ces six livres sont des investissements, certes, mais ce sont des indémodables, qui peuvent être conservés toute une vie. 这六本书就像是一种投资,但它们是永恒的知识财产,可以保存一辈子。 1.Le Bon Usage Le Bon Usage est la référence inévitable. La seizième édition de cette grammaire compte 1600 pages, 40 000 exemples et des citations issues de 2500 auteurs. Un monument. Son auteur, Maurice Grevisse (1895 –1980), ne pense pas la langue fran?aise selon des dogmes. Il ne cherche pas à régenter la langue. Il cherche à évaluer les usages, littéraires ou populaires et les formes concrètes qu’emprunte la langue, pour en tirer des règles. Le Bon Usage是不可多得的好的参考书。该语法书的第16版有1600页,40,000个例子和对2,500位作者作品的引用。它是一座里程碑。其作者莫里斯·格雷维斯(Maurice Grevisse,1895 - 1980年),并不认为法语是根据教条所说的那样。他没有试图控制语言。而是尝试总结文学性的用法和通俗的用法,以及从语言中总结出的固定用法,从而得出使用的规则。 2. Le Bled

摄影新手经验分享

摄影新手经验分享 如果你是相机刚刚到手说明书还没怎么翻的话,那么我建议你首先把随相机附带的那本说明书从头到尾认认真真看至少一遍,然后再来看此篇文章!而且前者较后者而言更为重要! 在正式开始之前,请先看这样一句话: “摄影是入门最简单的艺术形式,也是最容易被赞美的形式,也是最容易毁了一个人心态的艺术形式。入手个单反,大光圈了几个妹子,底下留言一顿赞美,想不把自己当摄影师都不行。然后呢?拍一辈子大光圈吗?其实你跟摄影师几个字没啥关系。” 这是来自一位摄影师的文字,我觉得非常有道理,所以放在开篇分享给大家。 相机的各个功能你都清楚了吗? 我个人是这样看“菜鸟”和“初学者”之间的区别的:“菜鸟”是刚接触相机完全不懂,而“初学者”则是具备一定的摄影知识,但还未了解和熟悉它的全部。我自认为我已经脱离菜鸟级别了,但我依然是一个初学者,并且在很长一段时间内都是彻头彻尾的初学者。这篇文章要做的,只是希望能帮助大家早日脱离菜鸟级别。但我们要时刻怀着一颗谦逊的心,去学习摄影,去热爱生活。 下边我就开始讲了: 一、曝光的核心——三个参数:快门、光圈、感光度 1.曝光和摄影之间的关系 你应该听过“摄影是用光的艺术”这句话。这句话在我看来讲的非常到位。摄影,或者说拍照,无非就是你拿着个相机,当你按快门按钮的时候,快门(镜头外的世界和机身内部感光元件之间的门)会打开,过一段时间再关上。就在这一小段时间之内,光线会从镜

头钻进来,照在长方形的感光元件上边,感光元件上几千万的感光 点就会记录照到它上边的光的色彩。于是,你就得到一张照片了。 那么什么才是摄影最基本要做到的呢?那就是曝光正常!不过曝(拍的画面很亮),也不欠曝(拍的画面很暗)。(这是“最基本”的要点,若是你需要达到一定的艺术感,而故意要控制相机来过曝或者 欠曝,请参照第三章的曝光补偿部分。) 从左到右,分别是——欠曝(你给相机的光线不够多)、曝光正常、过曝(你给相机的光线太多了)。 那么,如何使得我们拍的照片“曝光正常”呢?这个貌似挺简单:你让光进来多,自然画面就亮了,让光进来少,画面自然就暗了。 有个很好的比喻就是接满一桶水,水放的多了就溢出了,水放的少 了则不够满!那我们如何控制进入的光线的“量”呢?(这里所说的 “曝光正常”的概念也被我简化了,意思是指我们拍摄的画面中的 主体明暗适中即可)。 “曝光正常应该有一个量化的标准,看直方图是最简单的,如果左右不溢出就OK。”这个其实是要自己对照片做一个评判,并不是 一个固定的东西。 2.拿什么来控制光 接上边的问句,我们如何控制进入的光线的“量”呢?答案包括 了三个最最基本的参数,那就是—— 快门速度、光圈(值)大小、感光度(ISO) 上图中1/200是快门速度,F2.8是光圈数值,ISO200是感光度 这是三个摄影里边最基本也是最常碰到的参数,下边我要分两步了解这三个参数。 第一步: 你要理解这三个参数各自都是如何控制进入的光线量的。

java初学者48个小例子

【程序 1】 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println(" 第 1 个月的兔子对数: 1"); System.out.println(" 第 2 个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println(" 第" + i +" 个月的兔子对数: "+f2); } } } 【程序3】 题目:打印出所有的"水仙花数",所谓" 水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个" 水仙花数",因为153=1 的三次方+ 5 的三次方+ 3 的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3; for(int m=101; m<1000; m++) { b3 = m / 100; b2 = m % 100 / 10; b1 = m % 10; if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { System.out.println(m+" 是一个水仙花数"); } } } } 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90 分的同学用 A 表示,60-89分之间的用 B 表示,60分以下的用 C 表示。 import java.util.*; public class lianxi05 { public static void main(String[] args) { int x; char grade; Scanner s = new Scanner(System.in); System.out.print( " 请输入一个成绩: "); x = s.n ext In t(); grade = x >= 90 ? 'A

法语入门100篇范文

给想利用这个假期想学学法语的同学,来吧 近期访问量过大,有时会出现访问过慢的现象~〖法语常识〗 ·法语26个字母的读法及写法[ ] ·法语13个特殊字母的读写[ ] ·法语字母歌《Alphabet》[ ] ·法语我爱你怎么说[ ] ·法语生日快乐的读法写法[ ] ·法语入门十大最高频词汇[ ]

·最常用的法语十大祝福语[ ] ·法语十大情爱词汇[ ] ·法语数字的读法与写法[ ] ·法语12星座的读法及写法[ ] ·法语家庭成员的20大词汇[ ] 法语入门:《欧洲标准法语会话12句》 法语标准会话《问候·打招呼》 法语法国标准会话《告别·分手》 法语法国标准会话《相识·介绍》 法语法国标准会话《谈论天气》 法语法国标准会话《吃饭就餐》 法语法国标准会话《打的、乘出租》 法语法国标准会话《乘飞机》 法语法国标准会话《时间钟点》

·介绍我的一位中国朋友[ ] ·我们是这样的一家人[ ] ·从早到晚,我的一天[ ] ·校园生活[ ]穿衣服[ ]·不太走运的约会[] ·Luc的房间[ ]体育迷Paul[ ]·等咱有钱了,先去逛逛非洲[ ]·巴黎印象[ ]生日快乐[ ] ·玩游戏学语法《小鸡快跑》[ ]·介绍我的一位北京朋友[ ]

·中国最热法语歌《Hélène》[ ] ·最受欢迎的影视歌曲《蝴蝶》[] ·最具知名度法语歌《玫瑰人生》[ ]·法语慢摇经典《HEY OH》[ ] ·奋斗中的法语歌《远去的列车》[ ]·法语英语情歌对唱《友情故事》[ ]·法语意大利语情歌《我爱你》[ ] ·法语歌:法语歌曲在线欣赏60首[ ] ·法国观影人数最多的《欢迎来北方》[ ]·动画片《巴巴爸爸》[ ] ·奥斯卡最佳女主角《玫瑰人生》[ ]·爱情喜剧片《两小无猜》[ ] ·法国喜剧经典《你丫闭嘴》[ ] ·嘎纳影展《巴黎·我爱你》[ ]

一篇走心的摄影教程和学习资源推荐清单

一篇走心的摄影教程和学习资源推荐清单。 本文由“林海音”公众号授权。 WeChat ID:haiyinlinphotography我的摄影师朋友孙政最近写了一篇走心教程,很实在也很靠谱。今天分享给大家。孙政目前人在柏林,专攻人像摄影。这篇教程分为两部分,第一部分是他给出的自学思路和建议,他也拿自己的照片为例,聊了聊自己接触摄影以来的个人发展历程。第二部分,他以一个最新的拍摄,举例说明了他在实战拍摄中用到的技术。全文有删节,今天先发第一部分的内容(因为他真的太走心,全文很长)。孙政说,这篇文章并不是个总结,而是写在改 变之初。不是传授经验,而是写一下我准备以什么样的想法来进行我的改变。写下来,是我对自己的梳理,也希望它对你有点儿用。一点儿经验和对摄影学习的过程建议首先摄影是指使用某种专门设备进行影像记录的过程,把现实世界转换成二维然后采样转换成二进制编码...呵呵。这么想的人有什么动力去摄影呢?要说摄影对我来说,是为了记录决定性瞬间,记录自己的生活,记录家人朋友,摄影本质是记录,听起来舒服一些。但是我自己感觉却少了点儿参与感。个人感觉这样的想法也存在着巨大的惰性。如果重心在记录上,那么就会产生被动的想法,尤其是对创造力的限制。 摄影是记录瞬间的过程,摄影师是创造那个瞬间的人。摄影

师不只是记录创造了照片,而是同时创造了那个时刻。这个想法让我感到舒服,可以让我不仅积极的在记录,同时可以积极的构思。摄影师之间的区别不只在于记录的方式,比如参数设置,构图,拍摄角度,曝光,甚至用光。还在于创造,注意我不是指更在于创造。故事的主人公是谁,故事在哪儿发生,他在想什么,他在做什么,什么情绪,故事发生在什么时间。变化简直太多。作为摄影师,你要创造出那个瞬间。”感觉“需要借助载体和表达方式来表达。一篇文章没法给你直接说一种感觉,但是我讲一个故事你就体会到那个感觉了。那么,照片的记录方式并没有什么秘密,也不该有什么秘密。技术要开源!技术要开源!技术要开源!破解起来也不难。它当然区分了摄影师,比如我的照片和日式小清新或者Fine Art 的视觉差别,一眼就看出。但是我很反感的是有些人非得定义哪种风格更好,更高级。区别你和别的摄影师的还有另一方面就是,借由内容为载体表现出来的感觉。这部分的区别,更让我觉得有趣。因为这是很私人的东西。幼年时记忆决定,很神秘。那么怎样提高?要知道,只有好照片,没有好照片的准则。——安塞尔.亚当斯这样想就轻松了不少,很多条条框框,比如黄金分割啊,对角线构图啊,对称啊什么的,别把那些作为规则,只是建议。对于各种拍照技术和闪光灯的理论甚至色彩理论,他们是前辈总结下来帮助我们更好的记录我们的内容的。正确的理解方式是,这些理

法语0-C2全阶段学习资料推荐 图书篇

[在此处键入] https://https://www.360docs.net/doc/302725700.html,/classzt/fr 法语0-C2全阶段学习资料推荐(图书篇) 作者:釉叔来源:沪江法语考试君 对于想要从零开始,在法语之路上系统进阶的小伙伴来说,选对书,选好书是第一步。今天釉叔就来帮大家理一理,法语0-C2阶段可能会用到的那些书。 一、主干教材 教材按使用目的分:法语专业教材、大学二外教材、普通教材; 按编写团队分,可以有:国内原创教材、法国引进教材、自编教材。

[在此处键入] https://https://www.360docs.net/doc/302725700.html,/classzt/fr 以上表格基本涵盖目前市面所有主流法语教材,可以看出:法语专业教材是上外和北外二分天下,《新经典法语》是外研社寄予厚望的新系列,目前只出到第一册,未来能成就怎样的“江湖地位”,我们可以拭目以待;大学的二外教材则有点“百家争鸣”的态势,选择较多;引进教材主要有《走遍法国》和《你好,法语》。有一些教材因为没有出版,就没列在其中,比如中国法盟的通用教材Alter Ego+,以及一些机构采用的原版教材如Festival, Latitude, Tout va bien, Saison, Edito, Echo, Le nouveau sans frontières等等。 标签式笼统地概括一下本土教材和引进教材优缺点:本土教材相对枯燥,个别教材还存在一些用语不够地道的问题,但循序渐进,编排符合中国学生的学习习惯;国外引进教材生动活泼,多媒体资源丰富,用语地道,但难度的递进关系处理得一般,且较依赖互动教学,学生自学难度大。 教材评价,不能简单地说一本教材好或不好,需要看教学场景和目标。比如一本教材很适合应试,拿去教纯兴趣的学生,反馈可能不佳;反之,则可能学得很欢,应试凉凉。因此,在教学场景中,学校或老师往往根据实际情况,综合运用数套教材,或基于某套教材进行改编。典型的就是《简明法语教程》+《走遍法国》,学生先学“简明”,

摄影知识入门(经典入门级教程)

摄影知识入门 傅春山刘文健 第一章一张好照片的三个基本原则 摄影家的眼力 我们在书籍中,网络上常常能看到让我们拍手叫好的美丽的照片,我们也渴望自己能拍出这样的照片来,在摄影论坛上我们常常看到很多摄影初学者看到一幅好照片时问,是什么相机拍的,什么镜头拍的,光圈快门多少?其实这些都只是技术细节,即使知道了这些也无助于拍摄出佳作来。就像尽管知道了达·芬奇用的是什么颜料和画笔,却无法画不出《蒙娜丽莎》。 对于每个初学摄影的人来说,最重要的是拍摄照片时应当追求什么。在通过照片逐步理解这些指导原则的过程中,你会培养出自己的一种意识,懂得在周围世界该追求什么。这种能在周围世界中发现和捕捉到美好画面的能力就是我们所说的"摄影家的眼力"。 接下来,我们就运用几条简明的指导原则告诉你应当追求什么。 三条基本原则 现在我们在看一幅照片时,只集中讨论三条基本原则。 1.一幅好照片要有一个鲜明的主题(有时也称之为题材)。或是表现一个人,或是表现一件事物,甚至可以表现该题材的一个故事情节。主题必须明确,毫不含糊,使任何观赏者一眼就能看得出来。 2.一幅好照片必须能把注意力引向被摄主体,换句话说,使观赏者的目光一下子就投向被摄主体。 3.一幅好照片必须画面简洁,只包括那些有利于把视线引向被摄主体的内容,而剔除或者虚化那些可能分散注意力的内容。 只要根据这三条基本原则开始思考,你就会发现你作为摄影者的生活开始发生变化。

你会用新的标准去观赏一幅美丽的照片。更重要的是你会用全新的方式去观察这大千世界,运用摄影家的眼力通过取景器捕捉画面,在学习的过程中,培养观察、发现、选取周围世界各种主题的能力。 三条基本原则的运用 不论什么时候只要你打算按下快门,必须提醒自己的第一问题是: 第一、这张照片我要表现的主题是什么? 举一张普通的日常生活照来举例,这幅作品 的主题是什么呢?它可能有很多不同的寓意--这 完全取决于你对这个主角的看法了。就拿哈姆雷 特这个角色来说吧,人们对他就争论了几百年, 一百个人心里就有一百个哈姆雷特。一幅成功的 照片对于观赏者来说,也是仁者见仁智者见智。 换句话说,一幅照片的寓意取决于观赏者对它的 理解。这和作者的意图可能一致,也可能相左。 第二,如何把观赏者的视线吸引到被摄主体身上? 市上的照片,熙熙攘 攘的人群中,我们的 一下子注意到这位 背着缝纫机的妇女, 她背着并不轻的缝 纫机穿过集市,靠手 工挣点辛苦钱,但她

相关文档
最新文档