电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

java自学日记

来源:莲生三十二作者:开心麻花2026-01-071

java自学日记(精选6篇)

java自学日记 第1篇

要学好java找一份工作,需要很大的毅力,具体学多长时间就可以找工作,要看个人的悟性和学习能力,以我们宿舍6个人来说,计算机专业大专学历,我比较笨在大学里自学了一年左右的时间,毕业后在北京一家做移动增值的公司上班了。同宿舍的其它5个人,其中一个比较强,自学半年就去深圳华为上班了,2个找了个培训班学了4个月,现在都干上开发了,还有2个家里有关系,工作和计算机没关系。

总的来说,经济不困难的话,找个培训班比较好,学得比较全面,有老师指导学起来也不困难,就业比较顺利。如果经济条件不好,自己又喜欢这行,自学能坚持的话那就自学,老大不小了,总不能老伸手找家里拿钱不是。选择自学的话,基本上要分以下几个阶段:

1、要学java,肯定首先得把Java语言本身给掌握了,万事开头难,学java最难的也是java的入门,学习顺序是先掌握java的语法(多练就行),再掌握java面向对象的思想(封装、继承、多态、接口这些东西是重点,要多理解),接下来就是熟悉java常用的API(集合、IO等,主要是跟着书多写多练),这些东西掌握后,Java语言就算入门了。入门java推荐大家下载张孝祥的《java就业培训教程》视频教程,学java的没有不知道这套视频的,我们宿舍当时都是学这套视频入门的。这套视频最大的好处简单易懂,并引用了很多实用案例,并且还有配套书(书名好像也是java就业培训教程,新华书店有),省得忘了的地方,动不动对着电脑翻视频了。还有一些视频也比较好,例如孙鑫的java视频,马士兵的java视频等。不过对初学者而言,选中一套视频了就跟着好好学,不要下很多视频,东抓一把、西抓一把,最后啥也没学到。

2、有java基础了想马上从事实际开发还是不够的,接下来就需要掌握1-2门数据库技术了,对java来说数据库当然是oracle和mysql。oracle数据库现在还没发现好的视频,不过现在大学都学了数据库,有了数据库基础后,找本好书学oracle也就不难了。这里推荐何明的《从实践中学习Oracle/SQL》,作者来头很大,有非常深的oracle功底,书写得由浅入深,相当不错。对程序员来讲,学数据库关键是把增删改查的sql语句学好了就OK了,不要去抠什么数据库管理方面的东西。学了oracle后,要把数据库和java程序联系起来,这时候就要学jdbc了,jdbc不难,网上很多资料,大概一周时间就可以掌握了。

3、有了上面的基础后,恭喜你已经具备用java开发企业级应用的基础了。这时候你可以学习javaweb试着做点小项目玩了。不过学javaweb需要很多杂七杂八的知识点,比如xml、html、javascript、tomcat服务器等,学了这些后,大家才可以学servlet、jsp。学javaweb推荐大家买《深入体验Javaweb开发内幕-核心基础》这本书,还是张孝祥写的,这本书写的书很有特点,很细很深入,书上还带大量的实验案例,一步步讲得非常清晰,非常适合初学者。学javaweb这本书绝对是首选,并且这本书也有配套视频,在网上有下,不过视频只有前4章,比较可惜,希望张孝祥老师能早日录制全套视频。还有些视频和书也不错,比如李兴华的JSP视频教程、孙鑫的JAVA WEB 开发详解等,这些也不错,在网上都有免费下的。

4、接下来为找工作就要学strutshibernatespringajax这些流行技术了。这些技术我学习的时候没有视频,买的孙卫琴的书学,花了我大半年时间才学明白。现在幸福多了,网上有很多视频,个人推荐大家下传智播客的视频看。这个机构的老师很牛课程很有深度,真正能学到技术,不会误了大家。不过他们的视频里老打广告,很烦。书籍推荐struts看孙卫琴的,hibernate看夏昕的,spring看林信良的,具体书名叫什么忘了,大家google一下就清楚了。

学完上面这些就可以试着找工作了,我找了40天找着了。顺便再说一句,自学不可能不碰到问题,CSDN的论坛很不错,有问题上去问,一般都会有人回答你。要找培训班的话北京的传智播客还不错,我宿舍的2个就在那里,教学质量高,学完后很轻松都上班了,这家机构就是在外地没有分部,想培训要去北京,生活费用高,花费大。北京还有一些培训也不错,达内什么的,可以看看。

java自学日记 第2篇

JAVA自学之路 一:学会选择

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

JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。

1.1 培养兴趣

兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个“食利阶层”。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。

1.2 慎选程序设计语言

男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。

如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。

1.3 要脚踏实地,快餐式的学习不可取

先分享一个故事。

有一个小朋友,他很喜欢研究生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一次,他走到草原上面看见一个蛹,便取了回家,然后看着,过了几天以后,这个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便随手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。

这个故事给我们的启示是:欲速则不达。

浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故,就像当年的大跃进一样,都想大步跨入共产主义社会。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿笔者比较熟悉的深圳IT培训行业来说吧,居然有的打广告宣称“参加培训,100%就业”,居然报名的学生不少,简直是藐视天下程序员。社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/JAVA没开始学,立马使用VC/JBuilder,会使用VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,“我会软件开发了”,简历上也大言不惭地写上“精通VC/JAVA”。结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《JAVA编程思想》仔细钻研,早知如此何必当初呀。

“你现在讲究简单方便,你以后的路就长了”,好象也是佛经中的劝戒。

1.4 多实践,快实践

彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。

从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:“我打算去南海朝圣,你看怎么样?”富和尚说:“这里离南海有几千里远,你靠什么去呢?”穷和尚说:“我只要一个水钵,一个饭碗就够了。”富和尚为难地说:“几年前我就打算买条船去南海,可至今没去成,你还是别去吧!” 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。

这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,“君子动口不动手”对软件开发人员来讲根本就是错误的,他们提倡“动手至上”,但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副“比尔盖茨”样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。

1.5 多参考程序代码

程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。

多多参考代码例子,对JAVA而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。

1.6 加强英文阅读能力

对学习编程来说,不要求英语, 但不能一点不会,。最起码像JAVA API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个“金山词霸”。看多了就会越来越熟练。在学JAVA的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的“周扒皮”。

1.7 万不得已才请教别人

笔者在ChinaITLab网校的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。

你是否在google中搜索了问题的解决办法?

你是否查看了JAVA API文档?

你是否查找过相关书籍?

你是否写代码测试过?

如果回答都是“是”的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。

1.8 多读好书

书中自有颜如玉。比尔?盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔?盖茨就已经读完了所有的百科全书,所以他精通天文、历史、地理等等各类学科,可以说比尔?盖茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。

笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,“天呐,这么多书到什么时候才能看完了”,“学软件开发,感觉上了贼船”。这时候,我的回答一般是,“别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的”,学生当场晕倒。(注:这一部分学生是刚学软件开发的)

对于在JAVA开发领域的好书在笔者另外一篇文章中会专门点评。该文章可作为本文的姊妹篇。

1.9 使用合适的工具

工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。在笔者另外一篇文章中会专门阐述如何选择合适的工具(该文章也可作为本文的姊妹篇)。

2.软件开发学习路线

两千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒进也不保守并非中庸之道,而是找寻学习软件开发的正确路线与规律。

从软件开发人员的生涯规划来讲,我们可以大致分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员。我们应该努力往上走。让我们先整理一下开发应用软件需要学习的主要技术。

A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取“用到的时候再来学”的原则。

B.一门编程语言,现在基本上都是面向对象的语言,JAVA/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。

C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。

D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等

E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。

F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。

G.一种软件过程,RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。

H.项目管理、体系结构、框架知识。

正确的路线应该是:B→C→E→F→G→H。

还需要补充几点:

1).对于A与C要补充的是,我们应该在实践中逐步领悟编程理论与编程思想。新技术虽然不断涌现,更新速度令人眼花燎乱雾里看花;但万变不离其宗,编程理论与编程思想的变化却很慢。掌握了编程理论与编程思想你就会有拨云见日之感。面向对象的思想在目前来讲是相当关键的,是强势技术之一,在上面需要多投入时间,给你的回报也会让你惊喜。

2).对于数据库来说是独立学习的,这个时机就由你来决定吧。

3).编程语言作为学习软件开发的主线,而其余的作为辅线。

4).软件工程师着重于B、C、E、D;软件设计师着重于B、C、E、D、F;架构设计师着重于C、F、H。

3.如何学习JAVA?

3.1 JAVA学习路线

3.1.1 基础语法及JAVA原理

