1 / 80

Java 开发基础

Java 开发基础. 目录. 第 1 章 Java 体系结构 第 2 章 基本程序结构设计 第 3 章 对象与类 第 4 章 继承 第 5 章 接口与内部类 第 6 章 事件处理 第 7 章 异常与调试 第 8 章 流与文件. ☞. Java 体系结构. Java 体系结构包括如下四大类技术: Java 程序设计语言 Java class 文件格式 Java API Java 虚拟机. Java 体系结构(续). 目录. 第 1 章 Java 体系结构 第 2 章 基本程序结构设计 第 3 章 对象与类 第 4 章 继承

Download Presentation

Java 开发基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java开发基础

  2. 目录 • 第1章 Java体系结构 • 第2章 基本程序结构设计 • 第3章 对象与类 • 第4章 继承 • 第5章 接口与内部类 • 第6章 事件处理 • 第7章 异常与调试 • 第8章 流与文件 ☞

  3. Java体系结构 • Java体系结构包括如下四大类技术: • Java程序设计语言 • Java class文件格式 • Java API • Java 虚拟机

  4. Java体系结构(续)

  5. 目录 • 第1章 Java体系结构 • 第2章 基本程序结构设计 • 第3章 对象与类 • 第4章 继承 • 第5章 接口与内部类 • 第6章 事件处理 • 第7章 异常与调试 • 第8章 流与文件 ☞

  6. 大纲 • 数据类型 • 变量 • 运算符 • 字符串 • 注释 • 输入输出 • 控制流程 • 数组

  7. 数据类型 • 数据类型 • 整型 • 浮点型 • char型 • boolean型 Char :长度 2字节无符号整型 0 ~ 65535 Boolean:true 、 false

  8. 数据类型 • 数据类型操作注意事项 • 尽量使用适合长度的数据类型操作 • 尽量使用约定俗成的数据类型做常用操作 • 注意数据操作时可能发生的数据溢出及除0错误 • 进行金额操作时避免使用float 和 double,使用无损精度操作的大数值类型 BigInteger 和 BigDecimal

  9. 变量 • 变量 • 初始化变量 • 常量 • 注意 • 定义变量时尽量赋予初始化值 • 变量的命名要简明达意 • 遵守变量命名的大小写规范 • 使用合适的描述符,尽可能在使用变量时定义,减小可见性

  10. 运算符 • 运算符 • 算术运算符 • 自增自减运算符 • 关系运算符与boolean运算符 • 位运算符 • 运算相关注意事项 • 使用JDK库实现常用算法及函数 • 数值类型的自动转换规则 • 强制类型转换及截位 • 枚举类型的使用

  11. 字符串 • 字符串 • 代码点与代码单元 • 字符子串与拼接 • 相等的比较 • 注意事项 • 编码转换方法 • 子串下标计算 • 拼接的性能 • String 方法 intern() 的应用

  12. 注释 • 注释 • 单行注释 • 多行注释 • 文档注释 • 注意 • 多行注释不能嵌套 • 方法及类说明尽量采取文档注释,并标注相关内容 (@author,@see …) • 除了JDK1.5的标注Annotation外,注释不包括在编译后文件中

  13. 输入输出 • 输入输出 • Java 库提供了丰富的IO操作流包括如下: • 数据流 • 文本流 • 字符流 • Zip文件流 • 应用范围 • 文件管理 • 网络数据传输 • 对象序列反序列化 • 压缩解压等

  14. 流程控制 • 控制流程一 • 条件控制

  15. 流程控制 • 控制流程二 • 循环控制

  16. 流程控制 • 控制流程三 • 多重选择

  17. 目录 • 第1章 Java体系结构 • 第2章 基本程序结构设计 • 第3章 对象与类 • 第4章 继承 • 第5章 接口与内部类 • 第6章 事件处理 • 第7章 异常与调试 • 第8章 流与文件 ☞

  18. 大纲 ☞ • 对象构造顺序 • 方法参数传递:按值调用 • 类设计基本原则

  19. 对象构造顺序 • 对象构造顺序 • 类装载时,按类声明中出现的次序执行静态初始化块或静态初始化语句。 • 对象构造时: • 所有数据域初始化为默认值 • 按类声明中出现的次序执行初始化块或初始化语句。 • 如果构造器第一行调用了第二个构造器,则跳转到第二个构造器中执行,直到返回。 • 执行这个构造器的主体部分。 • 注点事项 • 对象构造器中显式调用另一构造器时,必须在对象构造器的第一行代码中。 • 当类声明中同时存在初始化语句与初始化域中,变量初始化的代码的次序至关重要。

  20. 大纲 • 对象构造顺序 • 方法参数传递:按值调用 • 类设计基本原则 ☞

  21. 方法参数传递:按值调用 • 一个方法不能修改一个基本数据类型的参数 • 一个方法可以改变一个对象参数的状态 • 一个方法不能让对象参数的引用到一个其它对象

  22. 大纲 • 对象构造顺序 • 方法参数传递:按值调用 • 类设计基本原则 ☞

  23. 类设计基本原则 • 类设计的基本原则 • 单一职责原则(SRP):一个类应该仅有一个引起它变化的原因。 • 开放-封闭原则(OCP):一个类对于扩展时开放的,对于更改是封闭的。 • Liskov替换原则(LSP):子类必须能够替换掉它们的基类。 • 依赖倒置原则(DIP):高层模块不应该依赖于低层模块;抽象类不应该依赖于其细节,细节。 • 接口隔离原则(ISP):不应该强迫客户依赖于它们不用的方法

  24. 类设计基本原则(续) • 包设计的基本原则 • 包内聚性原则(包粒度) • 重用发布等价原则(REP):重用的粒度就是发布的粒度。 • 共同重用原则(CRP):一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。 • 共同封闭原则(CCP):包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其它的包不造成任何影响。 • 考虑可重用性与可开发性的平衡。 • 包耦合性原则(包稳定性) • 无环依赖原则(ADP):在包的依赖关系图中不允许存在环。 • 稳定依赖原则(SDP):朝着移定的方向进行依赖。不稳定性I=Ce/(Ca+Ce) • 稳定抽象原则(SAP):包的抽象程度应该与其稳定程度一致。抽象度A=Na/Nc

  25. 目录 • 第1章 Java体系结构 • 第2章 基本程序结构设计 • 第3章 对象与类 • 第4章 继承 • 第5章 接口与内部类 • 第6章 事件处理 • 第7章 异常与调试 • 第8章 流与文件 ☞

  26. 大纲 • 继承的介绍 • Java 继承的约束 • 继承的使用 • 继承与模式 • 反射 • 枚举

  27. 继承的介绍 • 继承是面向对象编程的一块基石 • 利用已存在的类,复用这些类的方法和域 • 利用继承,一些共性的特征可以抽象到超类,子类继承超类实现特有的属性 • Java 中所有的对象都继承至 java.lang.Object ,因此都拥有toString() , equals() ,wait() 等方法

  28. 继承的约束 • 不能实现多继承 • 父类提供了参数构造函数,子类必须实现 • 子类不能降低父类方法的可见域 • 子类不能抛出比父类构造函数或方法更多的异常 • 子类不能扩展父类的 final 方法

  29. 继承的使用 • 继承增加了重用代码,减少子类编码 • 把数据、行为和/或接口的共性尽可能地放到继承层次体系的高端 • 继承树的层次不能太深 • 复杂的继承树提高维护的复杂性 • 继承树的上层尽量为抽象层 • 可以提高系统间的松耦合 • 继承打破了对象的封装 • 子类可以访问父类的实现,父类的改动将会对子类产生影响 • 继承的动态绑定可以使程序灵活,更易于扩展 • 尽量减少定义域对子类可见(final 除外),减少数据被误写入危险,可提供读写方法功子类操作

  30. 继承与模式 • 模版模式

  31. 继承与模式 • 抽象工厂模式

  32. 继承与模式 • 适配器模式

  33. 继承与模式 • 策略模式

  34. 开发相关 • Java 中不允许多继承,但允许实现多个接口 • Java中,我们可以声明一个类扩展(extends)另一个类 ,继承的子类拥有访问超类的 protected 域的权限 ,并可以覆写已有方法或添加新的方法 • 继承使用应谨慎,不要滥用继承。

  35. 反射 • 允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,并可于运行时改变fields内容或唤起 methods。 • 可动态获取的内容包括 • modifiers(诸如public, static ) • superclass(例如Object) • interfaces(例如Cloneable • fields和methods等

  36. 目录 • 第1章 Java体系结构 • 第2章 基本程序结构设计 • 第3章 对象与类 • 第4章 继承 • 第5章 接口与内部类 • 第6章 事件处理 • 第7章 异常与调试 • 第8章 流与文件 ☞

  37. 大纲 ☞ • 接口与抽象类的选择 • 克隆及其注意事项 • 接口与回调 • 内部类、局部类、匿名类 • JDK的Proxy与CGLib的动态代理区别

  38. 接口与抽象类的选择 • 基本原则 • 正确、合理地理解领域本质与设计意图。 • 在接口和抽象类的选择上,必须遵守这样一个原则:行为模型应该总是通过接口而不是抽象类定义。 • 合理理解OCP原则、ISP原则 • 考虑因素 • 是否可能被多继承 • 是否有默认行为 • 行为集合是否已稳定 • “is a ”还是“like a”关系

  39. 大纲 • 接口与抽象类的选择 • 克隆及其注意事项 • 接口与回调 • 内部类、局部类、匿名类 • JDK的Proxy与CGLib的动态代理区别 ☞

  40. 克隆及其注意事项 • 浅克隆与深克隆 • 默认实现是浅克隆(本地方法实现)(java.util.AbstractMap默认实现是浅克隆) • 如果原始对象与浅克隆对象共享的子对象是不可变的,则不会产生负面问题。 • 采用序列化方法实现深度克隆,但不推荐。如com.kingdee.util. ObjectUtils.createCopy(Object o) • 注意事项 • 避免死循环 • 应用单例模式时,需注意屏蔽clone方法

  41. 大纲 • 接口与抽象类的选择 • 克隆及其注意事项 • 接口与回调 • 内部类、局部类、匿名类 • JDK的Proxy与CGLib的动态代理区别 ☞

  42. 接口与回调 • 回调实现方法 • 模板方法,如:BOS的Entity方法生成的代码。 • 注入方式,如:Observer设计模式 • 动态代理与拦截器方法 • 注意事项 • 合理利用接口,避免写僵硬、强藕合代码。 • 选用合适的回调实现方式,避免写侵入式代码。

  43. 大纲 • 接口与抽象类的选择 • 克隆及其注意事项 • 接口与回调 • 内部类、局部类、匿名类 • JDK的Proxy与CGLib的动态代理区别 ☞

  44. 内部类、局部类、匿名类 • 内部类 • 编译器会为非静态的内部类添加一个对外围类的隐式引用。 • 内部类是一种编译器现象,与虚拟机无关。 • 局部类 • 不能用可见性说明符进行声明。 • 可访问final类型的局部变量。运行时,虚拟机在方法参数变量释放之前对引用的局部变量进行备份。

  45. 大纲 • 接口与抽象类的选择 • 克隆及其注意事项 • 接口与回调 • 内部类、局部类、匿名类 • JDK的Proxy与CGLib的动态代理区别 ☞

  46. JDK的Proxy与CGLib的动态代理区别 • JDK的Proxy • 只能实现基于接口的代理 • 一个代理类仅有一个调用处理器(InvoctionHandler)的实例变量 • 代理类仅覆盖Object类的toString/equals/hashCode方法,其它的方法没有重定义 • 对于特定的类加载器和给定的一组接口而言,只有一个代理类。 • 如果代理类实现的所有接口都是public,那代理类不属于特定的;否则,所有非公有的接口都必须属于同一个包,同时,代码类也属于这个包。 • 存在同签名方法时,接口的顺序至关重要。 • CGLib • 可以采用实现接口,或继承父类方式实现代理

  47. 目录 • 第1章 Java体系结构 • 第2章 基本程序结构设计 • 第3章 对象与类 • 第4章 继承 • 第5章 接口与内部类 • 第6章 事件处理 • 第7章 异常与调试 • 第8章 流与文件 ☞

  48. 事件处理 • 事件处理与 MVC • Model是代表组件状态和低级行为的部分,它管理着自己的状态并且处理所有对状态的操作 • View代表了管理model所含有的数据的一个视觉上的呈现。一个Model可以有一个以上的View • Controller管理着model和用户之间的交互的控制。它提供了一些方法去处理当model的状态发生了变化时的情况 • 运作时序 • 按钮 model 保存按钮的内部状态及行为 • 控制器在发生按钮点击事件后将事件给模型,模型根据行为更新内部状态。控制器通知视图改变按钮的显示 • 视图根据按钮的模型更新显示

  49. 事件处理 • 事件的继承模型

  50. 事件处理 • 组件的事件处理

More Related