核心概念
- JDK (Java Development Kit) – Java开发工具包,包含开发Java应用程序所需的编译器、JRE、类库及工具。
- JRE (Java Runtime Environment) – Java运行环境,包含Java虚拟机和标准类库,允许已编译的Java程序运行。
- JVM (Java Virtual Machine) – Java虚拟机,一个抽象的计算机,提供运行Java字节码的环境,实现了”一次编写,到处运行”的特性。
- 字节码 (Bytecode) – Java编译后的中间代码,不是机器码而是由JVM执行的指令集,存储在.class文件中。
- 面向对象编程 (OOP) – 一种编程范式,将数据和行为封装为对象,以提高代码的可重用性、可维护性和灵活性。
- 类 (Class) – 对象的蓝图或模板,定义对象的属性和行为,是Java程序的基本单位。
- 对象 (Object) – 类的实例,具有状态(属性)和行为(方法),是Java程序的基本运行单位。
- 接口 (Interface) – 定义方法但不实现的抽象类型,表示一种契约,支持多继承,是Java多态的重要实现机制。
- 抽象类 (Abstract Class) – 不能被实例化的类,可以包含抽象方法和具体方法,为子类提供通用实现。
- 继承 (Inheritance) – 类之间的父子关系,子类继承父类的属性和方法,支持代码复用和扩展。
- 多态 (Polymorphism) – 同一操作作用于不同对象产生不同结果,包括编译时多态(方法重载)和运行时多态(方法覆盖)。
- 封装 (Encapsulation) – 隐藏对象内部实现细节,仅通过公开接口与外部交互,提高安全性和维护性。
- 构造函数 (Constructor) – 创建对象时自动调用的特殊方法,用于初始化对象状态,可以重载以支持不同初始化方式。
语言特性
- 泛型 (Generics) – 参数化类型,允许在定义类、接口和方法时使用类型参数,提高代码复用性和类型安全性。
- 注解 (Annotations) – 代码的元数据,提供编译期或运行时的附加信息,用于文档、编译检查、代码生成等。
- 反射 (Reflection) – 在运行时检查和操作类、接口、方法和字段的能力,使程序能够自省并动态调用方法。
- Lambda表达式 – 函数式编程的简洁表示,允许将函数作为方法参数,简化匿名内部类的使用。
- Stream API – 函数式数据处理API,提供声明式操作集合的方式,支持并行处理,简化集合操作代码。
- 线程 (Thread) – 程序执行的最小单位,允许程序并发执行多个任务,每个线程有自己的执行路径。
- 同步 (Synchronization) – 控制多线程访问共享资源的机制,防止数据竞争和保证线程安全,通过synchronized关键字或Lock接口实现。
- 异常处理 (Exception Handling) – 处理程序运行时错误的机制,通过try-catch-finally块捕获和处理异常,提高程序健壮性。
- 垃圾回收 (Garbage Collection) – JVM自动内存管理机制,识别并清除不再使用的对象,避免内存泄漏。
- 序列化 (Serialization) – 将对象转换为字节序列的过程,用于对象持久化或网络传输,通过Serializable接口实现。
框架与工具
- Spring – 企业级Java应用框架,提供依赖注入、AOP、事务管理等功能,简化企业应用开发。
- Spring Boot – 简化Spring应用开发的框架,提供自动配置、嵌入式服务器等特性,快速搭建生产级应用。
- Spring MVC – Web应用框架,基于MVC设计模式,提供路由、视图解析、数据绑定等功能,简化Web开发。
- Hibernate/JPA – ORM框架,将Java对象映射到关系数据库表,简化数据库操作,JPA是Java持久化API标准。
- MyBatis – SQL映射框架,允许开发者使用XML或注解定义SQL,更加灵活地控制数据库操作。
- Maven/Gradle – 项目管理工具,处理依赖管理、构建、测试和部署过程,标准化项目结构和生命周期。
- JUnit – 单元测试框架,支持编写和运行自动化测试,确保代码质量和功能正确性。
- Log4j/Logback – 日志框架,提供灵活的日志记录功能,支持不同级别和输出目标的日志配置。
- JWT (JSON Web Token) – 用于身份验证的token格式,包含用户信息和签名,实现无状态的身份验证机制。
设计模式
- 单例模式 (Singleton Pattern) – 确保一个类只有一个实例,并提供全局访问点,常用于共享资源或配置管理。
- 工厂模式 (Factory Pattern) – 定义创建对象的接口,让子类决定实例化哪个类,实现对象创建与使用的解耦。
- 观察者模式 (Observer Pattern) – 定义对象间的一对多依赖关系,当一个对象状态改变时,所有依赖者都得到通知,用于事件处理。
- 适配器模式 (Adapter Pattern) – 将一个类的接口转换成客户端期望的另一个接口,使原本不兼容的类能够协同工作。
- 装饰器模式 (Decorator Pattern) – 动态地向对象添加新功能,比继承更灵活,Java IO流大量使用此模式。
- 代理模式 (Proxy Pattern) – 为其他对象提供代理以控制对这个对象的访问,用于延迟加载、权限控制等场景。
- MVC模式 (Model-View-Controller) – 将应用分为模型、视图和控制器三部分,实现关注点分离,提高代码组织性和可维护性。
数据库相关
- JDBC (Java Database Connectivity) – Java访问关系数据库的API,提供统一接口操作不同数据库。
- 连接池 (Connection Pool) – 管理数据库连接的缓存机制,重用连接以提高性能并控制资源使用。
- 事务 (Transaction) – 数据库的逻辑工作单元,具有ACID特性,确保数据一致性和完整性。
- ORM (Object-Relational Mapping) – 对象关系映射技术,简化Java对象与关系数据库表之间的转换。
Web开发
- Servlet – 处理Web请求的Java类,接收和响应HTTP请求,是Java Web应用的基础组件。
- JSP (JavaServer Pages) – 动态网页技术,允许在HTML中嵌入Java代码,服务器端执行生成动态内容。
- RESTful API – 表现层状态转移架构风格,基于HTTP的无状态API设计方法,使用HTTP方法表示操作。
- WebSocket – 全双工通信协议,在单个TCP连接上提供持久的实时通信,适用于聊天和实时数据更新。
- Tomcat/Jetty – Java Web服务器,实现Servlet和JSP规范,部署和运行Java Web应用程序。
并发编程
- 线程池 (Thread Pool) – 管理和复用线程的机制,减少线程创建开销,控制并发线程数量。
- 锁 (Lock) – 并发控制机制,保证多线程环境下共享资源的同步访问,包括ReentrantLock、ReadWriteLock等。
- 并发集合 (Concurrent Collections) – 线程安全的集合类,如ConcurrentHashMap、CopyOnWriteArrayList,支持并发访问。
- 原子操作 (Atomic Operations) – 不可中断的操作,通过java.util.concurrent.atomic包中的类实现无锁线程安全。
- CompletableFuture – 异步编程工具,代表一个可能尚未完成的操作结果,支持组合和函数式操作。
- volatile – 保证变量在多线程环境下的可见性,防止指令重排,但不保证原子性。
微服务
- Spring Cloud – 微服务开发工具集,提供服务发现、配置管理、断路器等功能,简化分布式系统构建。
- 服务发现 (Service Discovery) – 自动检测网络上可用服务的过程,允许服务动态注册和发现,常用Eureka、Consul实现。
- 负载均衡 (Load Balancing) – 将工作负载分配到多个服务实例的技术,提高系统可用性和性能,如Ribbon、Spring Cloud LoadBalancer。
- 断路器 (Circuit Breaker) – 防止级联故障的模式,当服务不可用时快速失败,如Hystrix、Resilience4j。
- API网关 (API Gateway) – 微服务架构中的入口点,处理路由、认证、限流等跨切面关注点,如Spring Cloud Gateway、Zuul。
- 配置中心 (Configuration Center) – 集中管理分布式系统配置的服务,支持动态配置刷新,如Spring Cloud Config、Nacos。
开发工具
- IDE (Integrated Development Environment) – 集成开发环境,如IntelliJ IDEA、Eclipse,提供代码编辑、调试、构建等功能。
- Git – 分布式版本控制系统,跟踪文件变化,支持多人协作开发,管理代码版本和分支。
- Docker – 容器化平台,将应用及其依赖打包为容器,确保在不同环境一致运行。
- CI/CD (Continuous Integration/Continuous Deployment) – 持续集成/持续部署,通过自动化构建、测试和部署加速软件交付。
Elasticsearch相关
- 索引 (Index) – Elasticsearch中类似于数据库的概念,是文档的集合,具有映射定义和设置,可以被查询和搜索。
- 类型 (Type) – 索引内文档的逻辑类别,类似数据库中的表(在Elasticsearch 7.x后被弃用,每个索引只能有一个类型)。
- 文档 (Document) – Elasticsearch的基本信息单元,以JSON格式存储,类似数据库中的行,包含多个字段和值。
- 字段 (Field) – 文档中的数据单元,类似数据库中的列,可以是简单类型(如字符串、数字)或复杂类型(如对象、数组)。
- 映射 (Mapping) – 定义文档及其字段如何存储和索引的模式,包括字段类型、索引选项、分析器等设置。
- 分片 (Shard) – 索引的水平分区,将数据分布在多个节点上,提高查询性能和可扩展性。
- 副本 (Replica) – 分片的备份,提供高可用性和读取性能,当主分片不可用时自动升级为主分片。
- 节点 (Node) – 单个Elasticsearch实例,参与集群的索引和搜索操作,可以配置为不同角色(主节点、数据节点等)。
- 集群 (Cluster) – 一组协同工作的Elasticsearch节点,共享数据和工作负载,提供高可用性和可扩展性。
- Query DSL – Elasticsearch的查询语言,基于JSON格式,提供丰富的查询和过滤功能,支持复杂搜索条件。
- 全文搜索 (Full-text Search) – 在文本内容中搜索关键词或短语,支持相关性排序、模糊匹配等功能。
- 精确查询 (Term Query) – 精确匹配字段值的查询,不对查询条件进行分析,用于结构化数据查询。
- 聚合 (Aggregation) – Elasticsearch的数据分析功能,支持统计、分组、过滤等操作,类似SQL的GROUP BY和聚合函数。
- 分析器 (Analyzer) – 处理文本的组件,包括字符过滤器、分词器和词项过滤器,将文本转换为适合搜索的词项。
- 滚动搜索 (Scroll) – 检索大量结果的API,维护查询上下文一段时间,允许批量获取所有匹配文档。
- 地理位置 (Geo) – Elasticsearch对地理空间数据的支持,包括点、形状、距离查询等功能,用于位置相关应用。