互联网Java工程师面试题——每天背诵二十道面试题(三)


前言

第三天

一、Dobbo面试题

1、为什么要用 Dubbo?

答:

  • 随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA)。
  • 也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。

2、你知道Dubbo默认使用的是什么通信框架,还有别的选择吗?

答:默认也推荐使用 netty 框架,还有 mina。

3、你知道Dubbo默认使用什么序列化框架吗?除了这个,你知道的还有哪些?

答:推荐使用 Hessian 序列化,还有 Duddo、FastJson、Java 自带序列化。

4、服务上线怎么不影响旧版本?

答:采用多版本开发,不影响旧版本。

5、如何解决服务调用链过长的问题?

答:可以结合 zipkin 实现分布式服务追踪。

6、同一个服务多个注册的情况下可以直连某一个服务吗?

答:可以点对点直连,修改配置即可,也可以通过 telnet 直接某个服务。

二、Java 并发编程面试题

1.你给我说一下在 java 中守护线程和本地线程区别?

答:java 中的线程分为两种:守护线程(Daemon)用户线程(User)。

  1. 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在 Thread.start()之前调用,否则运行时会抛出异常。
  2. 两者的区别:唯一的区别是判断虚拟机(JVM)何时离开Daemon 是为其他线程提供服务,如果全部的 User Thread 已经撤离,Daemon 没有可服务的线程,JVM 撤离。
  3. 也可以理解为守护线程是 JVM 自动创建的线程(但不一定),用户线程是程序创建的线程;比如 JVM 的垃圾回收线程是一个守护线程,当所有线程已经撤离,不再产生垃圾,守护线程自然就没事可干了,当垃圾回收线程是 Java 虚拟机上仅剩的线程时,Java 虚拟机会自动离开。

2、再问一个简单的,线程与进程的区别?

答:
1.进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。

2.一个程序至少有一个进程,一个进程至少有一个线程。

3、什么是多线程中的上下文切换?

答:
多线程会共同使用一组计算机上的 CPU,而线程数大于给程序分配的 CPU 数量时,为了让各个线程都有执行的机会,就需要轮转使用 CPU。

不同的线程切换使用 CPU发生的切换数据等就是上下文切换。

4、你知道什么是线程组吗?为什么在 Java 中不推荐使用嘞?

答:

  1. ThreadGroup 类,可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式。
  2. 为什么不推荐使用?因为使用有很多的安全隐患吧,没有具体追究,如果需要使用,推荐使用线程池。

三、 SpringBoot面试题

1、你知道如何使用 Spring Boot 实现分页和排序?

答:使用 Spring Boot 实现分页非常简单。使用 Spring Data-JPA 可以实现将可分页的数据传递给存储库方法。

2、你给我讲一下什么是 Swagger?你用 过Spring Boot 实现了它吗?

答:

  1. Swagger 广泛用于可视化 API,使用 Swagger UI 为前端开发人员提供在线沙箱。

  2. Swagger 是用于生成 RESTful Web 服务的可视化表示的工具,规范和完整框架实现。

  3. 它使文档能够以与服务器相同的速度更新。 当通过 Swagger 正确定义时,消费者可以使用最少量的实现逻辑来理解远程服务并与其进行交互。因此,Swagger消除了调用服务时的猜测。

3、你知道什么是 Spring Profiles?

答:

  1. Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。
  2. 因此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION中,某些其他 bean 可以加载。假设我们的要求是 Swagger 文档仅适用于 QA 环境,并且禁用所有其他文档。这可以使用配置文件来完成。
  3. Spring Boot 使得使用配置文件非常简单。

4、你知道什么是 CSRF 攻击吗?

答:

  1. CSRF 代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web 应用程序上执行不需要的操作。
  2. CSRF 攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。

四、Linux面试题

1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

答:

  1. 绝对路径: 如/etc/init.d
  2. 当前目录和上层目录: ./ ../
  3. 主目录: ~/
  4. 切换目录: cd

2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?

答:

  1. 查看当前进程: ps
  2. 执行退出: exit
  3. 查看当前路径: pwd

3、使用什么命令查看网络是否连通?

答:netstat 命令。

4、使用什么命令查看 ip 地址及接口信息?

答:右键点击虚拟机桌面打开控制台输入 ifconfig 即可。

5、怎么使一个命令在后台运行?

答:一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)。

6、终止进程用什么命令? 带什么参数?

答:kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

kill-9 pid

写在最后

如果本文对你有帮助的话请给我点个赞再走吧。_

猜你喜欢

转载自blog.csdn.net/qq_43055855/article/details/111400344