下面是小编为大家收集的java学习总结,本文共13篇,仅供参考,欢迎大家阅读,一起分享。

篇1: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的用法
篇2:java学习总结
1、我感觉学习java应该是循环渐进,有始有终,按部就班,脚踏实地。java是一门有着阶梯性的一们语言,如果要学习它。我觉得最好还是按照java的学习体系,先学习什么,在学习什么,只有这样,我们在学习中才会遇到更少的麻烦。
java是一门更倾向于网络的语言java学习心得体会java学习心得体会。不要上来就学习JSP,这样不好,因为这没有基础。在以后的学习中很可能遇到很多的麻烦,这就不好了。
2、信心,恒心,毅力是最重要的。这是我们必须具备的心理素质。要是学习这门语言开始的时候很有兴趣,遇到苦难就退缩,这样最终会放弃学习java,没有经历风雨怎么见彩虹。编程就是有的时候就是那么这么人java学习心得体会心得体会。
会遇到很多的困惑。但是一旦你弄懂了,或者是你把问题解决了,你会感到很兴奋,编程的快乐就在此了。
篇3: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太不安全了,而且多核的支持太差了。
篇4:java培训学习总结
不知不觉来到尚学堂学习已经一个多月了。回想起没有开始决定培训之前,自己其实一直是在矛盾和犹豫中徘徊。在那个时候,左老师是最开始找我聊天的,开始了解到尚学堂也是从她那儿。一直以来其实都没有考虑过要参加这样的培训,那时的我还很坚定地说,我要考教师资格证,家里人也支持我以后去当老师的。但是当我得知,教师资格证得应届毕业生才能考,并且从开始改革后,我就开始纠结了。其实也不能说是纠结,只是觉得考教师资格证不需要花那么多的时间,这样我还有一年多的空闲时间,不能这样子白白浪费了,而自己又没有打算考研。于是,对于信息计算科学这样一个专业的我,我觉得自己是不是可以考虑去参加培训,这样毕业以后也不失为一条出路,毕竟自己对计算机还是有兴趣的。
经过一段时间的思量,也比较了一下中信和尚学堂,最终还是选择来到了尚学堂。给我和同伴上第一节试听课的是李毅老师,他给我留下了深刻的印象,不仅是人长的帅气,最重要的是他讲课的风格我很喜欢,能让我瞬间产生浓厚的兴趣。开始一直期盼着要是他给我们上课该多好,结果到第一次正式上课的时候,给我们授课的并不是他,而是阮总。说实话,开始有点小小的失望。但是,经过了一个多月的培训,我发现阮总其实也是一个很幽默的人,上课的时候,也总是能将那些比较抽象的概念什么的,用生活中的一些实际例子具体化,让我们更好的去吸收与消化。慢慢地其实也就习惯了,觉得也没有什么不好。毕竟学知识,最重要靠的还是自己,老师只是一个引导而已。
在尚学堂,比较庆幸,可以认识一群新的朋友,虽然大家平常接触还不是那么多,但是我相信,在以后更长的日子里,我们可以相互了解的更多,成为很好的朋友。
当然,这一个月多里,收获更多的是知识。在刚开始的前一段时间里,阮总初步的教我们了解了XHTML和CSS的部分基础知识,让我们领略到了网页设计的奇妙之处。当我第一次自己学会做一些简单的网页界面时,我很兴奋,真的很兴奋。虽然第一次做的网页被阮总说很丑,但我还是很开心,我还很肯定的和同伴说,我们的前途一片光明。后来,阮总告诉我们,其实网页设计那部分并不是我们要学习的,只是我们要了解一下,看得懂代码的意思就好,还风趣地说我们不是美工,不能抢了别人的饭碗。接下来的日子,是在寒假了,我们开始正式接触到JAVA学习。我想,这是初级阶段,也应该是基础阶段,一定要把基础打牢,以后的学习才不会那么吃力。开始的那部分是JAVA的基础知识,我发现和C语言区别不是很大,在学校有认真地学习过C语言,所以基础知识部分学起来还是很轻松的。学完基础知识一直到现在,我们接触的是JAVA面向对象的学习,这是一个崭新的过程,其他人我不清楚,至少对于我来说是这样。我发现,这部分学习的内容没以前学的那么轻松,单一的操作也许会,就是很多情况下自己要会灵活的运用。而且,正像阮总说的,教的知识肯定是教不完的,重点是我们要自己学会找到学习方法。其实,很多东西都没有你想象的那么难,只要你肯努力,肯下功夫,找到方法后,你也是可以做的很好的。我发现,光听老师讲,真的是远远不够,重点在于课后一定要多练习,这样才能帮助自己更快的接受新知识。
寒假过来后,阮总告诉我们,寒假他都没有怎么休息一直在家里学习,他说,你只有不断地去学习新的知识,你才可能比别人收获的更多。听完他说的,然后比较着自己,阮总真的是不简单,挺佩服他的。我想,在尚学堂这样一个积极上进的集体中,我也会成长的很快,收获的很多。我依然坚信自己前途一片光明。
篇5:java培训学习总结
java培训从开始的5月11号到现在已经过了两个月了,感谢源动(中国)给与我们这次宝贵的培训,使学员在日后的社会中增加了竞争筹码。我个人非常重视这次培训的机会。
从一开始的java OO,数据库,SE,会计基础到进段时间学习的HTML,CSS,JAVASCRIPT,使我们都有了不同程度的提高。首先,源动的培训打破传统教育原有的单一、教条的教学模式,在学习过程中窦老师经常关心我们的学习进程和效率,这样学习过程中的疑问会得到及时解决,加快了学习进度,也增加了个人及团队的工作效率。其次,在java培训时,老师常常会指派我们作业,这些作业配合着开发的项目,使我们得到了实战的经验。经验是宝贵的学习不只是学一学书面上的东西,尤其是做软件开发,经验尤其起到至关重要的作用。一个程序员的成长可以看作是基础知识的牢固基础上的,开发经验的成长,这些是我们在源动学习中,学到的宝贵的东西。再次,培训过程中侧重团队的合作,这点很重要,在今后真正进入企业工作以后,开发项目往往是一个或者几个团队来配合,人与人之间的沟通不仅仅是技术上的互相支服,它更加侧重于一个良好的协作,通过高效的团队协作可常常达到事半功倍的效果。此外,源动的java培训中也为我们开设了素质拓展、面试技巧、心理辅导等职业能力的课程,这些课程不是学校里面照本宣科的东西,而是实实在在能拿来用的知识,在这些知识的消化过程中,每位学员都在个人能力上有了不同程度的提高,为今后的工作架设坚固的桥梁。
如果说学习一门语言很容易,那就大错特错了。更不要说是一门从来没有接触过的语言,对于java培训的初学者来说就好比是让一个人去吃一个从来没有见过的食物一样,要费一些时间去研究。学一门语言最重要的是学会观察,了解语言的特点很重要。所以说学语言一定要学会观察,而且更要学会总结。
在学习过程中,比如编程中总会遇到这样那样的问题,我作为个人的理解是,当遇到问题时先不要急着去请教别人,要先检查自己的代码是不是出现了一些经常犯得错误,当确定自己不明白的时候,带着疑问与小组的成员商量,或者向老师请教。当自己独立解决问题后所学到的不仅仅是内心的小小满足,而是这个小经验被自己消化了了的重要性。
以上是我在源动学习java的一点点培训工作总结,接下来的java培训,我想会更有趣、更专业,所以我会更认真听,理论与实践更加强化我们的工作,因为我也很热爱且珍惜这份工作!学习能让人进步,工作能让人自信,相信我们在不断地学习和工作经验当中让自己变得更加充实。
篇6: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上,相信这项技术一定很有发展。
篇7:java 项目学习总结
经过这最近一段时间的项目开发与考核,今天终于画上圆满的句号,我长呼了一口气,同时在内心深处,也默默地为接下来的学习,做一个前段时间的项目总结,也是学习的总结,吸取之前的经验教训,前事不忘后事之师,错误并不可怕,可怕的是再在同一个地方犯同样错误,所以对于我来说,更多的去自我认知,知我批评要比表扬和赞许来的更加深刻,非常有必要做一个总结。
虽然所做的项目并没做到考核老师所希望看到的效果,和得到正面的点评,也与自己所想象的结果大相径庭,当然可能在项目最开始的时候,我也曾做过这样最坏的打算,但是当现实渐渐逼近的时候,我却一时难以接受这样的结果,是我意料之外,但也是情理之中,俗话说:种瓜得瓜,种豆得豆。
在项目开发其中,我有过给自己找借口,有过灰心的时候,也有过急躁,如坐针毡的时候,但是想要作为一个合格优秀的程序员,你不仅不能这样的情绪,而且在真实的开发环境当中,会有遇到比这更艰难的情况,更不好开发环境,所以要完成一个项目的开发,我得要利用好为数不多的学习时间,更加勇敢的直面这些缺点,并且改正它,不要认为自己以前没学过JAVA,没有这方面的经验而去给自己找借口,越过心理上的这一到鸿沟。
考核的胡老师说过:不要总是把自己当成一个学生去看待,这样容易松懈,应该是把自己当做一个职业人去看待,做好当下的每一个效果,上好当下的每一节课,让自己时时刻刻紧张起来。这样类似的话,在我之前的公司,也有主管这样说过,虽然我已大学毕业了,没有完全把自己当一个学生去看待,但自己又何尝不是有过这样的念头,特别是别人都是这样想的时候,学习的态度不够坚定,立场不坚决,这也是导致我没有学好的主要原因之一吧。
工善欲器事,必先利其器。除了保持好的心理和端庄学习的态度外,更要总结更好的学习方法,不要让自己陷入到疲惫学习的死胡同了,积累好的学习经验,去掌握好的学习方法,好的学习方法不仅是自己当下一笔无形的财富,也是在不久的将来,在工作当中竞争的一把利器。
吾日三省吾身,只有在自己的总结中给予自己更多的认知,反思,而少一些褒奖,这样自己会对平时忽视的一些地方,能有更加深刻的理解和认识,实践是检验真理的唯一标准,虽然实践中我们所遇到的挫折与失败会有无数次,而成功只有一次,但是只要成功了,我的付出就是值得的,就像前面有无数个-1,但你只要最总做到了一个 1,你的结果就是 1的,在别人的眼里你就是成功的,在客户的眼里,你项目是物美价廉的。
[java 项目学习总结]
篇8: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:/test.txt”);
fw.write(“将字符串写入流”);
//将流中的数据刷新到目的地,流还在
fw.flush();
fw.write(“将字符串写入流”);
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fw!=null){
try {
fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
清单2,读取一个已有文本文件,并将文本内容打印出来代码
private static void test2(){
FileReader fr=null;
try {
//初始化FileReader对象,指定文件路径
fr=new FileReader(“D:/test.txt”);
int ch=0;
while((ch=fr.read())!=-1){
//每次读取一个字符,直到读到末尾-1为止
篇9:java总结
一、数组、集合
数组、集合:都是一种容器,用一个对象管理多个对象;
数组:不能自动增长;只能存放同类型的元素
集合:能自动扩容;部分集合允许存放不同类型的元素;
二、学习这些集合类要掌握哪些东西:
1)怎样得到(选择)集合对象;
2)怎样添加元素
3)怎样删除元素
4)怎样循环遍历没一个元素
三、list、set、map
collection:父接口;
Set:接口---一个实现类:HashSet
List:接口---三个实现类:LinkedList,Vector,ArrayList
SortedSet:接口---实现类:TreeSet
1、List:
List:有序列表,允许存放重复的元素;
实现类:
ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;
LinkedList:链表实现,增删快,查询慢
Vector:数组实现,线程安全,重量级
2.Set:
无序集合,不允许存放重复的元素;
实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;
子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;
看API:泛型:表示一个对象;
Iterator:接口,迭代器;
java.util;
hasNext();
next();
remove();
Iterable:可迭代的,访问的;
ng;实现了可迭代的接口就可以用迭代的方式访问;
只需实现iterator();方法即可;Iteratoriterator();
三种循环的访问方式:
只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;
ArrayList:自动扩容,是数组照搬过来的;
3.Map
HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;
HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;
如果有两个Key重复,那么会覆盖之前的;
Hashtable:线程安全的
Properties:java.util.Properties;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表示选课人数;
map.put(cou,map.get(cou)+newInteger(1));
四、Hashtable、Properties
1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的.对象必须实现hashCode方法和equals法。
2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。
常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue);
用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为:
name=hehe
password=12345
执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件
Propertiesp=newProperties();
p.load(newFileInputStream(“C:yy.dat”));
System.out.println(p.getProperty(“name”))
五、两个工具类Arrays和Collections
1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
2.Collections、主要提供了在collection上进行操作的静态方法
六、遗留的几个类
1.Hashtable,作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap
2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。
3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。
4.BitSet,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行
读取get(i)
设置set(i)
清楚clear(i)
七、常见笔试题目汇总
1.Collection和Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2.List,Set,Map是否继承自Collection接口?
List,Set是,Map不是
3.两个对象值相同(x.equals(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
6.HashMap和Hashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或者排序。它允许一个null键和多个null值。
Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。
7.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
篇10: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:数组实现,线程安全,重量级
2.Set:
无序集合,不允许存放重复的元素;
实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;
子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;
看API:
Iterator:接口,迭代器;
java.util;
hasNext;
next();
remove();
Iterable:可迭代的,访问的;
ng;实现了可迭代的接口就可以用迭代的方式访问;
只需实现iterator();方法即可;Iteratoriterator();
三种循环的访问方式:
只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;
ArrayList:自动扩容,是数组照搬过来的;
3.Map
HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;
HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;
如果有两个Key重复,那么会覆盖之前的;
Hashtable:线程安全的
Properties:java.util.Properties;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表示选课人数;
map.put(cou,map.get(cou)+newInteger(1));
四、Hashtable、Properties
1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode方法和equals法。
2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。
常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue);
用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为:
name=hehe
password=12345
执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件
Propertiesp=newProperties();
p.load(newFileInputStream(“C:\\yy.dat”));
System.out.println(p.getProperty(“name”))
五、两个工具类Arrays和Collections
1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
2.Collections、主要提供了在collection上进行操作的静态方法
六、遗留的几个类
1.Hashtable,作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap
2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。
3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。
4.BitSet,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行
读取get(i)
设置set(i)
清楚clear(i)
七、常见笔试题目汇总
1.Collection和Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2.List,Set,Map是否继承自Collection接口?
List,Set是,Map不是
3.两个对象值相同(x.equals(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
6.HashMap和Hashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或者排序。它允许一个null键和多个null值。
Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。
7.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是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集合提供Set
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表所占的内存开销。较高负载因子则反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否则浪费内存空间。
篇11:java学习心得体会
从大三开始算,我学习java已经有一年的时间了,不过虽然时间长,但是对于现在的我还是一个初学者,懂不了多少的java初学者。期间曾迷茫过,曾困惑过,走了不少的弯路,老师布置的试验作业每次都是不会做,每次都是要问同学,这个代码什么意思啊?为什么用这条代码,用别的不行吗?甚至后来根本没耐心问,索性就复制同学的作业交上去。但是都是各种0分,害的同学也这样,不过他能找老师反驳,而我却没实力。。。渐渐的,我认识到这样下去是不行的,我必须改正自己的学习态度和方式。接下提到的就是我这一年来的java学习心得。 刚一开始学习java时,我就已经学习过C语言,不过C语言学的不是很好,所以开始看到java的时候我很反感,看着源代码,都不知道失什么意思。看书的时候一看到源代码就头疼,因为根本看不懂。那段时间根本就是一无所获,在图书馆借了一本书,关java的语法特性,与别的语言相比的优点,什么跨平台,源代码公开,什么write 、once 、run 、anywhere,能说得头头是道,可是一到具体的问题,想写一些具体的东西,问题就都来了,根本不知道该怎么下手。所以每次李旺老师布置的试验作业都没的按时完成。渐渐的时间过去了,一点进展都没有,我都几乎要放弃了。
而后又同学经常来宿舍跟我讲解,我很感谢他。慢慢的我也理解了一些知识。从他那里,我认识到,JAVA是一门计算机语言,是人类发明的语言,应该比人类语言更容易学习,只要你有一种必胜学习JAVA心态就可以成功。学习JAVA的方法:JAVA学习中,首先要做到课前、课后复习及预习,要时时保持一个清醒的头脑;多和同学沟通;互相学习;取长补短;在学习中做到帮助他人或他人帮助自己。学习java,的确要学习的东西很多,就像同学提到的。Java不像、net一家独大,Java的繁盛在于开源社区的庞大,这也带来了分支太多的问题,怎样选择一条好的学习路线,对于初学者来说,的确是一件很迷茫的事。其实不管java东西再多,总有规律可循。对于学习java基础的经验就是多做、多思考,基础知识的学习不能不求甚解,要追本溯源,弄清问题的本质。这样才能举一反三,由点及面。java的所有编程思路都是“面向对象”的编程。所以大家在往更高境界发展以前一定要打好基础,基础是王道。我们的基础要扎实扎实再扎实。所谓打好基 础并不是说要熟悉所有的java代码。要了解java的结构。class,methode,object,各种套用import,e_tend 让自己在结构上对java有个立体而且整体的了 解。
学Java千万不要浮躁。说到浮躁,这也是一个很值得我深思的问题。我觉得我自己也有这样的倾向,不仅是我,估计大多数的人都有这个毛病。总是喜欢讨论什么语言最好,什么语言功能强大。这种讨论倒没有错,不过真正学习的时候,浮躁会使你失去很多。在学习过程中,我很努力地使自己保持心理的平静,从基础学起,甚至是一些看上去完全没有必要的基础。
同学要扎扎实实,一步一个脚印的逐步学习,不要想着一步登天。不然我问他的时候,他跟我讲的我也都不懂,这样对我也没用。
要多查API,它是Java编程的基本方法,也是编程过程中所不断利用的资源。Java的学习过程不仅仅是基本语法的学习,更多的是去学习和掌握它所提供的API类库。对于所接触到的类,方法,都去仔细去阅读文档的说明,再用自己编写的实例去此时一下。而且不要只看而不练,学好java靠的还是实践,在一周两节的实验课要认真编程,不懂问同学或问李老师。只有理论和实践相结合才能真正掌握只是和技能。而且还要懂得运用百度和谷歌,遇到问题可以先搜索一下,实在不懂再找同学。理论学习。通过对理论的学习,尽量了解新知识的概念;学习之后只是粗略的了解概念,不能和实际很好的结合。根据理论学习的知识,考虑在什么场合下可以应用这个新知识,哪些地方已经应用了这个概念,建立对新知识的感性认识。 java是一种面向对象的操作语言,必须要明白这点,才能从总体上把握java。学习编程,首先要从分析别人的代码开始,明白他们的思路,认真分析,在学习的过程中一定要动手做、写代码,九比如说老师布置的试验作业,一定要自己做,不能抄同学的,首先不是为了应付老师,而是要让自己真正懂得java,这样慢慢的,以后的试验自己就又实力去做。学习java不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,实践失最重要的。而且还可以从实验中,体会到编程的乐趣,感受到自己做好一个程序,然后运行出结果,失很有成就感的!
而对于J2EE,首先要先学JSP。要明白JSP的工作原理,在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet,而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息JSP的调试比较麻烦,特别是当bean是在一个session中存在时,更加困难。得从好几个页面开始往里面走才行。通常是用out、println()或System、out、print()来打一大堆的信息来查问题。如果是用jbuilder做开发,它能直接调试JSP、不过更重要的是知道错误产生的原因及解决方法。JSP是用JAVA写的,所以它是大小写敏感的,用过其他编程语言的人最容易犯这个错误。另外在浏览器的地址栏中输入的访问JSP的地址也是区分大小写的、在jsp中判断字符串要使用compareTo方法,不要用==,因为在java中String变量不是一个简单的变量而是一个类实。所以JSP的知识不能欠缺,理解什么是servlet,什么是java bean,熟悉jsp常使用的标签 对于学习java基础的经验就是多做、多思考,基础知识的学习不能不求甚解,要追本溯源,弄清问题的本质。这样才能举一反三,由点及面。对于抽象的东西要能具体化,对于具体的东西要能抽象化。现在我学习java基础一直使用的是《Java核心技术》这本书,这本书失同学推荐我看的,感觉挺不错的,很基础很全面。这本书强调重视基础,如果java基础打的牢,在学习那些java框架就是非常轻松的事了。
在这一年的学习过程中,通过同学的帮助和李旺老师的教导,我对java有了初步的认识和了解。学习java首先主要是学习了Java的程序结构,包括了循环、数组、类和方法以及字符串处理等内容。在学习期间,上课认真听老师的讲解,特别是课后练习和上机的题目,以及老师提供给我们的有关学习编程语言的方法和技巧,对于我巩固所学的理论知识有很大的帮助。现在我也只是刚刚开始学习Java语言,所以想真正掌握Java技术,以后还会有很长的一段过程需要我们更加努力地去学习。毕竟,知识需要靠积累才能真正掌握。
篇12:java学习笔记
java学习笔记
jdk(java development kit)有如下公司或组织开发jdk
sun jdk
ibm jdk
bea jrocket
gun jdk
其中ibm的jdk包含的jvm(java virtual machine)运行效率要比sun jdk包含的jvm高出许多。而专门运行在x86平台的jrocket在服务端运行效率也要比sun jdk好很多。但不管怎么说,我们还是需要先把sun jdk掌握好。
1、jdk的下载和安装
jdk又叫做j2se(java2 sdk standard edition),可以从sun的java网站上下载到,java.sun/j2se/downloads.html ,jdk当前最新的版本是j2sdk1.4.2,建议下载该版本的jdk,下载页面在这里:java.sun/j2se/1.4.2/download.html。
下载好的jdk是一个可执行安装程序,默认安装完毕后会在c:\program files\java\目录下安装一套jre(供浏览器来使用),在c:\j2sdk1.4.2下安装一套jdk(也包括一套jre)。然后我们需要在环境变量path的最前面增加java的路径c:\j2sdk1.4.2\bin。这样jdk就安装好了。
2、java documentation
java编程手册,java核心所在
3、java 应用服务器
a、tomcat
b、ibm webshpere
c、bea weblogic
d、免费 jboss
4、java应用的运行环境
应用服务器(app server)
app server是运行java企业组件的平台,构成了应用软件的主要运行环境。当前主流的app server是bea公司的weblogic server和ibm公司的websphere以及免费的jboss,选择其中一个进行学习就可以了,个人推荐weblogic,因为它的体系结构更加干净,开发和部署更加方便,是java企业软件开发人员首选的开发平台。下面简要介绍几种常用的app server:
1、tomcat
tomcat严格意义上并不是一个真正的app server,它只是一个可以支持运行serlvet/jsp的web容器,不过tomcat也扩展了一些app server的功能,如jndi,数据库连接池,用户事务处理等等。tomcat被非常广泛的应用在中小规模的java web应用中,因此本文做一点下载、安装和配置tomcat的介绍:
tomcat是apache组织下jakarta项目下的一个子项目,它的主网站是:jakarta.apache.org/tomcat/ ,tomcat最新版本是tomcat4.1.27,软件下载的连接是:www.apache.org/dist/jakarta/tomcat-4/binaries/ 。
下载tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:
java_home=c:\j2sdk1.4.2
catalina_home=d:\tomcat4 (你的tomcat安装目录)
这样就安装好了,启动tomcat运行catalina_home\bin\startup.bat,关闭tomcat运行shutdown.bat脚本。tomcat启动以后,默认使用8080端口,因此可以用浏览器访问localhost:8080来测试tomcat是否正常启动。
tomcat提供了两个web界面的管理工具,url分别是:
localhost:8080/admin/index.jsp
localhost:8080/manager/html
在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开catalina_home\conf\tomcat-users.xml这个文件,加入如下几行:
这样用户“robbin”就具备了超级管理员权限。重新启动tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过web方式进行tomcat的配置和管理了。
2、bea weblogic
weblogic可以到bea的网站上免费注册之后下载到最新的weblogic8.1企业版,license可以免费使用1年时间,其实这已经完全足够了。weblogic的下载连接:commerce.bea/index.jsp,.../edocs.bea/ 。
3、ibm webshpere
websphere同样可以下载到免费的`试用版本,到ibm的developerworks网站可以看到websphere试用产品的下载和相关的websphere的资料,developerworks中文网站的连接是:www-900.ibm/developerworks/cn/wsdd/ ,websphere的下载连接:www7b.software.ibm/wsdd/...wassupport.html 。
4、jboss
jboss是免费开源的app server,可以免费的从jboss网站下载:www.jboss.org/,然...n/idea.html
四、java应用的运行环境
java的应用可以简单分为以下几个方面:
1、java的桌面应用
桌面应用一般仅仅需要jre的支持就足够了。
2、java web应用
java的web应用至少需要安装jdk和一个web容器(例如tomcat),以及一个多用户数据库,web应用至少分为三层:
browser层:浏览器显示用户页面
web层:运行servlet/jsp
db层:后端数据库,向java程序提供数据访问服务
3、java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
browser层:浏览器显示用户页面
client层:java客户端图形程序(或者嵌入式设备的程序)直接和web层或者ejb层交互
web层:运行servlet/jsp
ejb层:运行ejb,完成业务逻辑运算
db层:后端数据库,向java程序提供数据访问服务
4、java嵌入式应用
java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从sun下载j2me开发包,j2me包含了嵌入式设备专用虚拟机kvm,和普通的jdk中包含的jvm有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。
篇13:怎样学习Java
怎样学习Java
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。
2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。
3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。
4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。
6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
7.学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览群书; 8.看再多的书是学不全脚本的,要多实践
9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 10.学习脚本最好的方法之一就是多练习;
11.在任何时刻都不要认为自己手中的书已经足够了;
12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件;
15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中;
16.不要漏掉书中任何一个练习——请全部做完并记录下思路;
17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工作。
18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的;
19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解----你能讲清楚才说明你真的理解了;
20.记录下在和别人交流时发现的自己忽视或不理解的知识点;
21.保存好你做过的所有的源文件----那是你最好的积累之一;
22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
23,到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。
24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚!!
讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。
浮躁的人容易问:我到底该学什么;----别问,学就对了;
浮躁的人容易问:Js有钱途吗;----建议你去抢银行;
浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!
浮躁的人分两种:只观望而不学的人;只学而不坚持的人;
浮躁的人永远不是一个高手。
怎样学好C#编程
1、打好坚实的基础:变量、流程控制语句、类、接口、特别是继承关系,一定要理解,当然刚开始的时候肯定理解程度不深,但至少要求记住。
2、看别人写的程序,完整看完一个例子。比如一个c#编写的简单网站。然后好好的思考下,给你的启发,哪些地方让你理解了基础知识没理解透的内容,哪些地方让你茅塞顿开!
3、自己动手去做。自己动手写一个完整的程序,不急着编码,先想想自己做的程序都要实现什么功能,程序的结构应该怎样设计:是不是要用到接口、怎样可以提高代码的重复利用率等等;甚至可以用纸笔画画,心中有了一个基本的框架,然后再编码,遇到难点写不下去时多上网和同行交流。
4、有了自己的第一个程序,然后就是回过头来总结了,记住一定要善于总结自己在实践中的经验。如果你回过头来发现你以前写的程序是多么的“嫩”,证明你就在进步了。发现以前自己没有掌握的东西,再进一步去深研。
文档为doc格式