银盾云#
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 基本数据类型 |
---|---|
int | int |
long | int64 |
float | float32 |
double | float64 |
boolean | bool |
char | rune (alias for int32 ) |
Go 的 int 是什么类型,怎么定义它,他的含义#
- Go 的
int
:int
是 Go 中的整数类型,长度依赖于平台(32位系统为32位,64位系统为64位)。它的定义方式是:var x int
或x := 10
。
Java 的 int 对应 Go 的 int#
- Java 的
int
对应 Go 的int
。两者都是有符号整数,大小取决于平台(通常为32位或64位)。
Java 的 short 对应 Go 的哪个#
- Java 的
short
对应 Go 的int16
。
Short 和包装类的使用场景#
- short:用于存储较小的整数,通常用于节省内存。
- 包装类:如
Integer
、Double
等,在需要对象的场合使用,例如集合类中存储数据,或者需要将基本数据类型转换为对象类型时。
泛型的作用#
- 泛型允许在类、接口和方法中使用类型参数,增加代码的复用性和类型安全性,避免使用不安全的类型转换。
冒泡和快排怎么实现#
- 冒泡排序:通过相邻元素比较并交换,逐步将最大元素“冒泡”到末尾。
- 快速排序:通过分治法,选择一个基准元素,将数组分为左右两部分,然后递归排序。
MySQL 增删改查关键字#
- 增:
INSERT
- 查:
SELECT
- 改:
UPDATE
- 删:
DELETE
DELETE 和 DROP 区别#
- DELETE:删除表中的记录,但表结构和表本身保留。
- DROP:删除整个表,包括表中的数据和表结构。
不同使用场景#
- DELETE:删除数据,但保留表结构,适用于数据清理。
- DROP:删除表,适用于完全移除表和数据。
联表查询 LEFT JOIN 和 RIGHT JOIN#
- LEFT JOIN:返回左表的所有记录,即使右表没有匹配的记录。
- RIGHT JOIN:返回右表的所有记录,即使左表没有匹配的记录。
LIMIT 后面两个参数#
- 第一个参数:指定返回记录的起始位置(偏移量)。
- 第二个参数:指定返回记录的数量。
Redis 里时效性怎么设置#
- 使用
EXPIRE
或SET
命令时,设置EX
参数来指定键的过期时间(以秒为单位)。
设计模式#
- 设计模式是软件开发过程中针对某些常见问题的标准解决方案,常见的设计模式有:单例模式、工厂模式、观察者模式等。
观察者模式#
- 观察者模式是一种行为型设计模式,定义了一种一对多的依赖关系,允许一个对象(主题)在状态改变时通知所有依赖它的对象(观察者)。
工厂模式介绍#
- 工厂模式通过定义一个用于创建对象的接口,让子类决定实例化哪一个类。它将对象的创建和使用分离,提高了代码的灵活性和可扩展性。
体现了面向对象哪个特性#
- 观察到面向对象的特性,如封装、继承和多态,通常体现为通过类和对象的关系来管理系统复杂性。
反问#
公司具体业务#
- 后台开发