范文 > 心得体会 > 学java基础的心得体会 > 导航 > Java源码阅读的真实体会

学java基础的心得体会

Java源码阅读的真实体会。

即使是读同一本书,不同的人都会不有不同的心得。人是复杂的动物,是有感情和有思想的动物。在学习中,我们每一个人应该都尝试过写心得体会吧,心得体会重点的是提出自己的看法或意见。心得体会应该怎么制定才会更好呢?小编花时间专门编辑了Java源码阅读的真实体会,还请多多关注我们网站!

Java源码阅读的真实体会

刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动。

源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。

说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《深入Java虚拟机》这类书,别人觉得好,未必适合现在的你。

虽然Tomcat的源码很漂亮,但我绝不建议你一开始就读它。我文中会专门谈到这个,暂时不展开。

强烈的求知欲,我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦):

1、只关注项目本身,不懂就*一下。

2、除了做好项目,还会阅读和项目有关的技术书籍,看wikipedia。

3、除了阅读和项目相关的书外,还会阅读IT行业的书,比如学Java时,还会去了解函数语言,如LISp。

4、找一些开源项目看看,大量试用第三方框架,还会写写demo。

5、阅读基础框架、J2EE规范、Debug服务器内核。

大多数程序都是第1种,到第5种不光需要浓厚的兴趣,还需要勇气:我能读懂吗?其实,你能够读懂的。

耐心,真的很重要。因为你极少看到阅读源码的指导性文章或书籍,也没有人要求或建议你读。你读的过程中经常会卡住,而一卡主可能就陷进了迷宫。这时,你需要做的,可能是暂时中断一下,再从外围看看它:如ApI结构、框架的设计图。

我就说说如何读Java源码,以及我曾经的阅读感悟。

Java源码初接触

如果你进行过一年左右的开发,喜欢用eclipse的debug功能。好了,你现在就有阅读源码的技术基础。

我建议从JDK源码开始读起,这个直接和eclipse集成,不需要任何配置。

可以从JDK的工具包开始,也就是我们学的《数据结构和算法》Java版,如List接口和ArrayList、LinkedList实现,HashMap和TreeMap等。这些数据结构里也涉及到排序等算法,一举两得。

面试时,考官总喜欢问ArrayList和Vector的区别,你花10分钟读读源码,估计一辈子都忘不了。

然后是core包,也就是String、StringBuffer等。

如果你有一定的Java IO基础,那么不妨读读FileReader等类。我建议大家看看《Java In A Nutshell》,里面有整个Java IO的架构图。Java IO类库,如果不理解其各接口和继承关系,则阅读始终是一头雾水。

Java IO 包,我认为是对继承和接口运用得最优雅的案例。如果你将来做架构师,你一定会经常和它打交道,如项目中部署和配置相关的核心类开发。

读这些源码时,只需要读懂一些核心类即可,如和ArrayList类似的二三十个类,对于每一个类,也不一定要每个方法都读懂。像String有些方法已经到虚拟机层了(native方法),如hashCode方法。

当然,如果有兴趣,可以对照看看JRockit的源码,同一套ApI,两种实现,很有意思的。

如果你再想钻的话,不妨看看针对虚拟机的那套代码,如System ClassLoader的原理,它不在JDK包里,JDK是基于它的。JDK的源码Zip包只有10来M,它像是有50来M,Sun公司有下载的,不过很隐秘。我曾经为自己找到、读过它很兴奋了一阵。

Java Web开发源码

在阅读Tomcat等源码前,一定要有一定的积累。我的切实体会,也可以说是比较好的阶梯是:

1、写过一些Servlet和JSp代码。注意,不是用什么Struts,它是很难接触到Servlet精髓的。用好Struts只是皮毛。

2、看过《Servlet和JSp核心编程》

3、看过Sun公司的Servlet规范

4、看过http协议的rfc,debug过http的数据包

如果有以上基础,我也不建议你开始读Tomcat源码。我建议你在阅读Tomcat源码前,读过Struts源码,Struts源码比WebWork要简单得多。这个框架是可以100%读懂的,至少WebWork我没有100%读懂。我曾经因为读懂了Struts源码,自己写过一个Web框架。

当然,在读Struts框架前,最好看过它的MailReader等demo,非常非常不错的。

如果你做过一些Struts项目,那么读它时就更得心应手了。