基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习JAVA也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。参加SCJP(SUN公司认证的JAVA程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉JAVA基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。获得“真正”的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。

3.1.2 OO思想的领悟

掌握了基础语法和JAVA程序运行原理后,我们就可以用JAVA语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之一。当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。

使用面向对象的思想进行开发的基本过程是:

●调查收集需求。

●建立用例模型。

●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。

●细化分析模型到设计模型。

●用具体的技术去实现。

●测试、部署、总结。

3.1.3 基本API的学习

进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的“不需要重新发明轮子”。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。

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

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

每个培训机构都会宣传自己的好处,并不能说明大的趋势。一些新闻文章很有可能是枪手写的,不必太过相信。国外背景的教师和课程,未必适合你。

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

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

程序员自学之路——Java方向 第3篇

Unix/Linux操作系统

Unix开发环境

Unix操作系统概述、Unix文件系统、Unix的Kernel和Shell、远程登录的原理、用户管理命令、基本文件和目录操作命令、Unix操作系统的特殊字符、使用vi命令编辑文本文件、使用FTP进行文件传输、初始化文件及环境变量的配置、Shell脚本及crontab命令。

熟练掌握Sun Solaris Unix系统基本操作命令,能够胜任Unix/Linux系统下的Java程序开发和管理工作。

Java SE开发

Java语言基础

Java SE 6.0核心语法归纳讲解,包括Java语言的特点、环境的配置、开发基本命令、类的定义技巧、方法调用过程、对象生成原理与内存分布、标识符、关键字和数据类型、运算符和表达式、Java商业运算要点、流程控制语句、Java数组和链表等算法和数据结构;同时掌握Eclipse开发工具的使用。

熟练掌握Java核心语法

Java面向对象编程

囊括了Java面向对象的精髓,包括面向对象三大特性——封装、继承与多态,各种修饰符在面向对象思想下的综合运用,抽象类的特点和使用技巧,面向接口编程的思想和实践,内部类的应用,JDK核心类包括Object、String、Date和Calendar等类的使用和设计思想,正则表达式,自动封箱和解箱,Java异常处理,Java集合框架,泛型的语法和使用等。

熟练掌握Java面向对象思想

Java高级应用

主要研究:中高级软件工程师的必修利器——Java反射编程,Java图形开发组件的开发步骤和应用技巧,事件模型的设计理念和应用,Java多线程编程,Java的I/O流,Java网络编程等。

熟练掌握Java高级编程,这部分是作为高级程序员必须掌握的技术

XML语法与解析

XML(eXtensible Markup Language)的中文名称是可扩展标记语言,是树形的概念层次结构,简而言之它就是一种保存结构化数据的格式。XML作为一种面向内容的描述语言,通过基于树形数据结构的层次化概念分类体系模型,在很大程度上弥补了HTML作为网络标准语言在概念层次关系的语义表达上的不足。

主要学习内容:XML的意义、语法结构、XML良构的规范;DTD的意义和语法、使用名称空间的技巧;Schema的意义、语法,使用Java API解析XML;基于Java DOM和SAX的XML处理技术。

掌握目前最通用的网络数据格式,并能熟练在商业开发中应用

数据库编程

Oracle SQL

Oracle公司的Oracle数据库产品是当今的高端企业级应用的主流产品。我们主要学习:Oracle 10g数据库原理,SQL语句(DDL、DML、TCL、DCL)的语法,项目中经典SQL语句重现,Oracle数据库函数包括字符函数、数值函数、日期函数、数据类型转换函数以及组函数,数据库的设计,表连接包括等值连接、非等值连接、自连接和外连接,SQL子查询,Oracle序列对象在项目中的运用,索引及视图,系统表的应用技巧,Oracle SQL的错误排查及调优解决方案。

掌握Oracle数据库设计、操作和开发

MySQL数据库

MySQL5.0数据库的管理和开发要领,掌握MySQL和Oracle数据库的异同点。掌握MySql数据库的设计、操作和开发

JDBC编程

JDBC为Java开发者使用数据库提供了统一的编程接口,使得开发人员可以使用纯Java的方式来连接数据库,并进行操作。学习的主要内容有:JDBC的编程步骤,重要的编程接口,JDBC异常处理,JDBC中使用事务,Batch Updates批量更新,Blob/Clob等新数据类型,JNDI,DataSource,数据库连接池的管理等。逐步掌握基于JDBC的Oracle,SQLServer,DB2,MySQL等数据库连接技术。

熟练掌握Java语言对各种数据库的连接技术

系统分析与设计

软件开发流程及UML

学习软件开发过程包括瀑布模型、统一开发过程(USDP),CMMI5级软件设计规范,掌握统一建模语言UML,掌握软件的静态建模和动态建模。掌握面向对象中对象的关系。

掌握软件开发流程及UML

设计原则与模式

原则和模式是分析设计人员与程序员在开发过程中经验的总结,学习模式就是获取经验。

掌握面向对象的设计原则:“开—闭”原则(OCP)、里氏代换原则(LSP)、依赖倒转原则(DIP)、接口隔离原则(ISP)、组合/聚合复用原则(CARP)、迪米特法则(LoD)。

掌握主流的设计模式:工厂模式(Factory)、单例模式(Singleton)、观察者模式

(Observer)、组合模式(Composite)、状态模式(State)等,以及重要的架构模式:Dao模式、MVC模式。

掌握面向对象的设计原则和模式。区别于激情代码,重点在于知道软件为什么要这么做,保证代码质量,保证科学的开发流程。按照CMM3的标准来设计软件和管理开发过程。

Web开发基础

HTML

基于浏览器的语言HTML:

了解HTML基本文档结构、常用的meta,掌握HTML列表和表格基本操作,了解HTTP GET和POST请求及响应的协议格式,掌握表单的基本原理,掌握GET和POST提交方式及其区别,熟练掌握常用表单元素。

掌握企业级应用客户端页面技术

CSS

CSS意为层叠样式表(Cascading Style Sheets)用于定义HTML元素的位置和样式。CSS样式定义通常存储在单独的文件中, 可以极大提高工作效率。掌握CSS基本语法和CSS选择器,掌握CSS定位技术,了解CSS内外边距、边框等特性。

掌握企业级应用客户端页面样式技术

JavaScript

基于浏览器的动态脚本技术JavaScript:

JavaScript 被设计用来向 HTML页面添加交互行为,是一种被浏览器解释执行的脚本语言。我们可以应用JavaScript来响应事件, 实现复杂交互,验证数据, 提高系统健壮性,获取和改变HTML元素及CSS属性,动态改变页面外观,逐步向RIA(Rich Internet Applications)迈进。

掌握JavaScript基本数据类型及其运算,熟练使用数组、日期等,掌握基本的对于页面元素的操作,掌握Prototype.js的基本方法,掌握HTML DOM模型,Window对象,操作Cookie,定时器等。

掌握企业级应用客户端动态脚本技术

Java Web开发

Servlet编程

以经典项目BookStore为导向,技术要点的讲解深入浅出,并有机地与项目结合,为项目的顺利完成服务。

学习要点:Web服务器的安装和配置,编写及部署Servlet,读取请求信息,生成响应信息,维护客户状态,过滤请求和响应,监听器的应用,对持久层资源的访问,使用包装器拦截响应,Session与Cookie技术,Servlet互操作,访问应用上下文,MVC架构模式的思想和运用。

JSP编程

JSP是在Java服务器端运行的页面,JSP本身就是一个基于文本的文档,他不仅可以包含静态的HTML内容,也可以包含动态的Java代码,服务器容器可以将JSP转换成Servlet发布,并接受请求,提供响应。

学习内容:JSP的特点、运行原理及执行过程,JSP的脚本元素,JSP指令的分类及详解,JSP中中常用的动作,JavaBean组件在JSP中的应用,JSP内置对象详解,JSP异常处理及提高程序健壮性要领,重定向与转发的本质区别,URL回写,自定义标签要领,EL表达式,JSTL核心标签库,字符集的处理和国际化。

Web系统架构

着重掌握B/S架构、B/S/A/D架构下的程序设计与开发,深入理解Web MVC架构模式,完成Web应用的调试和部署,动态发布Web应用。

Ajax编程

Ajax(Asynchronous JavaScript and XML)由 HTML、JavaScript技术、DHTML和DOM组成,这一杰出的方式可以将笨拙的Web界面转化成交互性优越的Ajax应用程序。

主要内容:Ajax技术构成及核心编程,发送请求及处理响应,Ajax数据传输格式(纯文本、XML及JSON),XMLHttpRequest详解,Ajax库及框架介绍。

3G应用:Android开发

Android开发平台、Eclipse+ADT开发环境、AVD及传感模拟器调试、Android核心组件、Android常用组件、Android高级组件、文件及网络访问、SQLite数据库编程、后台服务编程。

Java企业应用开发

Hibernate编程

Hibernate是对象/关系映射(Object/Relation Mapping)的解决方案,是一个可以自动的根据xml配置文件来完成对象关系映射,并持久化到数据库的开源组件。学员通过学习可以很好地掌握面向对象的数据库访问技术和各种数据库访问模式。熟练掌握Hibernate3产品在实际项目中的应用技巧,充分理解O-R Mapping产品的内涵和外延。

熟练掌握Hibernate在项目中的开发

Struts开发

Struts是由Apache开源联盟提供的一套用于构建Java Web应用程序的MVC框架。它的目标是希望分离Web程序的表示层、控制层和模型层,使程序员将更多的精力投入后台的业务逻辑设计,而不是底层的Web基础框架,提高了开发效率。Apache Struts1自从推出以来一直深受广大Web编程者青睐,是到目前为止应用的最广泛的基于MVC的Web编程框架。Webwork,采用XWork command pattern内核,配合请求处理拦截器(intercepter),成为目前设计的亮点。集Struts1的成熟社区和Webwork的先进、优雅的设计于一身的Struts2框架又将成为未来基于Web开发的MVC框架的领航者。

学习内容:不仅要掌握Struts1的使用,也要学习Struts1的设计思想,并尝试自己开发核心程序,而且还要掌握Struts2的开发要领。

掌握Struts框架核心技术

Spring开发

Spring的核心是轻量级的容器,它实现了IoC容器、非侵入性的框架,并提供AOP概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web框架的实现,并对一些常用的企业服务API提供一致的模型封装,是一个全方位的应用程序框架,我们不仅要领悟和实践以上内容,而且还将重点掌握Spring对现有框架(Struts、Hibernate等)的整合方案。

掌握应用层框架Spring的设计思想和开发要点

EJB3.0

EJB3.0规范、Weblogic服务器应用、JBoss服务器应用

掌握EJB 3.0规范的基本原理和应用;较为熟练的配置Weblogic和JBoss服务器。

Web服务编程

JAVA是自学好还是参加培训好 第4篇

现在想从事JAVA软件开发的人越来越多,而JAVA往往是靠自己在大学之外学习的实践技能。目前,对于JAVA技术类电脑编程语言的学习方式无非有两种:自学或通过JAVA培训班进行学习。对于其各自的优缺点,慧谷大学生实训中心的老师来为大家详细说明。

关于自学,首先其动辄数万计的学费必然是可以节省下来了,且通过视频学习和书本学习也能培养自己独立思考能力,独立研究技术的能力,对特定的知识也可以反复看反复加深记忆。其缺点在于,同学在自学时可能会抓不住学习的重点、学得不够透彻,无法有更深的体会和把握,且自主学习需要自律,大多同学都容易学着学着遇到困难就会想要放弃。“闭门造车”如果没有毅力的支持而三天打鱼两天晒网,是学不会包含JAVA在内的任何一门知识技术。

关于JAVA培训班学习,首先其“不菲”的学费必然会让很多同学们感到头疼,但其好处也在于知识与学费可以等价交换,当然学习得好就业得好便更是超值了。慧谷大学生实训中心的老师表示,上培训班与自学相比较的好处在与,学习的课程不会零碎其更会非常系统化。能让同学们在学习过程中少走弯路,跟着老师跟着班走,有学习的环境和氛围,不懂的知识能及时与同学交流与老师沟通,能大缩短学习时间早日步入工作岗位。然而如今培训机构鱼龙混杂,其师资、其课程设计、其就业到底有没有保障?这也是大多学生不太敢选择培训机构原因。

慧谷大学生实训中心的老师想说,无论自学还是通过培训JAVA机构学习,都是可以学得成功!(但值得注意的是,在大学里那种通用的学习思路和方法,在自学和培训班学习JAVA是行不通的!)不管通过哪种方式学,更多的都得依靠自己的努力,多读代码多写代码,多谦虚向比你优秀的人请教,多利用网络资源,多总结、多整理,形成适合自己的学习方法。

java自学日记 第5篇

亲身经历讲述学习java是自学还是应该选择培训机

我以前也是自学Java,也不算自学,而是在一家公司跟着别人学,是别人眼中的菜鸟。看过无数次脸色,憋进去无数次骂娘。

有人问,那你干吗不自己学呢?网上那么多学习素材。

实话告诉你,网上的学习资料,不管是免费的还是收费的,我的电脑里几乎囊括了所有。但是资料越多,你越不知道学哪个,从哪开始入手,哪些是必须学的,哪些是以后工作中遇到再学也不迟的,真的,当你看着那十几个G的资料准备开始时,心里其实是拒绝的。

所以,在自学了几天之后,我选择了放弃,然后跟着公司的一个程序员开发学。现在想起那段日子,还觉得暗无天日。我并不是在这里吐槽他人,其实我是非常理解那位猿猿对我的态度的。毕竟,公司每个人都有每个人的工作要做,即使工作做完了打两盘dota不好吗?跟妹子撩两句不好吗?干吗帮一个屌丝解决一些在自己看来有点白痴的问题。

显而易见,我又放弃了。

所以,如果你跟我一样,没有极强的自制力,火眼金睛的选择力,以及一个亲生哥们,还是放弃自学吧。选个培训机构实在是省时又省力,最重要的是,可以理直气壮的白痴。

现在的培训市场被一些培训机构做坏了,但是市场中的好的机构还是有的,如果真的要去学的话,我建议你去智游或者传智,这两家中选一家就可以了。传

IT培训的黄埔军校智的话名声在外久已,并发症就是机构大了领导层够不着,普通班已经烂了。要去就去黑马,但黑马精英培训班入学是需要考核的;智游教育是河南的一个培训机构,ios起家,近两年发展的势头比较猛,我们同事推荐的,听说还是蛮厉害的。

选择Java培训机构注意这两点基本上就能避免一些坑:

1.老师没有正经公司工作经历,或者没有已经在线上正常运转的产品。一些所谓培训班的老师水平往往比较一般,甚至还有培训出来后又接着培训别人的。

2、是不是会承诺帮你找到工作,要找到好的工作,不是靠别人给你保证的,还是要靠自己提升能力。

我只是建议,但是选择还是要看你自己,如果真的有自制力的话,真心建议你自学。

Java学习日记 第6篇

1,一个文件里可编写多个类,一个文件里不能有两个public类。独立运行的类必须有main()函数。

2,Print()不换行,println()打印新东西之前会换行。3,在set classpath前后不能有空格,不能有中文符号。

4,三种注释方法://、/*…*/、/**….*/,/*….*/不能嵌套,注释功能有:说明程序的功能,可以取消代码,或者是回复代码。

5,标识符:由字母、数字、下划线、美元符号组成,不能以数字、关键字开头。

6,常量:不变的数值。有整型,长整型,单精度、双精度、布尔常量、字符常量、字符号常量。单精度常量以’f’结尾。

7,变量就是系统为程序分配的一块内存单元,用来存储数据。变量须先定义后使用,不允许嵌套定义。

8,低字节的类型可以转换成高字节的类型,高字节的类型不可以转换成低字节。

9,流程控制:if若有多条语句最好用大括号括起来。问号表达式:y=x>0?x:-x;若表达式为真,结果为x,反之为-x.10,Switch()语句只接受int、byte、char、short类型数据,switch语句用break,多个条件执行相同命令:case 1:

case 2:…… break;

11,while语句后若有“;”,不是不执行该语句,而是一直在执行空语句。12,do..while..语句不管三七二十一都执行该语句,直到while语句为假,且while()后有“;”。

13,system.in.read():从键盘上读取数据;

14,定义数组:int[] x或 int x[];arraycopy数组拷贝。

15,面向对象三大特征:封装、继承、多态。一个类中方法可以访问同类成员。若局部变量和成员变量名字一样,则成员变量隐藏。16,一个类中方法可以访问同类的成员变量和局部变量。

17,“==”与“equals()”的区别:“==”是比较两个对象的值是否相同,而equals()是比较两个对象的内容是否相同。例如: String str1=new String(“abc”);String str2=new String(“abc”);String str3=str1;If(str1==str2)System.out.println(“true”);System.out.println(“false”);Else

则结果返回为false。因为sr1和str2在堆中首地址不一样,而str1和str3首地址是一样的。若 If(str1.equals(str2))

System.out.println(“true”);System.out.prinltn(“false”);Else

则结果返回的是true,因为比较的是内容。

18,用private修饰的成员变量,在同一类中可以访问,在其他类中不可以访问。程序代码要求强内聚弱耦合

19,构造方法:和类名一样,无返回值,不能用return语句。实例对象一产生就立马调用构造方法,有几个实例对象就调用几次,一次完成对实例对象的初始化,若没有定义构造函数,系统会自动生成一个空构造函数,也可以进行重载。若定义了构造函数,则不再产生构造函数。了解构造函数执行过程。

20,finalize()方法类似于C++中析构函数,在被清除之前会调用这个函数。21,static静态方法只能直接调用同类中其他的静态成员,而不能访问非静态成员。静态方法在使用之前不用创建任何对象,而非静态对象在使用之前必须先创建实例对象。静态方法不以任何方式调用this和super方法

22,内部类:在类中直接定义内部类,内部类可以访问外部类成员变量。在程序块中均可定义内部类。

23,类的继承:在java中只支持单继承,但类可以有多层继承,子类继承了父类所有的成员变量和成员方法,但不继承父类的构造方法,可使用super方法调用父类的构造方法。

24,final()可声明类、属性、方法,若声明为类,则该类不被继承。若声明为变量,则该变量变为常量。若声明为方法,则该方法在子类中不能被覆盖。25,含有抽象方法的类称为抽象类。抽象方法:abstract int aa(int x,int y);一般方法:int aa(int x,int y){ 程序代码 }

两者的区别:前者必须由abstract修饰,只能声明,不能实例化,没有大括号;后者有大括号,说明实现了代码,不是抽象方法。

26,特殊的抽象类称为接口,接口中所有的方法都是抽象的。一个类用implements去实现一个接口的所有方法。27,一个类继承了另一个类,不能使用比继承类的访问权限更低的权限去访问该类。

28,del person.class 删除person字节码;javac *.java:编译所有源文件。29,a instanceof B:判断a是否是B的一个实例对象。对象的类型转换:子类可以转换成父类。Object是所有类的父类。

30,异常是非致命的错误,不是语法错误。对异常处理用try….catch..。用throws关键字抛出异常,也可以自定义异常。try后面可以跟多个catch捕获多个异常。finally语句无论如何都要执行,没有异常也会执行。

31,包,package语句,为java源文件的第一条语句,若无包则为缺省无包。同一个包中的类可以相互调用,不必写上包名。若为类加上包,则应将源文件中所有类都存到该包中。同一包中辆各类不一定在一个目录上。

32,访问控制:类本身有两种访问控制:public和默认。父类不能是private和protected,否则子类无法继承。默认修饰的类只被同一包中的所有类访问。33,进程:正在进行的程序。线程:一个程序内部的一条执行线索,每个线程上所要运行的程序代码段是多线程,用Thread类创建线程。

34,后台线程:如果对某线程对象在启动(调用start方法)前调用了setDaemon(true)方法,这个线程就变成了后台线程。只要还有一个前台线程在运行,这个进程就不会结束。如果一个进程中只有后台线程在进行,这个进程就会结束。Pp.join()的作用是把pp所对应的线程合并到调用pp.join();语句的线程中。35,单线程和多线程的区别:必须等到run()调用后才实现

36,要实现多线程必须要编写一个继承了Thread类的子类,子类要覆盖Thread类的run方法,在子类run方法中调用正在新程序中运行的程序代码,启动一个新线程是调用Thread类的start方法,Thread类对象的start方法产生一个新线程,并在该线程上运行Thread类对象中的run方法,控制线程是否结束。37,产生一个TestThread对象,四个tt.start()线程,共同去卖同100张车票: TestThread tt =new TestThread();tt.start();tt.start();tt.start();tt.start();

38,多个线程共享同一数据就会发生线程安全问题。

39,线程间的通信:wait():当前线程放弃监视器并进入睡眠状态直到其他线程进入同一监视器并调用notify()为止。

40,API:应用程序编程接口。Windous API:WIndous操作系统提供的各种函数。Java API:JDK提供的各种java类 41,java开发工具软件的基本特点:集成编辑软件功能,使用工程化管理,产生应用程序的基本框架,支持调试,提供各种辅助工具。

42,JCreator Pro:一个工作区可以管理多个工程,只能有一个活动工程。使用该软件时不用完全记住函数或者参数,因为有提示,43,String 类对象中的内容一旦被初始化就不能在改变。而stringBuffer类用于封装,内容可以改变。

44,indexOf(int ch)方法用于返回一个字符在字符串中第一次出现的位置,若没有该字符,返回-1.45,集合类,用于存储一组对象,其中每个对象称为元素,常用到的有:Vetor、Enumeration、ArrayList等。

46,从键盘上读取数字:int b=System.in.read();Vector.addElement():向Vector中添加元素。

47,Collection,Set与List三者区别:Collection是父类,通用集合类,各元素对象无指定顺序,允许有重复元素和null元素对象。Set为子类,无指定顺序,不允许有重复元素,最多允许一个null元素对象。List也为子类,有指定顺序,允许有重复元素和多个null元素对象。

48,Hashtable类:Hashtable像Vector一样动态存储一系列对象,而且对存储的每个对象都要安排另一个对象与之相关联。用put()存储数据: Hashtable ht=new Hashtable();Ht.put(“one”,new Integer(1));检索数据用get方法: Integer n=(Integer)ht.get(“two”);If(n!=null){

System.out.println(“two=”+n);}

要成功检索某个字,用作关键字的类必须覆盖Object.hashtableCode()和Object.equals().49.Properties类:Hashtable类的子类,增加了讲Hashtable对象中的关键字和值保存到文件和从文件中读取关键字和值到Hashtable对象中的方法。如果要用Properties.store方法存储Properties对象中的内容,每个属性的关键字和值都必须是String类型。

50,System类中的exit方法用于结束java虚拟机运行的程序。currentTimeMills():可以检测程序运行的时间。Java虚拟机系统变量或者系统环境变量都是变量和值成对出现。getProperties方法获取java虚拟机系统属性,setProperties方法用于设置系统属性。

51,Date类:日期时间的类;Calendar:日期字段相互间的操作类; Calendar.add():增加时间;Calendar.Set():设置时间;Calendar.get():获取时间。Calendar类位于java.util包中

52.TimerTash类实现了Runable接口,要运行的任务,由它里面实现的run方法来完成。

53,Math类包含了所用于几何和三角运算的方法,Random类一个伪随机数产生类。

54,File类:IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。File f=new File(“hello.txt”);If(f.exist()){f.delete();} Else {f.createNewFile();}

System.out.println(“File name:”+f.getName());获取文件的名称 System.out.println(“File path:”+f.getPath());获取文件的路径 System.out.println(f.exist()?”exist”:”not exist”);判断文件是否存在

55,RandomAccessFile类提供了众多的文件访问方法;RandomAccessFile类支持随机访问,但是不能访问其他的Io设备,如网络、内存映像等。两种构造方法:

new RandomAccessFile(f,”rw”);可以读写 new RandomAccessFile(f,”r”);只读

56,流是字节序列的抽象概念。文件是数据的静态存储形式流是数据传输时的形态。流分为两种:节点流类和过滤流类。57,InputStream类方法:int read();读取方法 void close();读取后要关闭文件

58,FileInputStream inone=new FileInputStream(“hello.test”);等同于 File f=new File(“hello.test”);

FileInputStream intwo=new FileInputStream(f);

59,System.in连接到键盘,而System.out连接到显示器,用-1作为键盘输入的结束。

60,PipedInputStream与PipedOntputStream类:创建管道通信,使用管道流类,可以实现各个程序模块之间的耦合通信。

61,DateOutputStream类提供了三个写入字符串方法:-public final void writeByte(String s)-public final void writeChars(String s)

-public final void writeUTF(String s)

62,ObjectInputStream、ObjectInputStream用于从底层输入流中读取对象类型的数据和将对象类型的数据写入到底层输出流。

63,避免频繁地在字符与字节间进行转换,最好不要直接使用InputStreamReader和OutputStreamWriter类读写数据,应尽量使用BufferedWriter类包装OutputStreamWriter类,用BufferredReader类包装InputStreamReader。InputStreamrReader和OutputStreamWriter用于将字节转换成字符流来读写的两个类。

63,读取一行文本用BufferredReader。

64,printStackTrace()用于将异常信息打印在标准输出设备上。65,AWT:应用窗口工具集;GUI:图形用户界面。66,将窗口从内存中显示出来用Frame.setViseble(true);Frame.setSize(int x,int y);设置窗口大小 Frame.add(new Button(“OK”));增加一个新按钮

67,GUI:包括基本组件和容器。Frame.dispose()将窗口对象释放,但线程消失,而Frame.setVisible(false);窗口不显示但程序没有结束。

68,事件适配器:事件监听器接口的最简单的实现类,称为Adapter。69,调用enableevents(long eventsToEnable))方法,可以在即使没有注册事件监听器情况下,组件也能够对某些类型的时间进行响应和产生相应的事件对象。70,GraPhics类与图形绘制有关。GraPhics.draw String()方法的坐标参数是左下面,这和其他的坐标在左上方是不一样的。

