# Java实习生面试题
## 第一部分:Java基础 (每题3分,共30分)
1. 下列哪个不是Java的基本数据类型?
A) int
B) String
C) boolean
D) double
2. 关于Java的继承,下列说法正确的是:
A) 一个类可以继承多个父类
B) 子类可以重写父类的所有方法
C) final类可以被继承
D) 子类可以继承父类的非私有成员
3. 下面代码的输出结果是:
```java
String s1 = "hello";
String s2 = new String("hello");
System.out.println(s1 == s2);
```
A) true
B) false
C) 编译错误
D) 运行时异常
4. 关于Java异常处理,错误的是:
A) try块必须跟随catch或finally块
B) finally块中的代码总是被执行
C) 可以捕获Exception类来处理所有异常
D) 多个catch块时,子类异常应放在父类异常之后
5. 下列哪个集合类是线程安全的?
A) ArrayList
B) LinkedList
C) Vector
D) HashSet
6. 关于Java接口,说法正确的是:
A) 接口可以包含具体方法实现
B) 接口中的变量默认为final static
C) 一个类可以实现多个接口
D) 接口可以继承多个接口
7. 下列哪个不是Java访问修饰符?
A) public
B) private
C) protected
D) internal
8. 关于多线程,说法错误的是:
A) Thread类和Runnable接口都可以创建线程
B) synchronized可以修饰方法和代码块
C) wait()和sleep()都会释放锁
D) volatile能保证变量的可见性
9. 下面代码的输出结果是:
```java
List list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(1);
System.out.println(list.get(1));
```
A) 1
B) 2
C) 3
D) 抛出IndexOutOfBoundsException
10. 关于Java 8新特性,说法错误的是:
A) Lambda表达式可以简化匿名内部类写法
B) Stream API用于处理集合数据
C) 接口可以有default方法实现
D) Optional类用于解决空指针异常,但不能嵌套使用
## 第二部分:SQL基础 (每题4分,共20分)
11. 下列哪个SQL语句用于在表中添加新记录?
A) ALTER TABLE
B) INSERT INTO
C) UPDATE
D) CREATE TABLE
12. 关于SQL JOIN,说法错误的是:
A) INNER JOIN返回两表中匹配的行
B) LEFT JOIN返回左表所有行,右表不匹配则为NULL
C) RIGHT JOIN返回右表所有行,左表不匹配则为NULL
D) FULL JOIN在MySQL中不支持
13. 下列哪个聚合函数可以计算平均值?
A) COUNT()
B) SUM()
C) AVG()
D) MAX()
14. 关于SQL索引,说法正确的是:
A) 索引可以提高查询速度但会降低插入速度
B) 主键会自动创建唯一索引
C) 一个表只能有一个索引
D) 索引越多越好
15. 下列哪个SQL语句可以删除表中所有记录但保留表结构?
A) DROP TABLE
B) TRUNCATE TABLE
C) DELETE FROM
D) REMOVE TABLE
## 第三部分:Spring、SpringMVC、SpringBoot (每题3分,共45分)
16. 关于Spring IOC,说法错误的是:
A) IOC即控制反转,将对象创建交给容器管理
B) @Autowired用于自动装配Bean
C) @Component用于标注服务层类
D) 可以通过XML或注解配置Bean
17. Spring中Bean的作用域不包括:
A) singleton
B) prototype
C) request
D) global
18. 关于Spring AOP,说法正确的是:
A) AOP用于实现横切关注点的模块化
B) @Before是环绕通知
C) 切入点表达式只能用execution()
D) AOP代理只能基于JDK动态代理
19. Spring MVC中,@RequestMapping不可以用于:
A) 类上
B) 方法上
C) 参数上
D) 可以用于以上所有位置
20. 关于Spring Boot,说法错误的是:
A) 简化了Spring应用的初始搭建
B) 内嵌了Tomcat等Servlet容器
C) 需要大量的XML配置
D) 提供starter依赖简化依赖管理
21. Spring Boot中,配置文件的正确加载顺序是:
A) application.properties > application.yml
B) application.yml > application.properties
C) 根据文件修改时间决定
D) 可以自定义配置顺序
22. 关于Spring事务管理,说法正确的是:
A) @Transactional只能用于public方法
B) 默认传播行为是REQUIRED
C) 默认隔离级别是READ_UNCOMMITTED
D) 事务超时时间默认为60秒
23. 关于RESTful API设计,错误的说法是:
A) 使用HTTP方法表示操作类型
B) URL应该包含动词
C) 通常返回JSON格式数据
D) 应该无状态
24. Spring Security的核心功能不包括:
A) 认证
B) 授权
C) 加密
D) 数据库连接池管理
25. 关于MyBatis,说法错误的是:
A) 是ORM框架
B) 使用XML或注解配置SQL
C) #{}可以防止SQL注入
D) ${}和#{}没有区别
26. Spring Boot中,@SpringBootApplication包含哪些注解的功能?
A) @Configuration
B) @EnableAutoConfiguration
C) @ComponentScan
D) 以上全部
27. 关于Spring Boot Actuator,说法正确的是:
A) 用于监控和管理应用
B) /health端点提供应用健康信息
C) /metrics端点提供性能指标
D) 以上全部
28. Spring Cloud的核心组件不包括:
A) Eureka - 服务注册发现
B) Ribbon - 客户端负载均衡
C) Hystrix - 断路器
D) Kafka - 消息队列
29. 关于JPA和Hibernate,说法正确的是:
A) JPA是规范,Hibernate是实现
B) @Entity标注实体类
C) @Id标注主键
D) 以上全部
30. Spring Boot中,外部化配置的来源不包括:
A) 命令行参数
B) 环境变量
C) application.properties/yml
D) pom.xml文件
## 答案
1. B
2. D
3. B
4. D
5. C
6. B, C, D
7. D
8. C
9. C
10. D
11. B
12. D
13. C
14. A, B
15. B, C
16. C
17. D
18. A
19. C
20. C
21. B
22. A, B
23. B
24. D
25. D
26. D
27. D
28. D
29. D
30. D