java学习个人总结(汇总18篇)

文本集 人气:2.8W

本站小编为你精心整理了18篇《java学习个人总结》的范文,但愿对你的工作学习带来帮助,希望你能喜欢!当然你还可以在本站搜索到更多与《java学习个人总结》相关的范文。

java学习个人总结(汇总18篇)

篇一:java学习总结

JAVA一直是很多人喜爱的一种编程语言,在这里北大青鸟徐东校区的老师希望各位努力并快乐的学习这门语言。学习JAVA需要多看SUN公司提供我们的资料信息,了解常用类的属性和方法。

我发现我们有很多同学在用常用类的时候,经常会把类里面的方法和自定义的方法搞混。记得有一位老师说过“学习要抱有一种钻研的态度”。我对这句话的理解是当我们学习到一个新的知识点的时候,需要不断理解和消化。

这可能是一个长期的过程,不能抱有一种急于求成的态度。以下内容是北大青鸟老师整理的一些JAVA基础:

一、SDK和JDK的区别 SDK是软件开发工具包,JDK是SDK的一种,其实它是JAVA SDK。JDK在早期的版本中也是叫SDK,在1.2版本以后才叫JDK。

二、J2EE、J2SE、J2ME区别

J2EE:JAVA2平台的企业版,主要应用于WEB和大型企业的开发。

J2SE:JAVA2平台的标准版,学习和一般的开发。它包含于J2EE。

J2ME:JAVA2平台的微缩版,主要应用于电子设备(手机)方面,它包含有J2SE的核心部分之外,还有一个专业的类。

三、JVM的'运行机制类加载→类校验→类执行

四、JAVA、JAVAC、JAVADOC的用法

篇二:java学习总结

1、我感觉学习java应该是循环渐进,有始有终,按部就班,脚踏实地。java是一门有着阶梯性的一们语言,如果要学习它。我觉得最好还是按照java的学习体系,先学习什么,在学习什么,只有这样,我们在学习中才会遇到更少的麻烦。

java是一门更倾向于网络的语言java学习心得体会java学习心得体会。不要上来就学习JSP,这样不好,因为这没有基础。在以后的学习中很可能遇到很多的麻烦,这就不好了。

2、信心,恒心,毅力是最重要的。这是我们必须具备的心理素质。要是学习这门语言开始的时候很有兴趣,遇到苦难就退缩,这样最终会放弃学习java,没有经历风雨怎么见彩虹。编程就是有的时候就是那么这么人java学习心得体会心得体会。

会遇到很多的困惑。但是一旦你弄懂了,或者是你把问题解决了,你会感到很兴奋,编程的快乐就在此了。

篇三:java学习总结

学java不知不觉也已经三年了, 从不知java为何物到现在一个小小的j2ee项目经理,虽说不上此道高手,大概也算有点斤两了吧。每次上网,泡bbs逛论坛,没少去java相关的版面,总体感觉初学者多,高手少,精通的更少

由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间。还有一个很重要的原因就是java这门语言更适合商业应用, 所以高校里大部分博士老师们对此语言的了解甚至不比本科生多。

在这种环境下,很多人对java感到茫然,不知所措,不懂java能做什么?即便知道了java很有用,也不清楚该从哪里入手,所以就有了java入门难这一说法。

ok,那我们就从java到底能做什么聊起

先说什么是java

java是一种面向对象语言,真正的面向对象,任何函数和变量都以类(class)封装起来。至于什么是对象什么是类,我就不废话了。

关于这两个概念的解释任何一本面向对象语言的教材里面都有

知道了什么是java,那自然就会对java能干什么感兴趣

在说java能做什么之前,先说java作为一个真正面向对象语言的优点

首先第一个,既然是真正的面向对象,那就要做到彻底的封装

这是java和c++最大的不同,java所有的源码以及编译后的文件都以类的形式存在

java没有所谓的类外部定义,所有的函数(方法)以及变量(属性)都必须在类内部定义

这样就不会出现一个类被切割成这里一块那里一块的情况,c++就可以,不是么?

老外看unix界面其实挺顺眼的,他们就是吃unix饭长大的。而unix又是吃百家饭的,不像ms那么唯利是图,所以不怎么对中国人友好。加上我国又没有公司在做操作系统,所以看上去是不怎么顺眼。其实玩过unix的人都知道,unix对中文的支持一直不怎么好

三我还没想到,其他人补充

这样做使得整个程序的结构异常清晰明了

其次第二个,最让人欢呼雀跃的是完全屏蔽了指针,同时引入了垃圾回收机制,任何一个写过c/c++代码的人,都会对内存管理深恶痛绝。因为这使得我们不能把主要精力放在我们关心的事情上,而需要考虑计算机内部的一些事情,作为一个软件工程师,我想没有一个人愿意把大量的时间花在内存管理上,毕竟我们不是电子工程师

此时java的优势体现出来了,它完全屏蔽了内存管理。也就是说,如果你用java写程序,写出来的任何一个程序内存上的开销,都不受你控制。乍一看,似乎你受到了束缚,但实际上不是这样。

因为虽然你的程序无法对内存进行管理,降低了一定的速度,但你的程序会非常非常的安全,因为你无法调用一个空指针,而不像以前写c的时候那样,成天因为空指针而担惊受怕。

当然,如果你深入了解这一行,就会发现java其实也无法保证程序不去调用空的指针,但是它会在最大程度上避免空指针的调用。这已经很好了,安全,这是java的最突出的优点。

第三个,虚拟机跨平台,这是java最大的特点,跨平台。

可能所有人都知道windows,但是不是所有人都知道unix 。和java一样,很多人都不知道unix这种操作系统干什么用。我不想多说unix的应用,这不是主要,但是我要说,大部分小型机、工作站,都跑在unix一族的操作系统上,比如linux/solaris

unix比起windows有一个最显著的特点,稳定,这就好比思科和华为。思科的机器慢但稳定,华为的机器快但不稳定,作为服务器这一端来说,要的評nix在服务器端还是非常有市场的。而且很重要的windows不安全,在ms的宣传中我想所有人都很少看到安全二字。

因为windows操作系统针对的是pc用户,pc死机就死机咯,大不了重启。

windows95最经常冒出来的就是蓝屏,在服务器这一端上因为ms没有自己的芯片。

所以要做系统有些力不从心啊。扯远了,那么java可以做到在windows上编译,然后在unix上运行,这是c/c++做不到的

那么说到这里,java能做什么逐渐清晰起来。

刚才说到了,java程序有一个的特点是安全。这个安全是针对你的系统来说得,系统在跑了java程序之后会特别地稳定。而且还能跨平台,那么很明显,java主要应用于除了windows操作系统以外所有的平台。比如手机,服务器。想想看,如果你写的程序要跑在手机上,而手机有多少款用的是windows?

就算有,那如果你用c/c++,是不是要针对每一款手机写一套程序呢?

累死,那跨平台的java就不用,做到编译一次,随时运行。同样,在服务器这一端,如果我想给一个网络门户站点,比如sina 。

