腾哥面试实战

发布时间:2024年01月18日

1.Java的IO框架熟悉吗?为什么会设计Buffered流呢?

是的,我对Java的IO框架比较熟悉。

Buffered流是为了提高IO性能而设计的。在IO操作中,每次读写一个字节或者一个字符都会造成频繁的系统调用和磁盘访问,这会导致效率低下。

而使用Buffered流可以通过在内存中创建一个缓冲区来减少系统调用次数。当我们使用Buffered流时,数据会先被读取到缓冲区中,然后从缓冲区中一次性读取或写入一批数据。这样可以减少系统调用的次数,提高IO操作的效率。

Buffered流的设计还有其他的优点。它可以减少文件和网络IO的开销,提高读写的吞吐量。同时Buffered也提供了一些便捷的方法如readLine()和write(),方便我们处理文本数据。

总的来说,Buffered流的设计是为了优化IO操作,提高性能和效率,并且提供更便捷的方法来处理IO数据。

2.你做的这个项目,项目组大概有多少人?都有什么角色?后端开发有多少人?后端开发有几个架构师,几个高级程序员?

我做的这个项目,项目组总共有10个人。

包括后端开发人员、前端开发人员和软件测试人员。

有4个后端开发人员负责后端业务开发,其中1个架构师负责系统的整体设计和技术选型,1个高级程序员在项目中提供技术支持和代码审核。

2个前端开发人员负责前端页面开发。
2个测试人员负责项目的测试。

3.熟悉Linux吗?查Java进程用什么命令?查找文件用什么命令?浏览文件用什么?查看文件用什么?浏览日志用什么?修改文本用什么?vim里面删除一行是什么命令?

是的,我对Linux比较熟悉。

1.查Java进程的命令:
使用ps命令结合grep过滤出包含"java"关键字的进程信息:ps -ef | grep java

我们可以使用 ps -ef | grep nginx 命令来查找系统中所有包含 “nginx” 字符串的进程信息

2.查找文件的命令:find <路径> -name <文件名或通配符>

3.浏览文件的命令:
3.1使用 cat <文件名> 命令可查看文件内容
3.2使用 less <文件名> 命令可逐页浏览文件内容
3.3使用 more <文件名> 命令也可逐页浏览文件内容,但功能较少

4.查看文件的命令:lsls命令可以列出当前目录下的文件和文件夹

5.浏览日志的命令:tail -f <文件名>tail命令可实时查看文件末尾的若干行日志。

6.修改文本的命令:vi <文件名>或者vim <文件名>,可使用vivim命令来编辑文本文件

7.在vim中删除一行可以使用dd命令:在vim命令模式下,按下dd键即可删除当前光标所在的行。

4.Java里面注释和注解有什么区别?

注释是给开发者看的,不能被编译器处理。
注解是给编译器看的,可以被编译器解析处理。

注释是对代码的说明解释,不会被编译,也不会对程序运行产生任何影响,用于提高代码可读性。

注解是一种元数据,能被解析编译,用于为代码添加标记、配置或生成代码及实现特定功能。

5.你常用哪些注解?

在我之前的项目开发经历中,

常用的有用于创建对象的@Component、@Controller、@Service、@Repository,它们都可以标注在自己开发的类上,Spring会使用注解标注的类创建出对象,然后放入容器。

用于依赖注入的@Autowired,它标注在属性或属性对应的set方法上,Spring会根据被标注属性的类型自动对属性进行赋值。

与@Autowired一块使用的@Qualifier注解,在同一类型的bean有多个的情况下,Spring会根据name进行选择注入。

用于配置的@Configuration、@Bean注解,它们主要标注在配置类中,用于声明配置类及向Spring容器中放入一些配置有关的对象。

还有声明注解扫描的@ComponentScan,声明Bean作用域的@Scope,用于切面编程的@Around、@Pointcut等。

用于映射请求路径和处理方法的@RequestMapping。

用于指定特定HTTP请求方法的@GetMapping、@PostMapping、@PutMapping、@DeleteMapping。

用于获取请求参数的值的@RequestParam。

用于路径变量传参的@PathVariable。

用于接收请求体中的数据,将其转换为对象或其它类型的@RequestBody。

用于将方法返回值转换为指定格式(如JSON)并作为响应体返回给客户端的@ResponseBody。

用于自动装配Bean,通过依赖注入方式将需要的对象注入到目标对象中的@Autowired。

用于事务管理,标记方法或类需要进行事务管理的@Transactional。

用于参数校验,结合Spring Validation对方法参数进行校验的@Valid。

6.@Controller和@RestController有什么区别?

@Controller和@RestController都是用于处理HTTP请求的注解,区别在于返回值的处理方式。

@Controller用于声明一个类是控制器,

@ResController

文章来源:https://blog.csdn.net/weixin_44390450/article/details/135682297
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。