-
Java基础知识:
- Java的四种基本数据类型是:byte、short、int、long(整数类型)、float、double(浮点类型)、char(字符类型)、boolean(布尔类型)。它们之间的区别主要在于占用的内存大小和表示范围不同。
- Java中的String是不可变的意味着一旦String对象被创建,它的值就不能被修改。这意味着String对象的内容在内存中是不可更改的,每次对String进行修改实际上是创建了一个新的String对象。
- Java中的异常处理机制通过try-catch-finally块来实现。常见的异常类包括Exception(所有异常的父类)、RuntimeException(运行时异常)以及它们的子类,如NullPointerException、ArrayIndexOutOfBoundsException等。
- 多态性是指同一个方法调用可以在不同的对象上有不同的表现形式。在Java中,多态性通过方法的重载(Overloading)和重写(Overriding)来实现。
-
面向对象编程(OOP):
- 面向对象编程是一种编程范式,它将数据和行为封装在对象中,通过对象之间的交互来实现程序功能。与面向过程编程不同的是,面向对象编程更加注重数据和行为的组织和封装。
- 封装是将数据和行为封装在对象中,使得对象的内部细节对外部是隐藏的。继承是指子类可以继承父类的属性和方法,并可以在此基础上进行扩展。多态是指同一个方法调用可以有多种不同的形态。
- 抽象类是不能被实例化的类,它可以包含抽象方法,子类必须实现这些抽象方法;而接口是一种特殊的抽象类,它只包含抽象方法和常量,而没有实例变量。在设计上,抽象类更适合用于表示一种“是什么”的关系,而接口更适合用于表示一种“能做什么”的关系。
-
Java集合框架:
- Java中常用的集合类包括List、Set、Map等,它们分别表示列表、集合和映射的数据结构。
- ArrayList和LinkedList都是List接口的实现类,它们之间的主要区别在于内部实现机制不同:ArrayList基于数组实现,而LinkedList基于链表实现。
- HashMap和TreeMap都是Map接口的实现类,它们之间的主要区别在于存储数据的有序性不同:HashMap不保证键值对的顺序,而TreeMap会根据键的自然顺序或者自定义比较器来进行排序。
-
多线程和并发:
- 线程是程序执行的最小单位,Java中可以通过继承Thread类或实现Runnable接口来创建和启动线程。
- Java中的同步机制通过synchronized关键字和Lock接口来实现,它们可以确保多个线程之间的互斥访问。为避免竞态条件,可以使用同步机制来对共享资源进行保护。
- Java中常用的线程池类包括ThreadPoolExecutor和ScheduledThreadPoolExecutor,它们可以提高线程的复用性和管理性,减少线程创建和销毁的开销。
-
Spring框架:
- Spring框架是一个轻量级的、开源的JavaEE框架,它提供了全方位的基础设施支持,解决了企业级应用开发中的众多问题,如依赖管理、事务管理、AOP等。
- Spring的核心模块包括IoC(控制反转)和AOP(面向切面编程)等,它们为开发者提供了实现松耦合、高内聚的设计思想和实现手段。
- 依赖注入是一种设计模式,它将对象的创建和依赖关系的管理交给容器来完成,从而减少了对象之间的耦合性。Spring通过构造器注入、Setter方法注入等方式来实现依赖注入。
- AOP是一种编程范式,它允许在程序运行期间动态地将代码切入到类的指定方法或者特定位置上,从而实现日志记录、事务管理、性能监控等横切关注点的功能。在Spring中,AOP通过代理机制来实现。