Java程序设计实践精品资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java程序设计实践精品资料.doc》由会员分享,可在线阅读,更多相关《Java程序设计实践精品资料.doc(315页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java程序设计实践搜索软件开发直通车罗刚2012目录Java程序设计实践1第1章 Java软件开发21.1 软件工具31.1.1 搜索引擎31.1.2 Windows命令行41.1.3 机器翻译41.1.4 Linux41.1.5 源代码比较工具51.2 Java基础61.2.1 准备开发环境71.2.2 类和对象81.2.3 Eclipse101.2.4 变量111.2.5 方法141.2.6 命名规范191.2.7 基本语法201.2.8 读写文件221.3 控制结构251.3.1 条件判断251.3.2 循环271.3.3 数组311.3.4 字符串341.3.5 位运算381.3.6
2、 枚举类型421.3.7 比较器451.3.8 集合类461.3.9 泛型511.3.10 系统属性521.4 安装Java531.4.1 服务器端安装531.4.2 自动安装Java541.5 Java类库571.5.1 使用Java类库581.5.2 构建jar包581.6 内存管理611.6.1 虚拟机的内存611.6.2 程序中的内存管理651.6.3 弱引用671.7 提高代码质量731.7.1 单元测试741.7.2 日志751.7.3 重构821.8 本章小结821.9 术语表82第2章 数据结构832.1 链表83第3章 算法843.1 树算法843.1.1 标准Trie树84
3、3.1.2 二叉搜索树933.1.3 三叉Trie树1023.1.4 Trie树词典1093.2 队列1133.2.1 链表实现的队列1133.2.2 优先队列1143.2.3 找出前k个最大的元素1183.3 堆栈1203.4 实现Deque1223.5 散列表1263.5.1 快速查找的散列表1263.5.2 应用散列表1303.5.3 开放式寻址1313.5.4 布隆过滤器1313.5.5 SimHash1343.6 图算法1363.6.1 表示图1373.6.2 遍历图1463.6.3 动态规划求解1483.7 穷举法1483.8 贪婪法1513.9 分治法1543.9.1 归并排序1
4、553.9.2 折半查找1573.9.3 相似信息1613.10 动态规划1643.10.1 编辑距离1653.10.2 中文分词1683.11 本章小结1713.12 术语表172第4章 面向对象编程1734.1 类1744.2 对象1754.3 继承1764.4 设计模式1784.4.1 单件模式1784.4.2 工厂1784.4.3 链式模式1794.4.4 MVC1804.5 异常1804.5.1 断言1804.5.2 Java中的异常1814.5.3 从方法中抛出异常1824.5.4 处理异常1854.5.5 正确使用异常1864.6 本章小结1894.7 术语表189第5章 软件数
5、学基础1905.1 概率1905.1.1 语料库1915.1.2 条件概率1915.1.3 马尔可夫模型1925.1.4 平滑1955.2 集合操作2005.2.1 集合的秩2005.2.2 合取2005.2.3 析取2005.3 矩阵2005.3.1 向量空间2005.3.2 主成分分析2015.4 相似度2015.5 本章小结2025.6 术语表202第6章 处理文本2036.1 词法分析2036.2 语法分析2056.3 有限状态机2056.3.1 DFA2126.3.2 有限状态转换2146.3.3 模糊匹配2156.4 正则表达式2226.5 本章小结2256.6 术语表225第7章
6、 网络编程2267.1 套接字2267.1.1 客户端2277.1.2 服务器端2297.1.3 TCP2317.2 Web服务器2337.2.1 HTTP协议2337.2.2 Web服务器2387.3 IO流2397.4 异步IO2397.5 下载网页2407.5.1 使用CURL2407.5.2 使用HTTPClient241第8章 并发程序设计2428.1 线程2428.2 线程池2448.3 线程局域变量2458.4 阻塞队列2478.5 并发2488.6 MapReduce2578.7 本章小结257第9章 界面设计与实现2589.1.1 Web程序是从哪里来的2589.1.2 Se
7、rvlet和JSP2599.1.3 AJAX2599.1.4 jQuery259- 305 -搜索引擎的基本功能遍历搜索引擎技术第1章 Java软件开发现代社会,软件已经相当普及。例如,现在的电网都是由计算机控制的,通过相关软件发出指令,来调节电压、相位等关键参数。在美国,每三名工程师中就有一名软件工程师。即使不专职从事软件开发工作,会写代码是一种有竞争优势的技能。管理人员会越来越多的了解技术,而技术人员也会越来越多的参与管理决策。生活就是从一个平衡到另外一个平衡。也许已经习惯了不会软件开发的生活。完成从不会到会的过程,往往需要几个月时间。很多时候,我们的生活经历对于学习技术并无太大帮助。这本
8、书就是试图通过已有的日常生活常识来帮助学习新的知识。有两个和尚住在隔壁,所谓隔壁就是隔壁那座山,他们分别住在相邻的两座山上的庙里。这两座山之间有一条溪,于是这两个和尚每天都会在同一时间下山去溪边挑水,久而久之他么变成为了好朋友。就这样时间在每天挑水中不知不觉已经过了五年。突然有一天左边这座山的和尚没有下山挑水,右边那座山的和尚心想:“他大概睡过头了。”便不以为意。哪知道第二天左边这座山的和尚还是没有下山挑水,第三天也一样。过了一个星期还是一样,直到过了一个月右边那座山的和尚终于受不了,他心想:“我的朋友可能生病了,我要过去拜访他,看看能帮上什么忙。”于是他便爬上了左边这座山,去探望他的老朋友。
9、等他到了左边这座山的庙,看到他的老友之后大吃一惊,因为他的老友正在庙前打太极拳,一点也不像一个月没喝水的人。他很好奇地问:“你已经一个月没有下山挑水了,难道你可以不用喝水吗?” 左边这座山的和尚说:“来来来,我带你去看。”于是他带着右边那座山的和尚走到庙的后院,指着一口井说:“这五年来,我每天做完功课后都会抽空挖这口井,即使有时很忙,能挖多少就算多少。如今终于让我挖出井水,我就不用再下山挑水,我可以有更多时间练我喜欢的太极拳。我们在公司领的薪水再多,那都是挑水。而把握下班后的时间挖一口属于自己的井,对我们来说更重要。岁月不饶人,当我们年龄大了,体力拼不过年轻人了,还是能喝到自己挖出来的井水,而
10、且喝得很悠闲。所以一定要有自己的特长或者技术核心,挖一口属于自己的井,培养自己独特坚实的实力。所谓白天求生存,晚上求发展,昨天的努力就是今天的收获,今天的努力就是未来的希望,多年前不分伯仲的同窗好友,如今的境遇可能大不相同。挖井的过程则告诉我们知识需要日积月累,最终才能达到一个很高的高度。西蒙教授曾提出了这样一个见解:“对于一个有一定基础的人来说,他只要真正肯下功夫,在6个月内就可以掌握任何一门学问。”Java只需要花3个月就可以学会,到6个月后可以掌握它。人生苦短,朝如青丝暮成雪,所以这里选择更先进的语言,有垃圾回收后就不用为释放内存费心思,节省时间。有很多人从开发Java后受益。例如Cut
11、ting以前是一个C+程序员,他在1999年写下第一个Java项目,名字叫做Lucene的全文检索项目。在后来的10多年里,Lucene越来越流行,成为开源组织Apache基金会的项目,并在维基百科网站等项目中得到广泛使用。Cutting后来开发MapReduce的Java版本Hadoop也同样成功。Cutting因此进入Apache基金董事会,并在2010年成为董事会主席。Andy Rubin在2002年把Danger公司以5亿美元卖给微软后,Sidekick手机后来退出市场。而使用Java 标准版本开发应用的Android却取得了巨大的成功。Android底层使用Linux操作系统内核,但
12、是手机应用运行在一个叫做Dalvik的Java虚拟机上。Java是一门投入小,见效快、收益大的编程语言。学习基础Java只是5天的课程。众多的Java开源工具包能让你避免重复发明轮子。开源软件哪里找?和apache.org以及。其中apache.org像是一个品牌店,包括一些知名的项目,例如实现搜索功能的Lucene或者实现下载网页的HTTPClient。而和则包括一些开发人员自己建立的小项目。就好像一个集市,包括各种琳琅满目的小玩意。相对于很多数据库编程语言的昙花一现,专业Web开发语言的不冷不热,Java的持续流行与Oracle和IBM等公司的支持分不开。如果觉得Java程序运行速度慢,可
13、以把Java代码当成伪代码。1.1 软件工具据说人是由学会使用工具的猿进化而来的,要花很长时间才能做好一个趁手的石器工具。首先介绍可以提高学习和工作效率的软件工具。1.1.1 搜索引擎有问题首先到Google上搜索,搜索引擎已经成了人类大脑的外部存储设备。习惯使用搜索引擎的人们会忘记自己能在网上找到的信息,而记住自己认为无法在网上找到的信息。有时候需要方便的同时向多个搜索引擎提交同一个查询词。可以使用英文版本的FireFox,它提供一个搜索工具栏,可以通过下拉列表来选择执行搜索的引擎。还可以在http:/mycroft.mozdev.org/添加其他的搜索引擎到搜索工具栏。专业的搜索引擎一般都
14、会实现一个搜索语法,例如,找Word文档,就可以这样查询:Java filetype:doc。注意,filetype:和后面的关键词之间不要有空格。有时候,您如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,提高查询效率。使用的方式,是在查询内容的后面,加上“site:站点域名”。例如,要从查找java,就可以这样查询:java site:。注意,“site:”后面跟站点域名,不要带“http:/”。另外,site:和站点名之间,不要带空格。1.1.2 Windows命令行Windows命令行是通过Windows系统目录下的cmd.exe执行的。执行这个程序最直接的方式是
15、找到这个程序,然后双击。但cmd.exe并没有一个桌面的快捷方式,这样太麻烦。可以在开始菜单的运行窗口直接输入程序名,回车后运行这个程序。打开开始-运行,这样就会打开资源管理器中的运行程序窗口。或者使用快捷键窗口键+R,打开运行程序窗口。总之,输入程序名cmd后单击确定,出现命令提示窗口。开始的路径往往是C:UsersAdministrator。可以用cd命令改变路径到要执行的路径,例如C:Program FilesJavajdk1.6.0_10。C:UsersAdministratorcd C:Program FilesJavajdk1.6.0_10如果写cd d:,则是改变当前路径到d:子
16、目录。所以切换盘符不能使用cd命令,而是直接输入盘符的名称。例如切换到d盘,使用命令:C:UsersAdministratord:1.1.3 机器翻译从开始学习英语,到能够阅读专业英文资料要多久?如果从初中开始学习英语,到大学毕业才逐渐掌握。到最后10年时间已经过去了。英语基础不太好的读者可以开始时用在线机器翻译阅读英文技术文档,例如查阅Java Doc形式的API,然后逐渐过渡到阅读英文原文。可以使用Google机器翻译()查看英文网页。例如用机器翻译查看最新的Java开发文档。1.1.4 Linux关于Linux,有这样的比喻:从前,有一个叫Linus的人发明了自助车,把它叫做Linux。
17、后来有个叫Sun的家伙觉得这东西不错,但是开起来有点颠簸,一般人控制不了。于是在Linux牌自助车上装上了一个Java牌减震器。于是变成了企业商用车,用了都说好。再后来又来了个叫Andy的哥们,觉得自助车上装个柴油机还是开不快。他干了两件事:1.把柴油机换成了Dalvik型汽油发动机。2.把自助车轮子加粗了,又装上了漂亮的车壳。他宣布,Android牌摩托诞生了。Andy给Google公司的老板Page发了一封邮件推销,Page觉得这摩托不错,就买下来了。没想到这轿车一下就特别火,很快大街上除了开农用车的果农,就都是开摩托的码农了。Linus跟Sun可不干了,说你这不是剽窃我的么,不过Goog
18、le理直气壮:Sun你看,我发动机都换了,不是你家的了。而Linus呢,我把你底下的轮子都改了,不是原来的自助车轮了。因为Windows图形界面简单,所以大部分时候都是在使用Windows,尝试使用新的操作系统往往很费劲。不能像邯郸学步,还没学会Linux,却牺牲了Windows的方便易用。如果有现成的Linux服务器可用,可以使用支持SSH协议的终端仿真程序SecureCRT连接到远程Linux服务器。因为可以保存登陆秘密,所以比较方便。除了SecureCRT,还可以使用开源软件PuTTY(http:/www.chiark.greenend.org.uk/sgtatham/putty),以及
19、可以保存登录密码的PuTTY Connection Manager。小袋鼠在袋鼠妈妈的袋子里长大。使用VMware,Linux可以运行在Windows系统下。VMware让Linux运行在虚拟机中,而且不会破坏原来的Windows操作系统。首先要准备好VMware,当然仍然需要Linux光盘文件。就好像华山派有剑宗和气宗,Linux也有很多种版本,例如RedHat或者Ubuntu以及SUSE。这里选择CentOS(http:/www.centos.org/)。如果需要安装软件,可以下载RPM安装包,然后使用RPM安装。但操作系统对应的RPM安装包找起来往往比较麻烦。一个软件包可能依赖其他的软件
20、包。为了安装一个软件可能需要下载其他的好几个它所依赖的软件包。为了简化安装操作,可以使用黄狗升级管理器(Yellowdog Updater, Modified),一般简称yum。yum会自动计算出程序之间的相互关联性,并且计算出完成软件包的安装需要哪些步骤。这样在安装软件时,不会再被那些关联性问题所困扰。yum软件包管理器自动从网络下载并安装软件。yum有点类似360软件管家,但是不会有商业倾向的推销软件。例如安装支持wget 和rzsz命令的软件:#yum install wget#yum install lrzsz可以同时安装几个软件包,例如同时安装MySQL服务器和客户端:#yum in
21、stall mysql-server mysql1.1.5 源代码比较工具如果两个图有四处不同,要找出两个图之间存在的所有差异很费劲。同样道理,可能在不止一个地方改动了代码,形成不止一个版本。如果要合并两个版本的源代码,就要使用源代码比较工具。Beyond Compare是一个流行的源代码比较工具。可以比较两个目录中文件内容之间的差别,或者只比较两个文件之间的差别。可以根据内容之间的差异更新某个文件。1.2 Java基础为了适应寒冷干燥的环境,需要鼻子湿润和加热空气。为了解决编程难题,需要先熟悉一些编程基础。Java程序都运行在虚拟机上。为什么要做个虚拟机,而不是直接运行在本机的操作系统上?因
22、为Windows是收费的,而Linux可以免费使用。可以把Windows当作开发环境使用,可以把编译后的程序部署在Linux上。因为运行在指令集相同的虚拟机上,所以Java程序可以不经修改的在不同操作系统之间穿越。并不一定要自己买房子以后才有地方住。并不一定要在本机安装开发环境以后,才能运行第一个Java程序。有一些在线的开发环境可运行Java程序,例如第一个Java程序从一个类中定义的main方法开始执行:public class Personpublic static void main (String args) System.out.println(Hello World!);底层到底
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计实践 精品资料 Java 程序设计 实践 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内