黑马程序员视频总结_第1页
黑马程序员视频总结_第2页
黑马程序员视频总结_第3页
黑马程序员视频总结_第4页
黑马程序员视频总结_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象 面向对象是相对于面向过程而言的 面向过程强调的是功能 面向对象将功能 封装进对象 强调的是具有功能的对象 类是对现实生活的描述 对象是一类事物实实在在存在的个体 堆内存和栈内存 基本类型的变量和对象的引用存储在栈内存 用 new 创建的对象和数组 存储在堆内存 封装 隐藏对象的属性和实现细节 仅对外提供公共访问方法 原则 将不需要对外提供 的内容都隐藏起来 将属性都隐藏 提供公共方法对其访问 好处 提高安全性 便于使 用 提高重用性 什么时候使用静态 成员变量 当对象中有共享数据时 成员函数 函数内部没有访问到 非静态数据 对象的特有数据 帮助文档制作 author 作者 version 版本 param 参数 return 返回结果 命令 javadoc d 文件夹 author version xxx java 将生成一系列网页 静态代码块 static 用于给类进行初始化 只执行一次 优先于主函数 Person p new Person 1 找到 Person class 加载到内存 2 执行 static 代码块 3 在 栈内存中开辟 main 方法空间 并分配一个 变量 p 4 在堆内存中开辟实体空间 5 进行属性的空间分配 并进行默认初始化 6 对空间属性进行显示初始化 7 实体的构 造代码初始化 8 调用对应的构造函数 进行构造函数初始化 9 将实体空间首地址赋 给 p 单例 class Single private Single 私有化构造函数 私有化构造函数 private static Single s new Single 静态方法要访问它 所以也要静态化 静态方法不能访问非静态的方法和属性 创建私有并静态的本类对象 创建私有并静态的本类对象 public static Single getInstance 无法通过对象调用 只能是静态 定义公定义公 有并静态的方法 返回该对象 有并静态的方法 返回该对象 return s 懒汉式 延迟加载方式 class Single2 private Single2 private static Single2 s null public static synchronized Single2 getInstance if s null s new Single2 return s 继承 提高代码复用性 并为多态打下基础 Java 只支持单继承 多继承隐患 多个父类 定义相同功能时 子类对象不确定要运行哪一个 重载 方法名相同 但参数不同的多个同名函数 覆盖 子类重写父类的方法 要求方法名和参数类型完全一样 参数不能是子类 返回值 和异常比父类小或者相同 即为父类的子类 访问修饰符比父类大或者相同 隐藏 父类和子类拥有相同名字的属性或者方法时 父类的同名的属性或者方法形式上不 见了 实际是还是存在的 多态 同一操作作用于不同的对象 可以有不同的解释 产生不同的执行结果 内部类 内部类可以直接访问外部类的成员 包括私有 外部类必须建立内部类对象才能 访问内部类成员 异常体系 error 和 exception 和 equals 的区别 和 比较的是 栈 中的内容 对象的地址 而 equals 比较的 是 堆 中的内容 对象的内容 多线程 建立线程两种方法 1 继承 Thread 类 2 实现 Runnable 接口 继承接口避免 了单继承的局限性 线程对象 setDaemon true 设置守护线程 线程启动前调用 当正在运行的线程只有守护线 程时 java 虚拟机退出 当 a 线程执行 b 线程的 join 方法时 a 会等待 b 线程执行完才会执行 线程对象 setPriority 设置线程优先级 StringBuilder 不是线程安全的 速度快 StringBuffer 线程安全 慢 泛型是一个类型安全机制 用于解决安全问题 集合 为方便存储和操作对象 出现集合类 数组可以存储对象 但长度固定 集合长度可变 数组可以存储基本数据类型 集合只能存储对象 Collection List 和 Set List 有序 元素可以重复 有索引 ArrayList 底层数据结构是数组 查找速度快 删除元素用 equals 判断 LinkList 链表 增删速度快 Vector 线程同步 数组 查找速度快 Set 无序 元素唯一 HashSet 底层数据结构式哈希表 通过 hashCode 和 equals 方法保持唯一性 如果元素 hashCode 值相同才会判断 equals 是否为 true TreeSet 底层是二叉树 可以对元素进行排序 按自然顺序就是 compareTo 实现排序的两种方法 1 实现 Comparable 接口 覆盖 comapreTo Object obj 方法 2 实现 Comparator 接口 覆盖 compare Object Object 方法 Map Hashtable 底层哈希表 不可以存储 null 值或键 线程同步 效率低 HashMap 哈希表 允许使用 null 值或键 不同步 效率高 TreeMap 底层是二叉树 线程不同步 可以给键进行排序 获取 Map 元素的两种方法 1 Set keyset 将 Map 集合中的键存入 Set 集合 2 Set Map Entry mapEntry 将 Map 集合中的映射关系存入 Set 集合 Collections java 集合的工具类 用于操作集合类 Arrays 集合 用于操作数组的工具类 1 5 新特性 可变参数 int arr 静态导入 import static java lang System 用于导入静态方法 import java lang 用于导入 类文件 System 类 getProperties 方法获得返回系统属性 Properties Map 集合子类 对象 Runtime 类 运行时操作类 单例设计模式 Calendar 类 抽象类 用 getInstance 获得对象 Math 类 IO 流 常用基类 派生子类用父类名做后缀 字节流 InputStream OutputStream 字符流 Reader Writer 字符流 FileWriter FileReader 需要 flush 字符流缓冲区 BufferedReader BufferedWriter 要结合流才能使用 需要 flush 关闭 缓冲区就是关闭缓冲区的流对象 LineNumberReader FileReader 类 getLineNumber 方法可以获得行号 字节流 FileOutputStream FileInputStream 操作多媒体文件 转换流 InputStreamReader OutputStreamWriter 属于字符流的子类 In System in out 返回字节流 System setIn InputStream System setOut PrintStream 改变标准输入输出 File 类 合并流 SequenceInnputStream 用 vector 的 elements 得到 Enumeration 切割文件 循环里边创建流 关闭流 讲一个文件分部分存储在几个文件中 java Awt 需要调用本地系统方法实现功能 javax Swing 完全由 java 实现 增强移植性 Component 1 Container Window Panel 布局管理器 1 FlowLayout Panel 默认布局 2 BorderLayout Fram 默认 TCP 和 UDP TCP 要经过三次握手建立连接 传输大量数据 可靠协议 效率低 UDP 不需要建立连接 不可靠协议 速度快 Socket 网络服务的一种机制 网络通信就是 Socket 间的通信 数据在两个 Socket 间通信 TCP Socket ServerSocket UDP DatagramSocket DatagramPacket 加强 overload 重载 存在于父类和子类 同类中 只能通过不同参数样式重载 override 重写 存在于父类和子类之间 方法名 参数 返回值相同 子类方法不能缩小 父类方法访问权限 不能抛出更多异常 可变参数 int arr For 循环增强 for int i int 枚举 让某个变量的取值只能为若干个固定值中的一个 反射 在运行状态能够知道类的所有属性和方法 并调用对象的任意一个方法 获取类信 息以及调用对象的方法 类加载器 负责加载 java 类的字节码到虚拟机中 每个类加载器加载类时先委托给其上级 加载器 当所有祖宗类加载器都没有加载到类 回到发起者类加载器时 还没加载到类 抛出 ClassNotFoundException 异常 JavaBean 有 set 和 get 方法获得类属性的特殊 java 类 用于传递数据信息 内省 IntroSpector java 语言对 Javabean 属性 事件的一些缺省处理方法 Beanutils 工具包 注解 Override 表示当前方法是覆盖父类的方法 Deprecated 表示当前元素是不赞成使用的 SuppressWarnings 表示关闭一些不当的编译器警告信息 Java 系统默认三个类加载器 BootStrap ExtClassLoader AppClassLoader 创建动态类的实例对象 1 通过实现的接口告诉要实现的动态类要实现哪些方法 2 产 生的类的字节码要有一个关联的类加载器对象 3 执行代码的对象 InvocationHandler 代理 用 Proxy 类的 getProxyClass classLoader interface 获得动态类的字节码文件 用 反射获得构造器 用构造器的 newInstance InvocationHandler 接口的对象做参数获得一 个类对象 InvocationHandler 对象重写 pubic Object invoke Object proxy Method method Object args 方法返回 method invoke target args 创建动态代理对象步骤 1 实现InvocationHandler 接口创建自己的调用处理器 重写 invoke 方法 2 用 Proxy newProxyInstance classLoader new Class Interface class handler 方 法获得代理类实例 Bank NumberManager 类 产生客户 Private int lastNumber Private List queueNumber int synchronized generateNewManager 产生新客户号码 客户线程调用 int synchronized fetchServiceNumber 取走客户号码 窗口线程调用 List 是共享 数据 需要互斥 NumberMachine 类 号码管理器 采用单例设计模式 private NumberManager commonManager 用 get 返回对象 private NumberManager expressManager 用 get 访问 private NumberManager vipManager 用 get 访问 Enum CustomerType COMMON EXPRESS VIP ServiceWindow 类 窗口 private int windowId 窗口号码 enum Custom

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论