在读Struts前,建议看看mvnforum的源码,它部分实现了Struts的功能,虽然这个BBS做得不敢恭维。

如果你读过Struts,再开始考虑Tomcat源码阅读吧。

不过,我还是不建议直接读它,先读读onJava网站上的系列文章《How Tomcat Works》吧,它才是Tomcat的最最简易版。它告诉你HttpServletRequest如何在容器内部实现的,Tomcat如何通过Socket来接受外面的请求,你的Servlet代码如何被Tomcat容器调用的(回调)。

学习JSp,一定要研读容器将JSp编译后的Servlet源码。

为什么我总是称呼Tomcat为容器,而不是服务器?这个疑问留给大家吧。

如果你一定要读Tomcat,那么就读Jetty吧。至少它是嵌入式,可以直接在eclispe里面设置断点debug。虽然Tomcat也有嵌入式版本。

Java数据库源码阅读

我建议,先读读Sun的JDBC规范。

我想你一定写过JDBC的代码,那么这时候可以开始阅读源码了。

如果了解JDBC规范(接口),那么它的实现,JDBC Driver就一定要开始了解,我的建议是,读读mysql的jdbc驱动,因为它开源、设计优雅。在读mysql的JDBC驱动源码时,建议看看mysql的内幕,官方正好有本书,《Mysql Internals》,我五年前读过一部分。比如你可以知道mysql的JDBC驱动,如何通过socket数据包(connect、query),给这个C++开发的mysql服务器交互的。

通过上面的阅读,你可以知道,你的业务代码、JDBC规范、JDBC驱动、以及数据库,它们是如何一起协作的。

如果你了解这些内幕,那么你再学习Hibernate、iBatis等持久化框架时,就会得心应手的。

读过JDBC驱动,那么下一步一定要读读数据库了。而正好有一个强大的数据库是用Java开发的,Hsqldb。它是嵌入式数据库,比如用在桌面客户端软件里,如Mail Client。

我四年前为此写过一篇小文,就不介绍了。

Java通讯及客户端软件

我强烈推荐即时通讯软件wildfire和Spark。你可以把wildfire理解成MSN服务器,Spark理解成MSN客户端。它们是通过XMpp协议通讯的。

我曾经在一个项目中,定制过Spark,当然也包括服务端的一些改动。所以它们的源码我都读过。

我之所以推荐它们。是因为:

1、XMpp够轻量级,好理解

2、学习Socket通讯实现,特别是C/S架构设计

3、模块化设计。它们都是基于module的,你既可以了解模块化架构,还可以了解模块化的技术支撑:Java虚拟机的ClassLoader的应用场景。

4、Event Driven架构。虽然GUI都是Event驱动的,但Spark的设计尤其优雅

这么说吧,读它们的源码,你会为做一名程序员而自豪,因为无论是他们的架构设计还是代码,都太漂亮了。

Java企业级应用

当然了,就是Hibernate、Spring这类框架。

在读Spring源码前,一定要先看看Rod Johnson写的那边《J2EE Design and Development》,它是Spring的设计思路。注意,不是中文版,中文版完全被糟蹋了。

在读Hibernate源码前,一定要读读Gavin King写的那本《Hibernate in Action》,同时,应该再读读Martin Fowler写的《企业应用架构模式》,它专门谈到持久化框架的设计思路。当你觉得这两本书读透了,再去看它们源码吧。

而且,在读源码前,你会发现它们用到很多第三方Jar包,二三十个,你最好把那些Jar包先一个个搞明白。

说到企业应用,一定会涉及到工作流。我当年读过jBpM的源码,网上有介绍jBpM内核的文章(银狐)。我感觉它的内核也就两千行,不要害怕。我曾经阅读jBpM源码的博客。

当然了,读工作流源码,前提是一定要对其理论模型有深入的了解,以及写过一些demo、或做过一些项目。

我上面介绍的这些,是我自己读过的,也适合一般人阅读。

我也读过一些非Java源码,感觉不错,也推荐给大家:

dojo源码 它的架构设计得很优雅,仿Java的import和extends。但实际应用起来一塌糊涂。我们当年基于这个开发了自己的框架,不过我不是主力。

Flex源码 Flex 08年底刚刚开源后,我就用它做过一个中型项目,应该说是国内的技术先行者。当时市面没有有深度的书,也没有开源项目。我纯粹是看Flex的Help文档和源码,把项目搞定的。两三年过去了,现在觉得系统设计得蛮优雅的。

