恒扬禾信息技术有限公司实习面试(9.20)
本文最后更新于 124 天前,其中的信息可能已经有所发展或是发生改变。

HR

  1. 自我介绍
  2. 项目难点
  3. 项目中最难解决的是什么,如何克服的

技术

  1. springboot常用注解
  2. 动态sql语句
  3. Mybatis你怎么使用的
  4. 服务器和服务器之间怎么通信的
  5. Post和Get的区别,如何获取数据
  6. String、StringBuffer和StringBuilder用过吗?有什么区别

答案(gpt生成+个人理解)

springboot常用注解

  • @SpringBootApplication:标记主类,组合了 @Configuration@EnableAutoConfiguration@ComponentScan,用于启动 Spring Boot 应用。
  • @Autowired:依赖注入,将 Spring 容器中的 Bean 注入到当前类中。
  • @RequestMapping:映射 HTTP 请求到处理方法,可以定义 URL 和请求方法类型。
  • @RestController:组合注解,包含 @Controller@ResponseBody,用于定义 RESTful 控制器。
  • @Value:注入配置文件中的属性值,常与 application.propertiesapplication.yml 配合使用。

动态sql语句

  • 使用 <if> 标签
  • 使用 <choose> 标签
  • 使用 <foreach> 标签
  • 使用 <trim> 标签

Mybatis你怎么使用的

  1. 配置:在项目中添加 MyBatis 的依赖并进行基本配置,包括数据库连接和映射文件位置。
  2. 创建 Mapper:定义一个 XML 文件或使用注解来编写 SQL 语句,包括动态 SQL 语句。
  3. 映射接口:为每个 Mapper XML 创建对应的 Java 接口,定义方法与 SQL 语句映射。
  4. 使用 Mapper:在 Service 层注入 Mapper 接口,并调用其方法以执行数据库操作。
  5. 集成到 Controller:在 Controller 中调用 Service 层的方法,处理请求并返回结果。

服务器和服务器之间怎么通信的

1.HTTP/HTTPS

  • 通过 RESTful API 或 SOAP 服务进行通信,使用 HTTP 或 HTTPS 协议传输数据。
  • 常用于 web 服务、微服务架构等。

2.WebSocket

  • 提供全双工通信,适用于需要实时数据更新的场景,如在线聊天或实时通知。

3.消息队列

  • 使用消息中间件(如 RabbitMQ、Kafka、ActiveMQ)进行异步通信,增强系统的解耦性和可靠性。

4.gRPC

  • 基于 HTTP/2 的高性能远程过程调用(RPC)框架,支持多语言,适合微服务之间的高效通信。

5.Socket

  • 通过 TCP 或 UDP 协议建立持久连接,适用于需要低延迟和高吞吐量的应用场景,如游戏服务器或实时数据传输。

6.文件传输

  • 通过 FTP、SFTP 或 SCP 等协议进行文件的上传和下载,适用于大数据传输。

7.共享数据库

  • 服务器通过访问同一个数据库进行数据交换,适用于数据共享和集成的场景。

Post和Get的区别,如何获取数据

GET

  • 功能:请求数据。
  • 参数传递:通过 URL(如 example.com/api?name=John)。
  • 安全性:不适合传递敏感信息,因为数据可见。
  • 缓存:默认可缓存。

POST

  • 功能:提交数据。
  • 参数传递:通过请求体,不显示在 URL 中。
  • 安全性:相对安全,但仍需使用 HTTPS。
  • 缓存:默认不缓存。

数据获取方式

  • GET:在浏览器中直接输入 URL,或使用 AJAX 发起请求。
  • POST:通过表单提交或 AJAX 发送请求体中的数据。

String、StringBuffer和StringBuilder用过吗?有什么区别

1. String

  • 不可变:一旦创建,字符串内容无法更改。任何修改都会创建新的字符串对象。
  • 性能:在频繁修改字符串的情况下性能较差,因为每次修改都会创建新对象。
  • 用法:适合存储固定内容的字符串。

2. StringBuffer

  • 可变:可以修改字符串内容,允许在原有对象上进行修改。
  • 线程安全:方法是同步的,适合多线程环境。
  • 性能:比 String 更高效,但在单线程环境中相对较慢。

3. StringBuilder

  • 可变:与 StringBuffer 类似,可以修改字符串内容。
  • 线程不安全:方法不是同步的,适合单线程环境,性能更优。
  • 用法:在需要频繁修改字符串的场合,推荐使用。

总结

  • 使用 String 当字符串内容固定时。
  • 使用 StringBuffer 在多线程环境中需要修改字符串时。
  • 使用 StringBuilder 在单线程环境中频繁修改字符串时,以提高性能。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