摘要:
Spring 简介 Spring 基于 IOC(Inversion Of Control) 和 DI(Dependency Inject)。Spring 出现以前,类对象是用户手动创建的(例如使用 new)与组装的,而使用 Spring 框架后类对象将由 Spring 框架生成并由 Spring 阅读全文
摘要:
Java 高效并发 为了便于移植,Java 多线程内存模型不与硬件关联,不同硬件平台可以使用不同的实现手段 和 CPU 内存与高速缓存做对比 Java 内存模型被分为两大部分: 主内存 (对应 PC 内存)和 工作内存 (对应 CPU 高速缓存) 主内存与工作内存之间数据的交互 Java 定义了 阅读全文
摘要:
Java 类加载与运行 类从加载到内存直至被卸载,整个生命周期包括:加载、验证、准备、解析(绑定)、初始化、使用和卸载 7个阶段 ,对于不同的 JVM 实现,这 7 个阶段可能各有重叠,但大致过程相同 [TOC] 从类到对象 粗略来看,类的加载一般需要经过下面三个过程 1. 通过一个类的全限定名 阅读全文
摘要:
Java 编译与优化 Java 的编译器有三类 1. 前端编译器,将 .java 文件编译为 .class 文件 Javac、ECJ 2. 运行时编译器,JIT HotSpot 的 C1、C2 编译器 3. AOT(Ahead Of Time Compiler),直接将 Java 代码编译为本地 阅读全文
摘要:
Java Class 文件简介 作为 一个通用的、机器无关的执行平台,任何其他语言的实现者都可以将 Java 虚拟机作为语言的产品交付媒介。Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了 Java 虚拟机 阅读全文
摘要:
Java 垃圾回收与内存分配 [TOC] 对象探活 对象探活的目的在于找到那些需要清理的对象 对象探活常见方法有引用计数和可达性分析等。使用引用计数法(类似于 C++ 中的智能指针 )实现对象探活相对容易,但无法解决对象之间相互循环引用的问题,例如 可达性分析 & GC Roots Java 中 阅读全文
摘要:
Java 虚拟机简介 本文是阅读《深入理解 Java 虚拟机:JVM 高级特性与最佳实践》的笔记 推荐学习资料: 《The Java Virtual Machine Specification, Java SE 7 Edition》 ,高级语言虚拟机圈子 概述 Java 技术体系 4 平台 Ja 阅读全文
摘要:
搜索引擎简介 [TOC] 本文为阅读《这就是搜索引擎:核心技术详解》的读书笔记 搜索引擎是互联网重要的组成部分,搜索引擎技术也是当前解决信息过载问题主要的手段 可以按照使用的技术将搜索引擎的发展分为四个阶段: 1. 分类目录,和 PC 机上的文件目录类似,相同种类的网址由人工整理并汇聚在一起 2 阅读全文
摘要:
Servlet & JSP & Filter & Listener Servlet Servlet 是运行在服务器端的一个对象,web 服务器(如 Tomcat)会根据用户的访问链接将请求路由到不同的 Servlet 中并由其处理与返回响应。路由配置一般在 web.xml 中,当然也可以使用注解 阅读全文
摘要:
反射与注解 Java 从源码到执行一般需要三个过程: 1. 编译并生成字节码文件,即 class 文件或者 jar 包 2. JVM 加载字节码文件并初始化运行环境,例如将字节码翻译成机器指令、初始化对象、加载依赖包等 3. 执行 Java 程序 和 这类系统级编程语言相比,Java 多了生成字节码 阅读全文