写一个应用程序,pc的性能肯定无法满足sina这样大站点并发数量的要求。那么它就需要买服务器,那么服务器ms没有市场,而且windows很不安全。那么十之八九会买一个sun/ibm的机器,或者hp,但不管是谁的机器

它装的操作系统也不会是windows,因为windows太不安全了,而且多核的支持太差了。

程序内存上的开销,都不受你控制。乍一看,似乎你受到了束缚,但实际上不是这样。 因为虽然你的程序无法对内存进行管理,降低了一定的速度,但你的程序会非常非常的安全,因为你无法调用一个空指针,而不像以前写c的时候那样,成天因为空指针而担惊受怕。

当然,如果你深入了解这一行,就会发现java其实也无法保证程序不去调用空的指针,但是它会在最大程度上避免空指针的调用。这已经很好了,安全,这是java的最突出的优点

第三个,虚拟机跨平台,这是java最大的特点,跨平台

可能所有人都知道windows,但是不是所有人都知道unix 。和java一样,很多人都不知道unix这种操作系统干什么用。我不想多说unix的应用,这不是主要,但是我要说,大部分小型机、工作站,都跑在unix一族的操作系统上,比如linux/solaris

unix比起windows有一个最显著的特点,稳定,这就好比思科和华为。思科的机器慢但稳定,华为的机器快但不稳定,作为服务器这一端来说,要的皇怯卸嗫欤俏榷ǎ??評nix在服务器端还是非常有市场的。而且很重要的windows不安全,在ms的宣传中我想所有人都很少看到安全二字。

因为windows操作系统针对的是pc用户,pc死机就死机咯,大不了重启。

windows95最经常冒出来的就是蓝屏,在服务器这一端上因为ms没有自己的芯片。

所以要做系统有些力不从心啊。扯远了,那么java可以做到在windows上编译,然后在unix上运行,这是c/c++做不到的

那么说到这里,java能做什么逐渐清晰起来

刚才说到了,java程序有一个的特点是安全。这个安全是针对你的系统来说得,系统在跑了java程序之后会特别地稳定。而且还能跨平台,那么很明显,java主要应用于除了windows操作系统以外所有的平台。比如手机,服务器。想想看,如果你写的程序要跑在手机上,而手机有多少款用的是windows?

就算有,那如果你用c/c++,是不是要针对每一款手机写一套程序呢?

累死,那跨平台的java就不用,做到编译一次,随时运行。同样,在服务器这一端,如果我想给一个网络门户站点,比如sina 。

写一个应用程序,pc的性能肯定无法满足sina这样大站点并发数量的要求。那么它就需要买服务器,那么服务器ms没有市场,而且windows很不安全。那么十之八九会买一个sun/ibm的机器,或者hp,但不管是谁的机器

它装的操作系统也不会是windows,因为windows太不安全了,而且多核的支持太差了。

篇四:java个人总结

时光荏苒,白驹过隙,一转眼20xx年已经过去一半。回首过去的半年时间,有收获有遗憾。立足当下,放眼未来,半年的工作与生活总结如下:

一.技术能力稳步提高。20xx年上半年在现有报表系统,Oracle数据库操作等技术的基础上,深入提高了java后台接口的开发能力。经过半年的后台开发实践,已经基本掌握java后台开发的架构和java语言编写技能,扫清了初识java语言函数和规则模糊不清的障碍,提高了后台接口开发和测试的效率和准确率,掌握了独立完成后台接口项目的java代码开发的基本功,增强了解决疑难杂症的技术水平。

二.技术领域逐步扩大。随着后台能力的强化,进一步夯实了sql语言,存储过程等底层数据处理的根基,在掌握java后台接口开发的基础上,新增前端页面的设计开发能力,实现从数据到接口,再从接口到前端的全栈式开发能力的链接,打通不同领域的技术壁垒,减少了上下游沟通的延迟,提升了项目开发的效率。

三.参与项目更加多元。20xx年上半年参与大数据推荐系统,报表数据可视化等重点项目的同时,承接部分支撑工作,点面结合,相得益彰。同时处理多项工作能力有所提高,项目规划能力有所增强。

四.上半年坚持锻炼,身体素质有了进一步提升,健康状况持续改善,亚健康状态有所减少,工作和生活质量稳步提升。

篇五:java培训学习总结

不知不觉来到尚学堂学习已经一个多月了。回想起没有开始决定培训之前,自己其实一直是在矛盾和犹豫中徘徊。在那个时候,左老师是最开始找我聊天的,开始了解到尚学堂也是从她那儿。一直以来其实都没有考虑过要参加这样的培训,那时的我还很坚定地说,我要考教师资格证,家里人也支持我以后去当老师的。但是当我得知,教师资格证得应届毕业生才能考,并且从14年开始改革后,我就开始纠结了。其实也不能说是纠结,只是觉得考教师资格证不需要花那么多的时间,这样我还有一年多的空闲时间,不能这样子白白浪费了,而自己又没有打算考研。于是,对于信息计算科学这样一个专业的我,我觉得自己是不是可以考虑去参加培训,这样毕业以后也不失为一条出路,毕竟自己对计算机还是有兴趣的。

经过一段时间的思量,也比较了一下中信和尚学堂,最终还是选择来到了尚学堂。给我和同伴上第一节试听课的是李毅老师,他给我留下了深刻的印象,不仅是人长的帅气,最重要的是他讲课的风格我很喜欢,能让我瞬间产生浓厚的兴趣。开始一直期盼着要是他给我们上课该多好,结果到第一次正式上课的时候,给我们授课的并不是他,而是阮总。说实话,开始有点小小的失望。但是,经过了一个多月的培训,我发现阮总其实也是一个很幽默的人,上课的时候,也总是能将那些比较抽象的概念什么的,用生活中的一些实际例子具体化,让我们更好的去吸收与消化。慢慢地其实也就习惯了,觉得也没有什么不好。毕竟学知识,最重要靠的还是自己,老师只是一个引导而已。

在尚学堂,比较庆幸,可以认识一群新的朋友,虽然大家平常接触还不是那么多,但是我相信,在以后更长的日子里,我们可以相互了解的更多,成为很好的朋友。

当然,这一个月多里,收获更多的是知识。在刚开始的前一段时间里,阮总初步的教我们了解了XHTML和CSS的部分基础知识,让我们领略到了网页设计的奇妙之处。当我第一次自己学会做一些简单的网页界面时,我很兴奋,真的很兴奋。虽然第一次做的网页被阮总说很丑,但我还是很开心,我还很肯定的和同伴说,我们的前途一片光明。后来,阮总告诉我们,其实网页设计那部分并不是我们要学习的,只是我们要了解一下,看得懂代码的意思就好,还风趣地说我们不是美工,不能抢了别人的饭碗。接下来的日子,是在寒假了,我们开始正式接触到JAVA学习。我想,这是初级阶段,也应该是基础阶段,一定要把基础打牢,以后的学习才不会那么吃力。开始的那部分是JAVA的基础知识,我发现和C语言区别不是很大,在学校有认真地学习过C语言,所以基础知识部分学起来还是很轻松的。学完基础知识一直到现在,我们接触的是JAVA面向对象的学习,这是一个崭新的过程,其他人我不清楚,至少对于我来说是这样。我发现,这部分学习的内容没以前学的那么轻松,单一的操作也许会,就是很多情况下自己要会灵活的运用。而且,正像阮总说的,教的知识肯定是教不完的,重点是我们要自己学会找到学习方法。其实,很多东西都没有你想象的那么难,只要你肯努力,肯下功夫,找到方法后,你也是可以做的很好的。我发现,光听老师讲,真的是远远不够,重点在于课后一定要多练习,这样才能帮助自己更快的接受新知识。

