紅葉 - 面试
type: channel
link: https://kkjz.xyz/index.php/tag/%E9%9D%A2%E8%AF%95/
items: Java面试一些败经

Java面试一些败经
type: item
date: 2023-06-21T19:04:00+08:00
description: @autowired和@resource的区别@Autowire和@Resource都是Spring Framework中用于注入依赖的注解，它们的主要区别在于：\1. @Autowired是Spring自带的注解，@Resource是JSR-250规范中定义的注解。\2. @Autowired默认按照byType的方式进行依赖注入，如果有多个符合条件的bean，则按照bean的名称进行匹配和注入。@Resource默认按照byName方式进行依赖注入，如果找不到符合名称的bean，则按照byType进行匹配和注入。\3. @Autowired可以用在字段、方法、构造函数上，@Resource只能用在字段和方法上。\4. @Autowired可以不需要指定名称，@Resource必须指定名称或者类型。\5. @Autowired属于Spring在自己的框架中的一种注入方式，使用起来更加简单方便，而@Resource则属于JavaEE规范的一种注入方式，可以用于JavaEE平台的任何环境中。因此，一般来说，@Autowired更加常用，而@Resource则更适用于JavaEE平台下的应用程序。innoDB和myIsam区别\1. 存储方式不同：InnoDB采用了聚簇索引的方式，所以数据文件和索引文件是在一起的，而MyISAM采用了非聚簇索引的方式，数据文件和索引文件是分开的。\2. 支持事务和外键：InnoDB支持事务和外键，而MyISAM不支持。\3. 并发能力不同：InnoDB具有更好的并发能力，可以在高并发的情况下保持性能稳定，而MyISAM在高并发情况下性能会下降。\4. 锁粒度不同：InnoDB的锁粒度比MyISAM更细，可以控制行级锁，而MyISAM只能控制表级锁。\5. 数据缓存机制不同：InnoDB采用了缓存池的机制，可以自动调整内存大小并保持高效，而MyISAM使用了操作系统缓存机制，需要手动调整缓存大小。\6. 数据完整性不同：InnoDB支持事务，可以保证数据的完整性和一致性，而MyISAM不支持事务，不能保证数据的完整性和一致性。\7. 性能表现不同：在查询方面，MyISAM的速度比InnoDB快，但在并发访问和修改方面，InnoDB的效率比MyISAM高。为什么MyISAM比InnoDB的查询快\1. MyISAM是基于索引的存储引擎，而InnoDB是基于聚集索引的存储引擎。MyISAM的索引结构更加简单，查询效率更高。\2. MyISAM不支持事务，因此不需要维护事务日志和行级锁，这样就减少了系统开销，提高了查询速度。\3. MyISAM采用较为简单的表锁定机制，可以对整个表进行加锁，而不是行级锁。这样对于大量小查询的应用程序，MyISAM比InnoDB具有更好的性能。\4. MyISAM表的数据和索引存储在不同的文件中，可以针对不同的查询优化存储结构，因此查询速度更快。但是需要注意的是，MyISAM不支持事务和行级锁等高级功能，因此在高并发、大数据量的应用场景下，InnoDB表现更加稳定和安全。springboot常用注解\1. @SpringBootApplication：标注启动类或者配置类，说明这是一个Spring Boot应用。\2. @RestController：标注在Controller类上，用于替换@Controller和@ResponseBody。（要返回json的时候用）\3. @RequestMapping：处理请求地址映射，可以标注在类或者方法上，用于指定请求的URL。\4. @GetMapping：处理HTTP GET请求。\5. @PostMapping：处理HTTP POST请求。\6. @PutMapping：处理HTTP PUT请求。\7. @DeleteMapping：处理HTTP DELETE请求。\8. @PathVariable：获取路径参数，标注在参数前面。\9. @RequestBody：获取请求体中的数据，标注在参数前面。\10. @RequestHeader：获取请求头中的数据，标注在参数前面。\11. @RequestParam：获取请求参数中的数据，标注在参数前面。\12. @Valid：开启数据校验。\13. @Autowired：自动注入依赖。\14. @Qualifier：指定注入的对象名称。\15. @Bean：标注在方法上，表示将方法返回的对象注入Spring容器中，可以用来创建第三方对象。\16. @ConfigurationProperties：绑定配置文件中的属性。\17. @ComponentScan：指定组件扫描范围。\18. @Conditional：根据条件决定是否注入Bean。\19. @Transactional：开…