编程的学习,需要学习编程的抽象概念,需要培养编程的实际技能,两手都要硬。
本目录为《编程导论(Java)》编程练习的索引。
注意:算法和数据结构的专题练习,请到LeetCode Online Judge
考虑一致性,将按照《编程导论(Java)》的例程库codes的子包进行基本的分类归档,扩展部分则建立新的包。
这里列举的链接,主要是原始版本codes的补充。
=============================原始版本=========================================
"编程导论_codes_2013.4.1.zip"汇集《编程导论(Java)》使用的所有源代码。
下载地址:http://download.csdn.net/detail/yqj2065/7705107
----------------------------------------------------------------------------------
项目的组织:
由于微观上迭代,各章节使用的代码片段按照内容安放在各个包中,而不是按照章节进行归类。
一级包:
algorithm包: 算法相关的例程
API包: Java API编程方面的例程
dataStructures包: 数据结构相关的例程
jvm包 :Java虚拟机相关的例程
OO包: 面向对象相关的例程
semantics包: 基本语法/语义方面的例程
tips包:还称不上tools,因而叫小贴士包
typeSystem包:类型系统方面的例程
zoo包 :狗所在的动物园。
默认包:
- ABC.java [7.1.1 装载]显式装载类时需要使用的例程。
- ASDF.java 练习6-6.默认包中的类,空类体。可以删除。
tips包
意为小贴士,包含《编程导论(Java)》使用的一些工具类;还包含一些常用的小知识代码。
- tips.Print 标准输出System.out.println()等的简写,添加pln(int[] )、pln(char[] )。被其它例程广泛采用。
algorithm包
algorithm.recursion
- 分治法之合并排序(merge Sort)
- Fibonacci级数 (RecursionDemo类,迭代Vs.递归、引入动态规划/dynamic programming)
- 汉诺塔问题
API包:
Java API 编程的演示例程。希望这里成为一个庞大的demo包。包括如下子包:
API.exceptions 异常demo
API.assertions 断言语法
API.graphics 图形处理
API.event 事件驱动编程
dataStructures包
数据结构(data structure)相关的例程。包括如下子包:
dataStructures.string 字符串
dataStructures.list 线性表
dataStructures.array 数组。
dataStructures.stack 栈
jvm包
集中了《第7章Java虚拟机相关》部分的例程。包括如下子包:
jvm.classFile
jvm.classLoader
jvm.gc
jvm.internedStrings
jvm.reflect
OO包:
面向对象概念的演示。类层次、内部类、泛型则归于typeSystem的相应包。包括如下子包:
OO.init 对象初始化
OO.immutable 不变类(immutable class)。
OO.accessModifier Java访问修饰符(Access modifier)的演示例程。
semantics包
Java语法(syntax)和语意(或语义,semantics)的演示例程。包括如下子包:
semantics.staticDemo
semantics.statement
typeSystem包
类型系统(Type system)相关的例程。包括如下子包:
typeSystem.primitive 基本类型
typeSystem.generics 泛型
typeSystem.hierarchy 类层次,参考OO包。
typeSystem.nestedType 9.4嵌套类型
zoo包
暗示程序设计的问题域(problem domain) 来自于现实生活。无子包。