寒假过来后,阮总告诉我们,寒假他都没有怎么休息一直在家里学习,他说,你只有不断地去学习新的知识,你才可能比别人收获的更多。听完他说的,然后比较着自己,阮总真的是不简单,挺佩服他的。我想,在尚学堂这样一个积极上进的集体中,我也会成长的很快,收获的很多。我依然坚信自己前途一片光明。

篇六:java培训学习总结

java培训从开始的5月11号到现在已经过了两个月了,感谢源动(中国)给与我们这次宝贵的培训,使学员在日后的社会中增加了竞争筹码。我个人非常重视这次培训的机会。

从一开始的java OO,数据库,SE,会计基础到进段时间学习的HTML,CSS,JAVASCRIPT,使我们都有了不同程度的提高。首先,源动的培训打破传统教育原有的单一、教条的教学模式,在学习过程中窦老师经常关心我们的学习进程和效率,这样学习过程中的疑问会得到及时解决,加快了学习进度,也增加了个人及团队的工作效率。其次,在java培训时,老师常常会指派我们作业,这些作业配合着开发的项目,使我们得到了实战的经验。经验是宝贵的学习不只是学一学书面上的东西,尤其是做软件开发,经验尤其起到至关重要的作用。一个程序员的成长可以看作是基础知识的牢固基础上的,开发经验的成长,这些是我们在源动学习中,学到的宝贵的东西。再次,培训过程中侧重团队的合作,这点很重要,在今后真正进入企业工作以后,开发项目往往是一个或者几个团队来配合,人与人之间的沟通不仅仅是技术上的互相支服,它更加侧重于一个良好的协作,通过高效的团队协作可常常达到事半功倍的效果。此外,源动的java培训中也为我们开设了素质拓展、面试技巧、心理辅导等职业能力的课程,这些课程不是学校里面照本宣科的东西,而是实实在在能拿来用的知识,在这些知识的消化过程中,每位学员都在个人能力上有了不同程度的提高,为今后的工作架设坚固的桥梁。

如果说学习一门语言很容易,那就大错特错了。更不要说是一门从来没有接触过的语言,对于java培训的初学者来说就好比是让一个人去吃一个从来没有见过的食物一样,要费一些时间去研究。学一门语言最重要的是学会观察,了解语言的特点很重要。所以说学语言一定要学会观察,而且更要学会总结。

在学习过程中,比如编程中总会遇到这样那样的问题,我作为个人的理解是,当遇到问题时先不要急着去请教别人,要先检查自己的代码是不是出现了一些经常犯得错误,当确定自己不明白的时候,带着疑问与小组的成员商量,或者向老师请教。当自己独立解决问题后所学到的不仅仅是内心的小小满足,而是这个小经验被自己消化了了的重要性。

以上是我在源动学习java的一点点培训工作总结,接下来的java培训,我想会更有趣、更专业,所以我会更认真听,理论与实践更加强化我们的工作,因为我也很热爱且珍惜这份工作!学习能让人进步,工作能让人自信,相信我们在不断地学习和工作经验当中让自己变得更加充实。

篇七:java 项目学习总结

学习java已经8个月了,在这里跟大家说下心得,我刚开始是看<> 第三版,因为学校没开java课,所以几乎全是自学,用了将近二个月的时间把这本大书啃完,感觉这书不错,但也有很多人说这书不好,的确这书不是按常规的顺序讲的,内容跳跃性强,但讲的很深入,比较适合有cc++基础的人看,这书看完,你就算基本掌握 java的基础了,也就j2se部分。

现在java分三大部分基础,从大到小排列:j2ee, j2se, j2me!

j2ee:这个就是现在最流行,也很java技术用的最多的地方,java企业应用,要学好它,首先就要有java的基础,这是最基本的,然后学习servlet,jsp,javabean以及基本的mvc结构,当然还有其他辅助知识,比如js,html还有一个对数据库的操作,这些都需要时间来学习,学完这些后基本就可以做些简单的web应用程序了,比如模拟一个小的网上银行等等,但做出来后肯定不易维护,因为刚才说的都是技术的性的东西,还需要学些思想性的东西,那就是设计模式,它是对一些解决特定问题的指导,并不是解决问题的方法,现在认可的设计模式一共有23种,在j2ee里除了这23种外还有几种,我还不太了解,我认为设计模式方面的书《设计模式-可复用面向对象软件的基础》英文名《design patterns-elements of reusable object-oriented software》这是提出设计模式那4为大牛写的,此书非常的抽象,使用语言是c++和smalltalk,有勇气和有基础的人可以尝试一下。

j2se:java技术的基础,很多基础都是先从介绍它开始,它和j2ee的区别就是jdk不同,j2ee比j2se的jdk要大一些,多一些类包,但那些是在j2se中用不到的,j2se不光是基础,也是java技术的一个应用方向,就是利用swing开发桌面应用程序,但在windows平台上,m$的地位是无法撼动的,再加上swing开发起来不是很容易,所以在j2se领域上,java一直处于劣势,发展很慢,说到j2se就一定要下eclipse,在别人眼里,eclipse只不过是一个java的ide,但那只是eclipse的冰山一角,其实eclipse是一个大的平台,暂可以把它比喻成windows,我们可以利用winapi去开发在windows上运行的程序,eclipse也可以,我们称为eclipse插件开发,现在这项技术也在慢慢兴起,有些公司已经有应用的项目,eclipse用的是自己开发的gui包,就是swt/jface,其实跟swing是一样的,都是由java写的,但一个是sun写的,一个ibm写的,swt/jface用的本地的资源,所以运行起来很快,界面也可以做的非常漂亮,而且移植也做的很不错,所以eclipse插件可以很容易的移植到linux上,相信这项技术一定很有发展。

篇八:java 项目学习总结

经过这最近一段时间的项目开发与考核,今天终于画上圆满的句号,我长呼了一口气,同时在内心深处,也默默地为接下来的学习,做一个前段时间的项目总结,也是学习的总结,吸取之前的经验教训,前事不忘后事之师,错误并不可怕,可怕的是再在同一个地方犯同样错误,所以对于我来说,更多的去自我认知,知我批评要比表扬和赞许来的更加深刻,非常有必要做一个总结。

