【知识点详解】
1. **UML动态图**:UML(统一建模语言)是一种用于软件工程的标准化建模语言,用于表示系统的静态结构和动态行为。动态图包括活动图、序列图和状态图,但不包括用例图。用例图是描述系统功能和参与者之间的交互关系,属于静态视图。
2. **并发访问数估算**:在系统设计中,估算并发访问数是关键,通常考虑高峰时段的日处理业务量、平均每秒请求数以及同时在线用户数等因素。高峰时段平均每秒请求数和同时在线用户数能帮助评估系统的并发处理能力。
3. **EJB组件的包文件扩展名**:EJB(Enterprise JavaBeans)是Java EE中的企业级组件,它们的部署文件扩展名为`.ear`,这是Enterprise Archive的缩写,用来打包整个应用程序,包括EJB、Web资源和其他相关文件。
4. **进程并发执行**:并发执行的进程并不意味着同时占用处理器,而是指多个进程可以在一段时间内交替执行,给人一种同时进行的错觉。进程的执行结果可能受相对速度影响,但并非由进程自身决定。
5. **数据不一致的根本原因**:在数据库中,数据不一致通常是由于数据冗余或缺乏完整性控制。数据冗余可能导致更新异常,未对数据进行完整性约束可能导致数据错误。
6. **SQL语句分析**:`CREATE TABLE`定义了部门(dept)表,`ROLLBACK`撤销了所有未提交的更改,但不会释放表空间。`DESCRIBE DEPT`在`ROLLBACK`后仍然可以执行,因为它是在创建表之后定义的,即使没有提交,也会显示表的结构。
7. **Oracle VARCHAR2类型的最大长度**:Oracle的VARCHAR2类型最大长度为4000个字符。
8. **索引的用途**:索引对于提升查询性能很有帮助,特别是在列包含不同范围的值时,能够快速定位到所需数据。
9. **关系数据库特点**:关系数据库的特点包括多用户访问、数据独立性高、数据共享性好以及数据冗余小,不包括非关系型数据库的分布式特性。
10. **sleep() 和 wait() 的区别**:`sleep()`是线程类的方法,它使当前线程暂停指定时间,不会释放对象锁;而`wait()`是Object类的方法,它让线程等待,释放对象锁,等待其他线程唤醒。
11. **对象垃圾回收**:在Java中,垃圾回收是自动的,当对象不再被引用时。在给定代码中,第7行设置`sf`为`null`,使得`sf_arr[0]`成为垃圾,因为不再有任何引用指向它。因此,第7行会导致垃圾回收。
12. **循环执行次数**:在Java代码中,给定的循环会在`main`方法中运行4次,因为`int i`的范围是从2到5(包含2和5),所以循环会迭代4次。
以上知识点涵盖了软件开发中的建模语言、系统并发、Java企业级组件、数据库管理、并发控制、SQL操作、字符串类型限制、索引优化、关系数据库特性、线程管理和内存管理等方面,这些都是测试工程师在面试或笔试中可能遇到的基础知识。