• java_interview
  • Introduction
  • 1. Java基础知识
    • 1.1. Java跨平台
      • 1.1.1. 字节码是什么
      • 1.1.2. JVM跨平台的原理
      • 1.1.3. JDK与JRE的区别
    • 1.2. Collection集合类
      • 1.2.1. Map
        • 1.2.1.1. ConcurrentHashMap与锁分离
        • 1.2.1.2. HashMap与HashTable部分源码比较
        • 1.2.1.3. LinkedHashMap源码研读
        • 1.2.1.4. 红黑树与平衡二叉树
        • 1.2.1.5. 比较:TreeMap、HashMap、LinkedHashMap、HashTable
        • 1.2.1.6. 怎样使HashMap同步
    • 1.3. 反射机制
      • 1.3.1. 应用场景
      • 1.3.2. 如何优化反射机制
      • 1.3.3. Java中创建对象的4种方法
    • 1.4. 异常处理
      • 1.4.1. 异常处理的作用(与C语言比较)
      • 1.4.2. 一道关于finally的面试题
    • 1.5. String
      • 1.5.1. String/StringBuffer/StringBuilder
      • 1.5.2. 关于String的面试题
    • 1.6. 其他
      • 1.6.1. 基本类型之间的转换
      • 1.6.2. 静态类型与实际类型
      • 1.6.3. 接口与抽象类的异同
      • 1.6.4. 关键字static
      • 1.6.5. 关键字final&finally&finalize
      • 1.6.6. jdk5.0新特性
  • 2. Java的内存模型
  • 3. JVM
    • 3.1. JVM启动参数的意义
    • 3.2. JVM内存划分
    • 3.3. 对象的管理
      • 3.3.1. 对象创建的过程
      • 3.3.2. 对象的内存分配策略
      • 3.3.3. 符号引用与直接引用
    • 3.4. GC
      • 3.4.1. 如何判定对象是否为垃圾
      • 3.4.2. GC算法
      • 3.4.3. JVM的GC触发机制
      • 3.4.4. 垃圾回收器
      • 3.4.5. 方法区的垃圾回收
      • 3.4.6. OOM与调优
      • 3.4.7. Java中四种引用关系
    • 3.5. JVM类加载
      • 3.5.1. 类加载器:双亲委派模型与OSGI
      • 3.5.2. 解释器执行过程与栈帧结构
      • 3.5.3. 类文件的结构
  • 4. IO
    • 4.1. 磁盘IO的访问方式
    • 4.2. 堆内内存vs堆外内存
    • 4.3. 同步/异步/非阻塞/阻塞
      • 4.3.1. BIO/NIO/AIO
      • 4.3.2. NIO分析
  • 5. 线程
    • 5.1. 线程的状态
    • 5.2. 线程与进程
      • 5.2.1. 进程的状态
      • 5.2.2. 多进程之间的通信
      • 5.2.3. 多线程时间的通信
    • 5.3. 线程安全
      • 5.3.1. 临界区
      • 5.3.2. 先行先发送原则happen-before
      • 5.3.3. volatile关键字
      • 5.3.4. 原子性、可见性、有序性
    • 5.4. 多线程的实现
      • 5.4.1. 多线程的优势
      • 5.4.2. Java多线程同步(锁)的实现方法(synchronised 与reentrantlock)
      • 5.4.3. concurrent包中的常用类
      • 5.4.4. 线程池中断策略
    • 5.5. 面试题收集
      • 5.5.1. 线程死锁:哲学家问题
      • 5.5.2. 生产者消费者模型
      • 5.5.3. 关于多线程的面试题
      • 5.5.4. 线程异常面试题
      • 5.5.5. 多线程通信面试题
      • 5.5.6. 其他面试题
  • 6. 网络通信
    • 6.1. 序列化与反序列化
      • 6.1.1. Java中的序列化与反序列化
      • 6.1.2. transient关键字
      • 6.1.3. 常见面试题
    • 6.2. TCP/UDP
      • 6.2.1. TCP状态迁移图
      • 6.2.2. TCP三次握手与四次挥手
      • 6.2.3. SOCKET通信实现
      • 6.2.4. 非阻塞SOCKET
    • 6.3. HTTP
      • 6.3.1. Cookie与Session
      • 6.3.2. GET与POST的区别
      • 6.3.3. 状态码
      • 6.3.4. Http通信数据转发过程
      • 6.3.5. Http1.0与1.1
      • 6.3.6. Https
      • 6.3.7. URL与URI
      • 6.3.8. Web缓存与客户端缓存
      • 6.3.9. 续传与多线程下载原理
  • 7. 设计模式
    • 7.1. 单例模式
      • 7.1.1. 单例模式实现方法
      • 7.1.2. 双检索的缺点
      • 7.1.3. 怎样获得更多的单例对象
    • 7.2. 工厂模式
    • 7.3. 策略模式
    • 7.4. 建造者模式
  • 8. 数据库
    • 8.1. 事务
    • 8.2. ORM
Powered by GitBook

java_interview

建造者模式

参考博文:

  1. http://www.blogjava.net/fancydeepin/archive/2012/08/05/java_pattern_Builder.html