虽然所做的项目并没做到考核老师所希望看到的效果,和得到正面的点评,也与自己所想象的结果大相径庭,当然可能在项目最开始的时候,我也曾做过这样最坏的打算,但是当现实渐渐逼近的时候,我却一时难以接受这样的结果,是我意料之外,但也是情理之中,俗话说:种瓜得瓜,种豆得豆。

在项目开发其中,我有过给自己找借口,有过灰心的时候,也有过急躁,如坐针毡的时候,但是想要作为一个合格优秀的程序员,你不仅不能这样的情绪,而且在真实的开发环境当中,会有遇到比这更艰难的情况,更不好开发环境,所以要完成一个项目的开发,我得要利用好为数不多的学习时间,更加勇敢的直面这些缺点,并且改正它,不要认为自己以前没学过JAVA,没有这方面的经验而去给自己找借口,越过心理上的这一到鸿沟。

考核的胡老师说过:不要总是把自己当成一个学生去看待,这样容易松懈,应该是把自己当做一个职业人去看待,做好当下的每一个效果,上好当下的每一节课,让自己时时刻刻紧张起来。这样类似的话,在我之前的公司,也有主管这样说过,虽然我已大学毕业了,没有完全把自己当一个学生去看待,但自己又何尝不是有过这样的念头,特别是别人都是这样想的时候,学习的态度不够坚定,立场不坚决,这也是导致我没有学好的主要原因之一吧。

工善欲器事,必先利其器。除了保持好的心理和端庄学习的态度外,更要总结更好的学习方法,不要让自己陷入到疲惫学习的死胡同了,积累好的学习经验,去掌握好的学习方法,好的学习方法不仅是自己当下一笔无形的财富,也是在不久的将来,在工作当中竞争的一把利器。

吾日三省吾身,只有在自己的总结中给予自己更多的认知,反思,而少一些褒奖,这样自己会对平时忽视的一些地方,能有更加深刻的理解和认识,实践是检验真理的唯一标准,虽然实践中我们所遇到的挫折与失败会有无数次,而成功只有一次,但是只要成功了,我的付出就是值得的,就像前面有无数个-1,但你只要最总做到了一个 1,你的结果就是 1的,在别人的眼里你就是成功的,在客户的眼里,你项目是物美价廉的。

[java 项目学习总结]

篇九:java培训个人总结

转眼间,几个月的培训已经将近尾声了。回想自己这几个月的经历,自己收获颇丰,觉得自己来到这培训是非常正确的。想想自己刚刚考虑打算来这培训的时候那忐忑的心情,现在我已经有了答案:“我很庆幸自己选择了这条路”。

在这,我收获了硕果累累的知识果实。我的培训方向是主攻Java方向,后期还学习了当下比较流行的Android技术。在培训期间,我们主要是通过实际操作具体的项目来学习并温顾所学知识。这正是我们所需要的锻炼。在学校里,我们虽然学习了很多专业的知识,但是我们并没有自己所擅长的方面,并且我们学的都是理论上的知识,实际动手能力是很差的。所以,我们需要培养自己的动手能力。同时,我们的老师都是操作过实际项目的,都有一定的工作经验,他们不仅给我们讲专业知识,还给我们传授职场上的技能。培训就给我们提供了一个培养我们踏入职场所需要的东西的平台。

在这里,疯狂软件的老师们给了我一份详尽而合理的课程安排,在学习期间,我在这里学到了许多以前不会的知识,完善和补充了我已有的知识,使我从最初对Java开发懵懂、茫然变成有自己的知识体系,能够熟练而自信的开发互联网项目。疯狂软件Java培训拥有良好的学习氛围,我在这里慢慢的踏实了下来,为自己将来更好的发展打下了坚实的基础。

在这四个月的学习中,每个人都有一台自己的电脑,可以随时上机实践,验证和实践自己的想法和所学知识,再有知识渊博的老师无私的解惑答疑,使每天的生活都很充实,知识在层面上也有了一个质的飞跃,虽然很累但是也很开心。我了解到Java就业工资都很不错,所以我要努力奋斗,达到自己心中的目标。

总之,通过这次培训,我找到了自己的奋斗目标,找准了自己的职业道路。毕业后,我入职了越川网络科技有限公司,职位是Java工程师。我今后会先从一个能吃苦耐劳的码农开始,经过两三年的奋斗,累积了一定的业务知识之后,再慢慢往上爬。

篇十:java培训个人总结

java语言是一种跨平台的高级语言,无论是网络世界和桌面应用程序,还是分布式应用环境和嵌入式应用都可以看到java的身影。显然java语言依然保持着旺盛的生命力,这也使得众多的从业人员开始学习java语言。

java技术入门使读者对java语言有个初步的了解,为后面的深入学习奠定基础;面向对象技术是需要读者认真学习和体会的,第三篇编程提高篇详细讲述了java语言的高级主题,即读者进阶学习的必备内容;java分布式计算技术的内容,如果读者对web编程感兴趣,相信本篇可以满足您的需求。为了说明java语言的应用,《java完全自学手册》最后一篇介绍了一个实例,通过该程序从无到有的过程使读者知道如何使用java语言编写应用程序。

刚开始头绪有点乱,尤其是看了thinking in java第四版前面后,你知道那感觉,啃啃不下去,实例每个都看的似懂非懂,一两个还行,多了就慌了,更何况他的内容也看不太懂,虽然硬着头皮往后走,但走到第三章就觉得不能再这样了。上网找,一个视频教学,孙鑫老师的那个视频,老师讲的细致,各种小细节都不放过,开始还认真的一句一句听,后来也觉得有些东西用的时候查书google就好了到没必要听讲的时候弄懂。但好在孙鑫老师讲的大致还是沿袭中国人能懂的语言,比起thinking in java来说,确实是听懂了。所以到了lession4以后,我就大量使用快进了。讲下自学心得,给准备学习的朋友理个大概框架,尤其是有一点asp一类语言基础的,就更合适了:

基础,java编写的时候,用记事本或者编译工具,把java语言写出来,然后用javac编译写好的语言文件把它编译成class文件,class文件就是机器最终执行的文件(至于class里面是什么样的,机器是怎么中转又编译的,我们就不用管它了)。前面涉及到要配置java目录、classpath目录几个工作,很多讲座要在这里花上一两堂课,我看用不着,你就记着查google百度把path和classpath设好,就ok可以开始用了。

java以class为基本单位,一个class实现一个基本功能或者模块或者接口,一个java文件里面你可以编写多个class,但一编译就会变成多个class文件,

跟你分开写效果是一样的。class里面如果包含main方法,就是机器最后执行的class,(其他不含main方法的class为执行的这个class提供各种方法)java就是用class这个概念把各种功能模块化,当你把一个一个功能都写好或者系统本身就有这个功能的class的时候,你就直接调用现成的class,就不用额外再去写了,就省心。比如有个class他能把这个三个数字按照我们设定好的方式组成一个矩形,当我们下次要用这个矩形的时候,就不用再重复写三个数字到矩形的过程,只要把三个数字交给写好的那个class让他组合成矩形,我们把矩形拿过来用就好了;比如有个class他能把每个学生各门成绩都加总,我们要做学生总分排名的时候,只需要调用这个现成class把成绩给他加总,我们不再去写成绩如和加总的过程,直接使用加总结果排名就可以了。也就是,很多功能、模块,系统有的用系统的,别人有公用的拿别人的用,自己以前有写过的用自己以前写过的,只有这三个都没有的,才需要自己动手去写,这样一排除下来,还真的就没多少需要我们自己写的了,所以才说java比较省事。

