1.面像对像三大特性是什么?什么是多态?多态我有什么优缺点?
三大特性是:封装,继承,多态
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
2.什么是面向切面编程?有什么优缺点,低层是怎么实现的
降低模块间的耦合度
系统实现“高内聚、低耦合”一直是我们程序开发者的追求。AOP技术将软件系统划分成了核心关注点和横切关注点两部分,业务的核心功能则为核心关注点,与业务无关或者关系不大的则为横切关注点。
横切关注点总是作用于核心关注点周围,且对应的业务含义类似,系统开发中常见的如:权限认证、事务管理、日志记录(如所有请求接口的入参都需要记录到日志中)等都属于横切关注点。
AOP技术的出现,将系统的核心关注点和横切关注点分离,避免了非核心业务耦合在核心业务中,降低了模块间的耦合度,提高了系统的可读性、可操作性和可维护性。
代码复用
AOP技术将与核心业务无关或者关系不大却为不同业务模块公用或者需要的逻辑抽取成新的模块,在需要的地方再引入,大大减少的系统的重复代码。(在这里有个问题需要大家思考: 要实现代码的复用,直接通过继承或者抽取公共类不就行了,为什么还要引入AOP这种技术?)
3.什么是多线程,多线程有几种锁,他们的区别,他们的底层是怎么实现的?
4.什么是面像对像编程?和函数式编程有什么区别和优点?
5.数据库的索性有几种(聚集索引和非聚集索引),区别是什么?底层实现原理是什么?
索引的实现通常使用B树及其变种B+树。
6.数据库事务是什么?底层是通过什么实现事务回滚的?
7.数据库的锁有几种?区别是什么?
按级别分:
a.页级锁:
b.表级锁:
c.行级锁:
按锁模式分:
a.共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。
b.更新 (U) 用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。
c.排它 (X) 用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时对同一资源进行多重更新。
8.数据库日志是先写日志还是先执行sql语句?
先把日志和数据写到内存中,然后,把日志写到硬盘上,再把数据写到硬盘上。
9.数据库分库分表怎么实现?
10.对.NET CORE有没有做过研究,有哪些研究?
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · 数据库先写日志还是先写数据?
- · JavaScript 开发者都应该知道的十个概念
- · 数据库比较
- · 程序员面试注意事项
- · 面试会遇到的几个小程序
- · mysql创建用户并赋予权限
- · The instance of entity type ‘Customer’ cannot be tracked because another instance with the same key value for {‘Id’} is already being tracked.
- · .NET8实时更新nginx ip地址归属地
- · 解决.NET Blazor子组件不刷新问题
- · .NET8如何在普通类库中引用 Microsoft.AspNetCore
- · docker定时任务Mysql脚本
- · docker安装mysql8注意事项