XingPiaoLiang's

Back

银盾云#

RPC 和 HTTP 区别#

  • RPC (Remote Procedure Call):一种通过网络请求远程调用函数或方法的协议,可以是同步或异步,支持不同的通信协议(如HTTP、TCP、UDP等)。
  • HTTP (Hypertext Transfer Protocol):一种用于客户端与服务器之间进行数据传输的协议,广泛应用于Web开发。HTTP通常使用请求-响应的模式,且以文本格式交换数据。

RPC 和 Protobuf 一起用吗?讲讲 Protobuf#

  • Protobuf (Protocol Buffers) 是一种由 Google 开发的数据序列化格式,通常与 RPC 一起使用。它提供高效的二进制编码,能显著提高通信效率。
  • Protobuf 通过定义 .proto 文件来生成代码,这些代码用于序列化和反序列化数据,通常配合 RPC 使用,减少数据传输过程中的体积,提高性能。

Go 的接口和 Java 的接口区别#

  • Go 的接口:Go 是基于隐式实现的,类型只需要实现接口中的方法即可,不需要显式声明实现了某个接口。
  • Java 的接口:Java 是显式实现的,类必须声明 implements 关键字来实现接口。

Go 结构体和 Java 类的区别#

  • Go 结构体:Go 中没有类的概念,结构体用于表示对象的数据,方法可以附加到结构体上,类似于类的功能。
  • Java 类:Java 中的类是对象的蓝图,包含属性(字段)和行为(方法)。

Java 的继承,讲讲抽象类,可不可以被继承#

  • Java 继承:Java 支持单继承,子类继承父类的属性和方法,且可以重写父类的方法。
  • 抽象类:抽象类不能被实例化,但可以被继承。抽象类可以包含抽象方法(没有方法体)和具体方法(有方法体)。

抽象类和接口的共同点#

  • 共同点:两者都可以被继承/实现,旨在定义一组方法签名来规范类的行为。
  • 区别:抽象类可以包含具体实现,而接口只能包含方法签名(Java 8后,接口也可以有默认方法实现)。

Go 怎么实现多个接口#

  • Go 支持一个类型实现多个接口,只要类型实现了接口中的所有方法,就认为它实现了该接口。

Java 的基本数据类型和 Go 的基本数据类型对应#

Java 基本数据类型Go 基本数据类型
intint
longint64
floatfloat32
doublefloat64
booleanbool
charrune (alias for int32)

Go 的 int 是什么类型,怎么定义它,他的含义#

  • Go 的 intint 是 Go 中的整数类型,长度依赖于平台(32位系统为32位,64位系统为64位)。它的定义方式是:var x intx := 10

Java 的 int 对应 Go 的 int#

  • Java 的 int 对应 Go 的 int。两者都是有符号整数,大小取决于平台(通常为32位或64位)。

Java 的 short 对应 Go 的哪个#

  • Java 的 short 对应 Go 的 int16

Short 和包装类的使用场景#

  • short:用于存储较小的整数,通常用于节省内存。
  • 包装类:如 IntegerDouble 等,在需要对象的场合使用,例如集合类中存储数据,或者需要将基本数据类型转换为对象类型时。

泛型的作用#

  • 泛型允许在类、接口和方法中使用类型参数,增加代码的复用性和类型安全性,避免使用不安全的类型转换。

冒泡和快排怎么实现#

  • 冒泡排序:通过相邻元素比较并交换,逐步将最大元素“冒泡”到末尾。
  • 快速排序:通过分治法,选择一个基准元素,将数组分为左右两部分,然后递归排序。

MySQL 增删改查关键字#

  • INSERT
  • SELECT
  • UPDATE
  • DELETE

DELETE 和 DROP 区别#

  • DELETE:删除表中的记录,但表结构和表本身保留。
  • DROP:删除整个表,包括表中的数据和表结构。

不同使用场景#

  • DELETE:删除数据,但保留表结构,适用于数据清理。
  • DROP:删除表,适用于完全移除表和数据。

联表查询 LEFT JOIN 和 RIGHT JOIN#

  • LEFT JOIN:返回左表的所有记录,即使右表没有匹配的记录。
  • RIGHT JOIN:返回右表的所有记录,即使左表没有匹配的记录。

LIMIT 后面两个参数#

  • 第一个参数:指定返回记录的起始位置(偏移量)。
  • 第二个参数:指定返回记录的数量。

Redis 里时效性怎么设置#

  • 使用 EXPIRESET 命令时,设置 EX 参数来指定键的过期时间(以秒为单位)。

设计模式#

  • 设计模式是软件开发过程中针对某些常见问题的标准解决方案,常见的设计模式有:单例模式、工厂模式、观察者模式等。

观察者模式#

  • 观察者模式是一种行为型设计模式,定义了一种一对多的依赖关系,允许一个对象(主题)在状态改变时通知所有依赖它的对象(观察者)。

工厂模式介绍#

  • 工厂模式通过定义一个用于创建对象的接口,让子类决定实例化哪一个类。它将对象的创建和使用分离,提高了代码的灵活性和可扩展性。

体现了面向对象哪个特性#

  • 观察到面向对象的特性,如封装继承多态,通常体现为通过类和对象的关系来管理系统复杂性。

反问#

公司具体业务#

  • 后台开发

面试表现怎么样#

银盾云科技一面面经
https://astro-pure.js.org/blog/interview-%E9%93%B6%E7%9B%BE%E4%BA%91
Author erasernoob
Published at April 16, 2025
Comment seems to stuck. Try to refresh?✨