好了,先介绍到这里。

上面说到的这些Java源码,我都是4年前、甚至更早读过的。技术变化这么快,像互联网的高速发展,催生很多高性能、分布式数据库,如hadoop。我一看,发现自己已经落伍了。

这几年,想必已经出现了很多优秀的框架,大家不妨分享出来。

f132.cOm更多心得体会扩展阅读

java实习心得体会


java实习心得体会

这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:

作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:

1、项目一定要全新的项目,不能是以前做过的

2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统

3、在开发时要和企业的开发保持一致

4、在做项目的时候不应该有参考代码

长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。

一:项目的地位

因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。

他们欠缺的主要是两点:

(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。

(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。

解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。

二:如何选择项目

项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据Java的研究和实践经验总结,选择项目的时候要注意以下方面:

1:项目不能太大,也不能太小

这个要根据项目练习的阶段,练习的时间,练习的目标来判断,实习报告《java实习报告心得》。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。

2:项目不能脱离实际应用系统

项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。

3:项目应能覆盖所学的主要知识点

学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。

4:最后综合项目一定要是实际应用系统

学员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。

三:Java怎么选择项目

这个不是靠想象,而是根据实际的情况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。

我们可以采用倒推的方式来分析:

(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目

(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务

(3)然后开始选择分阶段的项目,分阶段的项目应该比刚才分析出来的分阶段任务稍稍复杂点,这样才能达到训练的目标。定下分阶段项目后,同样去分解,定出为了完成他所需要的各部分知识点和深度。

(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目

(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。

java的学习心得体会


1、我感觉学习java应该是循环渐进,有始有终,按部就班,脚踏实地。java是一门有着阶梯性的一们语言,如果要学习它。我觉得最好还是按照java的学习体系,先学习什么,在学习什么,只有这样,我们在学习中才会遇到更少的麻烦。java是一门更倾向于网络的语言。不要上来就学习jsp,这样不好,因为这没有基础。在以后的学习中很可能遇到很多的麻烦,这就不好了。

2、信心,恒心,毅力是最重要的。这是我们必须具备的心理素质。要是学习这门语言开始的时候很有兴趣,遇到苦难就退缩,这样最终会放弃学习java,没有经历风雨怎么见彩虹。编程就是有的时候就是那么这么人。会遇到很多的困惑。但是一旦你弄懂了,或者是你把问题解决了,你会感到很兴奋,编程的快乐就在此 了。呵呵^^

3、多看看一些资料,多多的向高手请教,这样才好。要学会总结和领会,当然,学习java一个人有一个人的想法,也有自己的独特学习方法。总之适合自己的就是最好的。

党员学习三严三实体会


习近平总书记提出的三严三实,是对党员干部作风建设发出的新号令,如何贯彻落实好新要求,笔者以为须理解严和实的内在联系,找准改进作风建设的小切口。

始终把实当作一个切进口。再华丽的情势,不如朴实的内容。党员干部的作风体现在谋实事方面,而不是用夸夸其谈的语言来点缀。没有诚信的品行,难以赢得群众的信赖,更难以创伟业、干大事。空谈误国,实干兴邦。实是作风建设的丰富内涵,要从实字进手,做到蹄疾步稳,一步一个脚印把作风建设推动下往,从而获得实效。

始终把严当做另外一个切进口。实践证明,严师才能出高徒,严才能生威。严是改进作风建设的根本保障,要求他人做到的,党员领导干部要首先做到。要把四风的势头遏制住,党员领导干部须经常照镜子、正衣冠、洗洗澡、治治病,严字当头,以修身增强党性,以慎行管好权利,以守纪保持形象。

更要把又严又实当做不可分割的切进口。实现全面深化改革的目标任务,只有实没有严不行,应既要有实也要有严才管用,把三严三实当做改进作风建设不可分割的风向标。能否真正践行好党的群众线路,人民群众热切期盼。面对存在的题目,我们要高昂走在阳光路上,始终唱改进作风建设的长音,疏忽前进路上的停止符,才会奔向实现美好中国梦的明天。

java培训心得体会


篇一:java学习心得

.

湖南软件职业学院

毕 业 论 文

课 题:java学习心得 院 系:软件工程系 专 业:软件技术 班 级:软件0615班 姓 名:周专书 指导老师:郑利娇 完成时间:2009-5-12

Java实习报告

一.引言

面临毕业与就业的压力,不久将来就要从一个学生到一个社会人的转变:技

术在不断的提高,思路在不断的开阔,思想在不断的升华,更重要的是自己的理想和抱负更加的坚定。对于一个投身于IT的新人,经验谈不上,一些学习的心得倒是可以拿出来探讨一下,我们该如何面临这个似曾相识的社会,突然一天如此接近。面对“金融风暴”带来的就业压力,我们正在逐渐走向成熟,我们意志更加坚强,我们深知不经一番寒彻骨,哪来梅花扑鼻香。深深地体会到找一份好工作多么不容易的,尤其是能力匮乏的我们。一切都要付出行动,不能空想,要实现目标,就得不懈的努力。

的确,软件仍然是一个朝阳行业,对于人才的需求量也很大,这也是为什

么很多人努力走上这座独木桥的原因。但是当你面临人生的一个选择时,当你决定要踏上软件开发之路时,你应该问一下自己:我为什么要选择它?其实很多人在这条道路上摸爬滚打了多年也没弄清楚这个问题的答案。如果你想在这条道路上有所成就的 话,一是兴趣使然,二是做好自己的职业规划。软件开发其实是一条非常艰苦的路,不停的学习,不断的熬夜,没有鲜花更没有掌声,陪伴你的是那漫长而孤独的夜。想一想我们准备好迎接这一切了吗?如果没有兴趣我劝你还是放弃这条路,没有兴趣你就在这条路上走不长,等待你的只有转行。如果你真的把它作为你职业生涯的跳板,那么请你做好自己的人生规划,有步骤的实现它。话题稍微远了一点,现在我就谈谈自己在Java学习方面的心得和教训。

古人云:活到老,学到老。读书学习实乃艰苦之事,花费时间,消耗精力。

然苦之外亦见其乐:得到了知识,提高了认识,完善了自己。学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进步。学习,不仅求知,也要懂法,学会方法比掌握知识更加重要。笛卡尔说过,“没有正确的方法,即使有

眼睛的博学者也会像瞎子一样盲目摸索”,可见学习方法的重要性。

其实,大学之前几乎没有软件技术之类的概念,大三之前仍然对于程序

懵懂不开。但是这并不能妨碍我热爱这个行业,也不能就断定我在这个行业里一事无成。刚学 Java,我的确感觉不开窍,特别对OO(面向对象)编程仍然不能理解。但是人如果一思考,其实什么问题都解决了。对于学习java基础的经验就是多做、 多思考,基础知识的学习不能不求甚解,要追本溯源,弄清问题的本质。这样才能举一反三,由点及面。对于抽象的东西要能具体化,对于具体的东西要能抽象化。 我学习java基础一直使用的是《编程思想》第四版这本书,感觉挺不错的,全面透彻通俗易懂,在国外也是广受好评,我很惋惜没有早点知道这本书,否则也不回浪费大学三年青春岁月,一无是处的打发光阴,值得庆幸的事这本书一定程度上激发了我对java学习的兴趣与潜力。英语能力强的话,可以直接看英文原版。我一直强调重视基础,如果你的java基础打的牢,你在学习那些java框架就是非常轻松的事了。

二.Java学习心得之我见

学习java,的确要学习的东西很多,就像这为朋友上面提到的那些。Java不像.net一家独大,记得在大学里教我们.net老师早就提醒过我们学java才是出路,学好java才是王道,我当时就纳闷,这不是搬石头砸自己的脚,往自己身上泼冷水吗?现在恍然大悟,他当时只是为我们指引一条明路,Java的繁盛在于开源社区的庞大,这也带来了分支太多的问题,怎样选择一条好的学习路线,对于初学者来说,的确是一件很迷茫的事。其实不管java东西再多,总有规律可循。根据自己的发展方向的不同,可以选择不同的学习路线。对于怎样成为一名出色的Java s接口,服务器端调用sockets的服务器端方法,打开

监听(设定一个唯一端口号调用一个现成监听方法),一旦有东西传过来他就自动开始工作了,

我们用io方法获得传来的内容分析、判断,然后产生相应操作;sockets客户端也类似,只

要指定了服务器ip地址和那个对应的端口号,就能链接到服务器,然后用io方法发送返回

信息。 窗口部分,有相关的windows包,导入后,只需要定义窗口尺寸、位置等,按钮、文本

等等也都有对应的现成的给你引用,只要一一设定好就有了,还有一些窗口固有的组件比如

最小化、关闭,关联上相应的功能就可以了。 大概就学了这么多,我估计基本概念都理解了,还差一个跟数据库的交互的概念,估计

也不复杂,剩下的我预计就是用别人现成源码过来修改试验,进一步体会代码了。看来java

确实如外面介绍的那样,并不算复杂,还没有用jbuilder一类的软件,用了后说不定更容易。学编程这段日子里,由无知,到心头渐渐明朗,走过很多弯路,曾因jvm机制问题驻足

不前,也曾因数据结构而苦恼不已,更因提前结束的大学生活而后悔良久。只是,静下来,

看代码,体会其中的思想,慢慢地,一些东西,曾经的不明白,如今也清晰起来。只要坚持,

那片广袤的天地已为你留出一片天地。学编程,基础最重要,不要贪快,一步一步,把那些知识点弄的明明白白,然后看api文档,另外

网上看一些源代码,体会其中的一些编程思想,csdn论坛也是个很好的学习地方。等基础好

了,就可以学一些框架了,也就是所谓的j2ee,主要用来开发web的技术。如此看来,学习

java并不难,只是要一点一点,走的实实在在。工作当中,这是我对学习java的一些个人

体会! 李沛

2013.7.28篇四:java培训总结,重点都有1 第一课

一、java 语言简介:

是由 sun 公司推出的新一代的纯面向对象的网络编程语言,1995年问世的。

二、java语言的特性:

1、简单的:

{

keep it simple and stupid(保持它的简单性和可操作性) 以人类正常的思维模式思考问题。 java 是由c++语言发展而来。java 提供了非常丰富的内置资源库(api) }

2、安全的:健壮性

{

1、java 中没有指针(指针,是一项能直接指向内存地址的)

2、java 会内存释放-- gc机制(垃圾回收器,自动释放)

3、预检索程序错误-- 在程序执行前,会检查程序是否有语法错误,有则不会允许执行。

4、异常处理机制 --

}

{

1、平台:把软件的语言,翻译成硬件所能识别的语言,即程序运行的硬件和软件的环境。

2、java se--java 标准版(实现桌面应用程序)

3、java ee--j2ee 企业级版本

4、java me--java 微型版本(嵌入式开发) }

4、跨平台的:

{}

5、面向对象的:

{

1、现实世界是什么样子的:(山川、河流、动物、植物。。。。分类组成的) 现实世界就是对所有的事物进行分类,分类就代表一个群体。 分类就是将具有相同特征和行为的事物进行概括。 每个分类下面都有无数的个体,在java 语言中,和现实世界是一样的,也是要先分类

再去

实现分类下的个体(java 中将个体称为:对象)根据:特征(属性)、行为划分的

2、java 语言中,类和对象的关系: java 语言中将现实世界中表示群体的分类称之为类,而是将群体下面的每一个个体称之为对象;

具有相同属性和行为的对象的集合抽象为类或称之为类型 对象是类的一个具体的实例,展示了类的不同属性和行为 实例化:就是将抽象的类转化成具体的个体的过程

3、如何用java语言去描述类:java 语言中类的描述分为两部分:1、要描述他的属性(特征、静态属性)

2、要描述的是行为(动态属性、方法) 语法格式:

class class_name{静态属性;动态属性;} 类类名类体静态属性:相当于字段动态属性:用方法描述

}主控制类:

1、声明对象并对对象进行实例化对象 类型名对象名=new 类型名() //声明部分

2、使用对象,即向实体类发送消息。 对象名.属性名=属性值-----字符串用 数值不用对象名.方法名() 第二课 跨平台性:*一、java如何实现跨平台的?

1、平台:把软件的语言翻译成硬件所能识别的语言,即程序运行的软件或硬件环境。 java 之所以能够实现跨平台性,是因为 java 有属于自己的平台,不直接与操作系统或

硬件

环境交流。java 平台系统由两部分组成:

1、java开发工具包;2、java运行的软环境(java虚拟机--jvm---java virtual machine)api:是一些已编写好的程序的集合,他提供java 面对程序员的接口。 接口:很多内置资源中,有一个数据包存储对市面上已经存在的各种操作系统进行解析。


  网站地图