71,设置图形颜色:GraPhics.setColor(Color.Red);颜色英文须大写 72使用GraPhics.drawImage(Image img,int s,int y,imageObserver observer)方法显示图像。

73,与菜单相关的类:MenuBar、Menu、MenuItem。创建菜单的过程:先创建一个菜单条,再把几个菜单挂在菜单条上,最后在每个菜单上添加菜单项。也可以在菜单上创建子菜单。

74Container容器类,所有容器类的父类,Container.add()用于将组件添加到容器中。

75,Dialog类用于产生对话框,分为模态对话框和非模态对话框两种。76,Checkbox类用来建立单选按钮和多选按钮,单选按钮和多选按钮语义事件为ItemEvent,对应的监听器接口为ItemOutstream。

77,panel容器类,产生空白面板,可容纳多个组件,不能独立存在。78,ScrollPane用于产生滚动窗口。79,布局管理器管理组件在容器中的布局。

BroderLagout:NORTH、WEST、SOUTH、EAST、CENTER FlowLagout:布局分配是从左到右从上到下

GridLagout:网格布局,模块大小完全相同,也是从左到右,从上到下 cardLagout:多个组件交替显示,只有最上面的那一个可见。Container.setLagout(null)用于取消布局管理器

Container.setBounds(x1.y1,x2,y2)用坐标来设置组件位置