class有分属性,公开的就是写完谁都能用,还有默认的,还有保护的,还有私有的,因为class可以模块化,所以才有这个属性,有些写完谁都能用,有些写完必须要放在一个目录下才能用,有些写完就不能给外面用了。具体适用范围用到的时候查google。

方法,class里面跟class同名的叫做构造方法,如果没有写,意思系统会隐含了一个构造方法,写了自然就没有隐含的了。方法里面就可以进行各种具体的操作,比如定义变量,比如输出结果,比如判断,比如实例化对象等等。main方法是系统找到会运行的方法,写方法就跟其他编程比如以前我用的asp差不多,形式有点不同意思差不多,特别点的就是所谓的面向对象,除了实例化对象这一点稍微理解一下,其他方法内部的编写跟asp差不太多,你比如说dim x,这是asp,不用声明类型,到了java就是int x;其实asp里面也可以声明类型,dim x as int;还有比如x=x+5;asp里面就是没有那个最后的;而已,比如for循环、while这些也都差不多,还有print跟response。write也感觉差不多,就是输出字符嘛,大同小异。java里面你就理解下实例化对象(对象都来自class,class

里面方法怎么写的,说明你这个对象实例化后可以干些什么,方法里面带了什么参数,就说明你这个对象实例化后将有些什么参数);再理解下怎么把现有的class弄进来使用;其他就跟其他编程差不多了,我以前只学过asp,不过做了十年asp算是理解比较深,原以为java输入真正编程软件应该比asp难很多,最后发现除了上面两点外,其他技术范围基本没有超出asp的技术范围只是形式格式略有不同而已。

i.o里面有输入输出需要的一些东西,他可以把外面进来的东西转换成合适的格式,也可以把我们程序内的内容以合适的格式输出,例如读取文件、写入文件,读取数据、写入数据,读取网络、写入网络,都会用到io。

网络依赖tcp/ip协议,和sockets接口,服务器端调用sockets的服务器端方法,打开监听(设定一个唯一端口号调用一个现成监听方法),一旦有东西传过来他就自动开始工作了,我们用io方法获得传来的内容分析、判断,然后产生相应操作;sockets客户端也类似,只要指定了服务器ip地址和那个对应的端口号,就能链接到服务器,然后用io方法发送返回信息。

窗口部分,有相关的windows包,导入后,只需要定义窗口尺寸、位置等,按钮、文本等等也都有对应的现成的给你引用,只要一一设定好就有了,还有一些窗口固有的组件比如最小化、关闭,关联上相应的功能就可以了。

大概就学了这么多,我估计基本概念都理解了,还差一个跟数据库的交互的概念,估计也不复杂,剩下的我预计就是用别人现成源码过来修改试验,进一步体会代码了。看来java确实如外面介绍的那样,并不算复杂,还没有用jbuilder一类的软件,用了后说不定更容易。

学编程这段日子里,由无知,到心头渐渐明朗,走过很多弯路,曾因jvm机制问题驻足不前,也曾因数据结构而苦恼不已,更因提前结束的大学生活而后悔良久。只是,静下来,看代码,体会其中的思想,慢慢地,一些东西,曾经的不明白,如今也清晰起来。只要坚持,那片广袤的天地已为你留出一片天地。学编程,基

础最重要,不要贪快,一步一步,把那些知识点弄的明明白白,然后看api文档,另外网上看一些源代码,体会其中的一些编程思想,csdn论坛也是个很好的学习地方。等基础好了,就可以学一些框架了,也就是所谓的j2ee,主要用来开发web的技术。如此看来,学习java并不难,只是要一点一点,走的实实在在。工作当中,这是我对学习java的一些个人体会!

李沛

xx.7.28

篇十一:java培训个人总结

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

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

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

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

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

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

一:项目的地位

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

他们欠缺的主要是两点:

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

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

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

二:如何选择项目

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

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

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

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

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

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

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

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

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

三:java怎么选择项目

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

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

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

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

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

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