80,Swing提供了丰富的GUi组件,增强了AWT中原有组件的功能。JFC:java功能类,集合了Swing组件和其他能够开发API类。

81,JFrame是与AWT中的Frame相对应的Swing组件,只能有一个唯一组件——JRootPane;

82,Applet:嵌套在网页中的小程序。

83,浏览器显示网页的原理和打开记事本方式一样

84,Applet由浏览器来启动执行过程:1)浏览器载入HTML文件。2)浏览器载入HTML文件中引用的Applet字节码。3)浏览器启动java虚拟机执行Applet; 85Applet需要覆盖的方法:init()、start()、stop()、destroy()、paint()。鼠标事件监听器: MouseListener()。

86,Thread.sleep(1000);语句需要捕获异常,用try…catch….语句捕获

87,Applet相关知识:容器与插件的程序架构设计模式、Applet程序中的控制台输出。

88,Applet程序的限制:不能启动执行其他应用程序,不能进行文件IO操作,不能调用本机代码,不能与Applet所在的主机之外的其他主机进行网络连接; 89,Applet标记的详细表:

[archive=archiveList]方括号的为可选项 Code=appletFile.class不带方括号的为必选项

90,OBJECT标记:使用HTMLContainer将Applet标记转换成OBJECT标记。使用OBJECT标记执行Applet小程序的java解释器被作为一个ActiveX插件使用。使用OBJECT标记比Applet标记多了自动下载和安装java解释器的功能。91,网络协议:TCP/IP UDP

92,获取本机IP地址:在命令行输入:ipcongif;端口号的范围是0-65535之间。93,TCP传输控制协议,是面向连接的通信协议 UDP用户数据报协议,是无连接的通信协议

94,Socket是网络驱动层提供给应用程序编程的接口和一种机制。网络编程类位于java.net包中。95,DatagramSocket类用于UDP通信,ServerSocket类用于TCP通信的服务器端。Socket类用于TCP通信的服务器端和客户端。

96,了解DatagramSocket类三种构造方法,close()关闭方法,send(DatagramPackage p)发送数据包方法;receive(DatagramPackage p)接受数据包方法

97,DatagramPackage提供了两种构造方法。getInetAddresss用于表示计算机IP地址的一个类,类中有getByName方法,返回一个相应的inetAddress实例对象。

98,TCP网络编程工作原理,利用TCP协议进行,两个应用程序有主次之分,主的称为服务器端,另一个称为客户端。

99,客户端与服务器端交互过程:1)服务器程序创建一个ServerSocket,然后调用Accept方法等待客户来连接。2)客户端程序创建一个Socket并请求与服务器建立连接。3)服务器接受客户的连接请求,并创建一个新的Socket与该客户建立专线连接。4)建立了连接的两个Socket在一个单独的线程上对话。5)服务器开始等待新的连接请求,当新的连接请求达到时,重复步骤2到5.100,TCP服务器程序必须先启动运行,TCP客户程序才能连接上TCP服务器,使用Windous提供的telent程序测试服务器程序,使用BufferredReader包装类,从网络输入流中一次读取一行文本。

101,使用netstart命令查看当前正在被使用的TCP端口号。通过一个配置参数来指定TCP服务器程序所使用的端口号。

102,ObjectInputStream和ObjectOutputStream可以从底层输入流中读取对象类型的数据和将对象类型的数据写入到底层输出流。

103,使用ObjectInputStream和ObjectOutputStream来包装底层网络字节流,TCP服务器和TCP客户端之间可以接受对象类型的数据。

java自学日记

java自学日记(精选6篇)java自学日记 第1篇要学好java找一份工作,需要很大的毅力,具体学多长时间就可以找工作,要看个人的悟性和学习能...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部