(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。好了,把上面的分析用正向描述就是:

日常教学和练习中学习和掌握的知识==〉演示项目==〉分阶段项目==〉综合项目==〉胜任企业实际开发需要。

附注:有了好的项目还要有好的训练方法(这个另外立文讨论),最最基本和重要的一条就是:绝对要指导学生亲自动手做,而不是看和听,所以尽量不要选择有现成代码的项目,演示用的项目也最好不配发代码,让学生能够跟着做出来才是真的掌握了。

上面阐述了java对项目的态度和基本选择方法,这里再把其中几个重要的、与众不同的特点阐述如下:

1:真项目

项目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。还有一个一定要是最新的项目,企业的要求也是在不断变化的,应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。

java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。

2:真流程

开发的流程也要跟企业的实际开发保持一致。从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。

java的主力老师都是实战出身,在java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。

3:真环境

开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。

java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。老师就相当于项目经理,一个班分成多个小组,每个组有自己的team leader,大家分工合作,共同完成项目。

4:真开发

这是java最与众不同的一点,java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以java十分强调:项目一定要让学生动手写出来。

java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。这里有几个与众不同:

(1):现场带领学生一起做分析和设计,而不是预先做好了来讲讲。因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。

(2):java选用的项目基本都是企业最新的项目,很多都是java的学生和企业在同期开发,所以是不配发源代码的。这样也断绝了学生的依赖思想,认认真真去开发。可能有同学会问:为什么不选择有源代码的项目呢,那样还可以参考学习啊!

这是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的学员来讲,就是一个认识的误区了。因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟没看没有多大区别。

事实上,java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级erp都有开源的,而且很多都是大师级的作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这么做,效果也就不好了。当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习java开发的学生,所以java根据多年的培训经验,友情提示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲的,就算讲过看过,但是自己做不出来,那都不算会。java的主力老师都是实战出身,在java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。

篇十二:java培训个人总结

短短的一个月很快就过去了,在这短短的一个月里,我学到了很多,了解了很多。在这一个月里我学到了有关java等方面的知识,了解了关于软件开发的流程。了解了自己的不足,知道了自己努力的方向。

回顾这次的.实训,这次或许是最后的实训机会。我是一名大二的学生,明年或许就要出去实习了,所以我很珍惜这次的实训机会,因为它能够让我了解自己的不足以及以后自己努力的方向,同时也能让我了解软件开发的流程,增加一点软件开发经验和社会经验。让我在以后的实习中会更好的融入到其中,增加自己的就业机会,因为纵观现在的就业形势很不让人乐观,由于之前的经济危机,就业机会越来越少,就业也越来越难,这就给了我们很大的压力,所以要是没有真本事,就业岗位就无从谈起,因此,在以后的学习中,我会更加好好努力。

通过这次的实训,我学到了很多:

首先,对java识比以前有了更深的了解。在这之前由于种种原因我java学的很不好,编程我几乎写不出来。但经过这次的实训,我对java的理解,虽然还有很多都不懂,但我会在今后的实训和学习中加以学习了解,力求弄懂,增强自己对java的理解。

其次,在这次的实训中我的动手操作能力有了一点的提高,刚开始的时候jdk的配置,数据库的安装都出现了一定的问题,java可实话开发工具的不熟悉,所以开始的时候进程很慢,时间都用在

了jdk的配置,数据库的安装以及熟悉java可视化开发工具上,但付出有了回报,成功的配置了jdk,安装了数据库,熟悉了java可视化开发工具,总的说来,自己还是有一定的收获的。因为自己的动手操纵能力得到了提高。

最后是团队协作。在整个项目完成过程中团队协作有着不可替代的作用。从在刚拿到项目时对项目的分析到最后的项目完结的都有一定的体现。刚拿到项目时,我们团队进行了分析,并分配了各自的任务。当我们其中一人遇到问题的时候,我们其他人都会去帮忙,效率提升了很多。但可能由于不是一个宿舍的,大家彼此间都不是很了解,所以交流中还是存在了一定的问题。

在这次的实训当中我收获颇丰。但仅仅靠这一个月的学习还是远远不够的。所以在以后的学习中我会更加努力,提高自己的能力,让自己在以后的社会道路上打下坚实的基础。

姚新

xx年1月4号

篇十三:java培训个人总结

在参加java培训的过程中,我感觉其实生活中很多时候与java编程是存在相似点。比如说我们想做一件什么事情,总是要先考虑下这件事的目的,做这件事需要先准备些什么,中间需要哪些步骤,最后怎样实现等等,这与计算机编程思想惊人的相似,所以说,在很多人看来,计算机很复杂,有数不清的代码和程序,可以完成各种各样的任务,功能千变万化,要掌握它是一件难比登天的任务,其实不然。计算机这种复杂性,完全是人赋予的,计算机只是单纯的按照人的指令去完成我们想要完成的事情,从这方面看,计算机是简单的。经过这一次的java培训,其中在java的各种对象、方法、类等方面上有了一个比较清晰的想法。当自学时你就不会听到有这样那样的想法与指导,学起来就会比较迷茫点,但是有一个比较好的老师来指点下,那样的效果上就不同了,可以让自己的想法和思维开拓点来学习java,亲身感受过后,确实跟自学不一样,自学的话自己可能没这么好去理解代码,有个人带着去理解代码的话学起来比较快点,,用起来也会容易惯通点。

通过这次也可以学到一个团队的重要,一个小项目可以一个人完成,那已经是很痛苦地那种了,但是有一个大项目的话,那就不是一个人可以完成的事了,必须由一个团体来共同完成项目,一个的技术牛不算牛,一个团体的技术都很牛了那才是真正的牛,这样合作起来就可以更快的把一个项目完成,而个人来说,也不会感到非常吃力,分功合作对于开发一个项目来说是重要的一步,在分功的时候必须分功明确,不然在开发程中会出现错乱,例如一个人开发了登陆的功能了,由于分功不明确导至另一个在也在开发此功能,分功明确了会减去诸如些类的一些错误和麻烦。

学习java听老师讲起课来,自己听得明白,但是要自己真的去动手起来做的话,那又是另一回事了,听得明白不一定就可以自己动手做出来,学习java只有听懂了再自己动手去真正的做出一些东西来运用这些代码,让代码在你脑子里转来转去不会忘记,看到有类似的功能你就会想起用这些代码来实现功能,那样才是真正的学会了,不然你就是没学会。在学习java的过程中,最需要的就是耐心,在学习过程中,你会感到很枯燥,烦恼,无聊,寂寞感,,但这些都不是问题,问题就是你能不能有很好的耐心学习下去,一般的人都是因为没耐心学下去才觉得它难,其实java语言本身不难,难的是你自己有没有这样的心去学,耐心很重要。耐心+灵活变通=学习成功

篇十四:java项目个人总结

在这次项目之前,因为个人状态和心态的原因,从gui课程开始便基本处于神游的状态,状态上体现在上课精力不能集中犯困,心态上体现在明知道自己没学懂也没有主动去问休息时也没有去练习解决问题。

这样的情况导致项目的第一天我基本都在努力的想要看懂老师给的ui界面,因为我甚至不知道该在哪里插入我的代码!项目的过程中感觉就像一次开荒,遇到的每一个需求基本都要临时去学去请教才能解决,也是这样导致最后没能完成项目的所有需求,但我并没有遗憾或其他什么不安的情绪,因为我已经收获到了我想要的东西:

1.知识点的归纳整理与应用:在实际项目中将本来杂乱无章的知识点从应用的角度整理成自己能理解的体系,并去芜存精,优化提炼自己的知识点。

2:对java编程流程的理解:主要是理解到了三层架构的好处以及在编程架构上的必要性,因为个人有点马虎的原因,经常要改局部代码,如果没有使用三层架构,完全无法想象怎么从一堆代码中找出自己想要的!

3:javadoc的必要性:虽然这一次的项目中我没有做到给所有方法、类注释,但我自己写的方法基本都是先写注释,这样即能先整理一次写方法的思路,又能在后期通过清晰的注释使用或修改方法。

4:自我认识:这次项目开始的时候我曾乐观的认为大部分的功能在代码思路方面都差不多,后期不过是一个堆代码的过程,应该有机会在要求时完成项目。

然而实际写代码才发现纸上得来终觉浅,写的过程中一点很小的过失就能造成无尽的报错,一些自认为掌握了的知识点应用起来才发现漏洞百出,我粗浅掌握的知识点根本不能灵活应用。

5.纠错能力:写到上面才想起,纠错能力也是这次项目暴露的大问题,登陆功能时报的一大堆错就是老师也帮我找了好久才一一解决。

写代码中不报错是不可能的,因此纠错能力也是程序猿生存必不可少的。

篇十五:java项目个人总结

这是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。

这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的学员来讲,就是一个认识的误区了。

因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟没看没有多大区别。

事实上,Java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级ERP都有开源的,而且很多都是大师级的作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这么做,效果也就不好了。

当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习Java开发的学生,所以Java根据多年的培训经验,友情提示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。

自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲的,就算讲过看过,但是自己做不出来,那都不算会。

(3):Java在课堂上除了带领学生去分析设计外,还会分析一些重点、难点功能的实现机制和原理,然后指导学生去实现。

5:真技术

Java在每个项目中,特别会抽取有难度的部分让学生们在老师指导下实现,专门啃硬骨头,那才能真正锻炼学生的开发能力。

比如:在做OA类的项目时,会重点去做工作流、公文收发、在线Office控制等;在做CRM类项目时:会重点去做销售自动化和市场块的业务;在做人力资源类项目的时候会重点去做人力跟踪和人力评测模型等......

Java在每个项目中,都会使用目前企业最新最流行的技术,按照最新的难度去要求,从而让学员能更符合企业的需要。

6:真经验

Java的项目都是企业最新的真实项目,经过开发训练,学员能够积累足够的真实的开发经验,以胜任企业的工作需要。

在进行项目分析时,还会全面讲解项目所要求的业务,让学员从业务和技术上都能充分积累。

7:真实力

作为就业培训,项目的好坏对培训质量的影响非常大,常常是决定性的作用。

这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:事实上,不采用有源代码的教学性项目对Java的要求非常高。

试想一下,如果项目分发下去,老师带着分析后,学生都不会做会出现什么样的后果?这对Java的教学质量提出了极高的要求,如果教学质量达不到让学员独立开发的`水平,对依靠质量取胜和口碑发展的Java将是毁灭性的。

另外一个,由于是全真的项目,在开发的过程中,肯定会有很多的问题出现,这些都要老师去解决,由于不像教学项目那样预先做好,又需要老师能很快地解决各个问题,这对老师的真实开发水平有极高的要求,这可是需要真功夫的。

总结

总之,Java通过真实的项目,真实的开发环境和开发流程,指导学员去真正开发,让学员得到真正的锻炼,收获真正的开发能力。

篇十六:java项目个人总结

经过两个星期的java项目实习,对java对象无论是各个知识点还是思想都有显著的提高。

在做《贷款信息查询服务器系统》的这两个时间中,张成峰老师给了我们很大的帮助,自身感觉进步很大。

在之前学的不太好不明白的地方,现在也有了比较清楚的认识,很感谢张成峰老师又一次帮助我们重新过了一遍java面向对象。

在这短短两个周的项目中,每天的代码量都不是之前想的那么多,但是每天都过得很充实,扩展了许多之前不知道的知识,班上的学习气氛也是空前的凝聚,虽说代码量不多,但却几乎包含了所有java面向对象的重要知识点。

本次项目可以分为:(1)表现层(2)业务层(3)持久层(4)控制器。

充分运用了封装,继承,多态,J2SE,套接字,I/O,集合,日期日历,多线程,反射,JDBC,JDOM,工厂模式....等。

扩张了许多项目中用到的知识点:单例模式、工厂模式、回调机制、数据库连接池等等。

张老师给我们的讲解中,每每都是以思想为中心,不要求我们把代码记的好熟,只要求我们能够理解思想,正因如此,许多之前堵塞的问题在项目中都有了头绪,更好的在项目中体现出来。

其次也认识到了写注释是个很重要的事情,说实话,我们之前写的代码在许多程序员中都是垃圾代码,其实说的也对,确实是垃圾,但是我们不会灰心丧气,毕竟我们现在才刚刚开始,有哪一个程序员刚开始不写些垃圾代码呢,只有这样我们才能逐步养成好的编程习惯,规范是人人必须要遵循的。

不以规矩不成方圆,如果每个人都以自己的方式来做程序,一个人有一种程序代码,一万个人就有一万种代码,那就没有一个统一的标准。

所以我们必须养成好的编码规范。

不只是为了我们自己好看,也为了给阅读我们代码的人方便。

我们尤其应该在变量名的命名上下大工夫,不能图一时的方便,必须符合“见其名知其意。

”一定要为我们的代码加上相应的注释。

通过此次项目,虽说还是成功做出来了,但也的确发现了自身许多不足的地方。

因此大家更应该及时总结,找到自己的不足之处,从今天开始改变自我,努力做到最好,在以后的学习和工作中做得更好。

篇十七:java io流学习总结

java io流学习总结

一、什么是流?

流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由地控制文件、内存、IO设备等数据的流向。而IO流就是用于处理设备上的数据,如:硬盘、内存、键盘录入等。IO流根据处理类型的不同可分为字节流和字符流,根据流向的不同可分为输入流和输出流。

二、字节流和字符流的区别:

字符流,因为文件编码的不同,就有了对字符进行高效操作的字符流对象,它的原理就是基于字节流读取字节时去查了指定的码表。它和字节流的区别有两点:1.在读取数据的时候,字节流读到一个字节就返回一个字节,字符流使用了字节流读到一个或多个字节(一个中文对应的字节数是两个,在UTF-8码表中是3个字节)时,先去查指定的编码表,再将查到的字符返回;2.字节流可以处理所有类型的数据,如jpg、avi、mp3、wav等等,而字符流只能处理字符数据。所以可以根据处理的文件不同考虑使用字节流还是字符流,如果是纯文本数据可以优先考虑字符流,否则使用字节流。

三、IO体系,所具备的基本功能就是读和写:

1.字符流

|-- Reader(读)

|-- Writer(写)

Reader

|--InputStreamReader

|--FileReader:用于处理文件的字符读取流对象

Writer

|--OutputStreamWriter

|--FileWriter:用于处理文件的字符写入流对象

其实很容易就可以看出来,IO体系中的子类名后缀绝大部分是父类名称,而前缀则是体现子类特有功能的名称。

Reader中常见的方法:

|--int read()

读取一个字符,并返回读到的这个字符,读到流的末尾则返回-1。

|--int read(char[])

将读到的字符存入指定的数组中,返回的是读到的字符个数,

读到流的末尾则返回-1。

|--close()

读取字符其实用的是window系统的功能,就希望使用完毕后,

进行资源的释放。

FileReader除了自己的构造函数外没有特有的方法:

|--用于读取文本文件的流对象。

|--用于关联文本文件。

|--构造函数FileReader(String fileName)

在读取流对象初始化时,必须要指定一个被读取的文件,

如果该文件不存在则会发生FileNotFoundException异常。

Writer中常见的方法:

|--write()

将一个字符写入到流中。

|--write(char[])

将一个字符数组写入到流中。

|--writer(String)

将一个字符写入到流中。

|--flush()

刷新流,将流中的数据刷新到目的地中,流还存在。

|--close()

关闭资源,在关闭钱会先调用flush(), 刷新流中的数据到目的地。

FileWriter,除了自己的构造函数外没有特有的方法:

|--该类的特点

|--用于处理文本文件

|--没有默认的编码表

|--有临时缓冲

|--构造函数,在写入流对象初始化时,必须要有一个存储数据的目的地。

|--FileWriter(String fileName),该构造器是干什么用的呢?

|--调用系统资源

|--在指定位置创建一个文件,如果该文件已经存在则被覆盖。

|--FileWriter(String filename,Boolean append),这构造器的作用是?

当传入的boolean类型的值为true时,会在指定文件末尾处进行数据的续写。

清单1,将文本数据保存到文件中代码

private static void test1(){

FileWriter fw=null;

try {

//初始化FileWriter对象,指定文件名已经存储路径

fw=new FileWriter(“D:/”);

e(“将字符串写入流”);

//将流中的数据刷新到目的地,流还在

h();

e(“将字符串写入流”);

} catch (IOException e) {

tStackTrace();

}finally{

if(fw!=null){

try {

e();

} catch (IOException e1) {

tStackTrace();

}

}

}

}

清单2,读取一个已有文本文件,并将文本内容打印出来代码

private static void test2(){

FileReader fr=null;

try {

//初始化FileReader对象,指定文件路径

fr=new FileReader(“D:/”);

int ch=0;

while((ch=())!=-1){

//每次读取一个字符,直到读到末尾-1为止

篇十八:java总结

java集合总结

java集合总结(一)

一、数组、集合

数组、集合:都是一种容器,用一个对象管理多个对象;

数组:不能自动增长;只能存放同类型的元素

集合:能自动扩容;部分集合允许存放不同类型的元素;

二、学习这些集合类要掌握哪些东西:

1)怎样得到(选择)集合对象;

2)怎样添加元素

3)怎样删除元素

4)怎样循环遍历没一个元素

三、list、set、map

collection:父接口;

Set:接口---一个实现类:HashSet

List:接口---三个实现类:LinkedList,Vector,ArrayList

SortedSet:接口---实现类:TreeSet

1、List:

List:有序列表,允许存放重复的元素;

实现类:

ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;

LinkedList:链表实现,增删快,查询慢

Vector:数组实现,线程安全,重量级

:

无序集合,不允许存放重复的元素;

实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;

子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;

看API:泛型:表示一个对象;

Iterator:接口,迭代器;

hasNext();

next();

remove();

Iterable:可迭代的,访问的;

ng;实现了可迭代的接口就可以用迭代的方式访问;

只需实现iterator();方法即可;Iteratoriterator();

三种循环的访问方式:

只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;

ArrayList:自动扩容,是数组照搬过来的;

HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;

HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;

如果有两个Key重复,那么会覆盖之前的;

Hashtable:线程安全的

Properties:erties;key和value都是String类型,用来读配置文件;

HashMap与Hashtable区别:

HashMap线程不安全的,允许null作为key或value;

Hashtable线程安全的,不允许null作为key或value;

TreeMap:对key排好序的Map;key就是TreeSet,value对应每个key;

key要实现Comparable接口或TreeMap有自己的构造器;

HashSet:remove(Objecto)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象;

定义一个Map;key是课程名称,value是Integer表示选课人数;

(cou,(cou)+newInteger(1));

四、Hashtable、Properties

1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode方法和equals法。

2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。

常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue);

用法:我在C盘下建了一个名为的文件,文件的内容为:

name=hehe

password=12345

执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件

Propertiesp=newProperties();

(newFileInputStream(“C:”));

tln(roperty(“name”))

五、两个工具类Arrays和Collections

ys、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂

ections、主要提供了在collection上进行操作的静态方法

六、遗留的几个类

table,作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap

eration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。

k,继承自Vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。

et,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行

读取get(i)

设置set(i)

清楚clear(i)

七、常见笔试题目汇总

ection和Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set和List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

,Set,Map是否继承自Collection接口?

List,Set是,Map不是

3.两个对象值相同(ls(y)==true),但却可有不同的hashcode,这句话对不对?

不对,有相同的hashcode。

4.你所知道的集合类都有哪些?主要方法?

最常用的集合类是List和Map。List的.具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按数值索引访问元素的情形。

Map提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

5.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

快速排序的伪代码。

//使用快速排序方法对a[0:n-1]排序

从a[0:n-1]中选择一个元素作为middle,该元素为支点

把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点

递归地使用快速排序方法对left进行排序

递归地使用快速排序方法对right进行排序

所得结果为left+middle+right

Map和Hashtable的区别

都属于Map接口的类,实现了将惟一键映射到特定的值上。

HashMap类没有分类或者排序。它允许一个null键和多个null值。

Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。

里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()它们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。

equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

java集合总结(二)

java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。

java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。

下面就一一介绍四大接口及其实现类。

Set接口。set集合不允许包含相同的元素。set判断两个对象是否相同是根据equals方法。如果两个对象用equals方法返回的是true,set不会接受这两个对象。

HashSet是set接口的典型实现,HashSet按hash算法来存储集合中的元素。因此具有很好的存储和查找性能。HashSet判断两个元素的标准是两个元素的equals方法比较相等,同时两个对象的hasCode()方法返回值也相等。HashSet可以保存null元素。

List集合代表一个有序集合。集合中的每个元素都有其对应的顺序索引。Arraylist和vector是list接口的两个典型实现。他们之间的显着区别就是:vector是线性安全的,而arraylist不是。它们两个都是基于数组实现的list类。List还有一个基于链表实现的LinkedList类。当插入、删除元素的速度非常快。这个类比较特殊,功能也特别多,即实现了List接口,也实现了Dueue接口(双向队列)。可以当成双向队列使用,也可以当成栈使用。

Queue用于模拟队列的数据结构。LinkedList和ArrayDueue是其两个比较常用的实现类。

Map用于保存具有映射关系的数据。Map接口有如下几个常用的实现类:HashMap、HashTable、TreeMap。TreeMap是基于红黑树对TreeMap中所有key进行排序。HashMap和HashTable主要区别有两点:1、Hashtable是线性安全的,因此性能差些。2、HashMap可以使用null作为key或者value。

集合类还提供了一个工具类Collections。主要用于查找、替换、同步控制、设置不可变集合。

上面是对java集合类的一般概述,下面就set、list、map三者之间的关系进行剖析。

Set与Map的关系。Map集合中所有key集中起来,就组成了一个set集合。所以Map集合提供SetkeySet()方法返回所有key组成的set集合。由此可见,Map集合中的所有key具有set集合的特征,只要Map所有的key集中起来,它就是一个Set集合,这就实现了Map到Set的转换。同时,如果把Map中的元素看成key-value的set集合,也可以实现从Set到Map之间的转换。HashSet和HashMap分别作为它们的实现类。两者之间也挺相似的。HashSet的实现就是封装了HashMap对象来存储元素。它们的本质是一样的。类似于HashSet和HashMap的关系,其实TreeMap和TreeSet本质也差不多,TreeSet底层也是依赖TreeMap实现。

Map与List的关系。把Map的key-value分开来看,从另一个角度看,就可以把Map与List统一起来。

Map集合是一个关联数组,key可以组成Set集合,Map中的value可以重复,所以这些value可以组成一个List集合。但是需要注意的是,实质Map的values方法并未返回一个List集合。而是返回一个不存储元素的Collection集合,换一种角度来看对List集合,它也包含了两组值,其中一组就是虚拟的int类型的索引,另一组就是list集合元素,从这个意思上看,List就相当于所有key都是int型的Map。

下面讲解几个相似类之间的差异。

ArrayList和LinkedList。ArrayList是一种顺序存储的线性表,其底层是采用数组实现的,而LinkedList是链式存储的线性表。其本质就是一个双向链表。对于随机存储比较频繁的元素操作应选用ArrayList,对于经常需要增加、删除元素应该选用LinkedList。但总的来说ArrayList的总体性能还是优于LinkedList。

HashSet与HashMap的性能选项。主要有两个方面:容量和负载因子(尺寸/容量)。较低负载因子会增加查询数据的性能,但是会降低hash表所占的内存开销。较高负载因子则反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否则浪费内存空间。