1.说一下你对面向对象的理解
面向对象就是:是软件开发方法,一种编程范式,把数据及对数据的操作方法放在一起,作为一个相互依存的整体
2.面向对象的五大原则是什么
单一职责原则(Single-Resposibility Principle)
一个类,最好只做一件事,只有一个引起它的变化的原因。
开放封闭原则(Open-Closed principle)
软件实体应该是可扩展的,而不可修改的。
里氏代换原则(LSP:Liskov Substitution Principle)
所有使用基类的地方必须能够透明的使用其子类的对象
依赖倒置原则(Dependecy-Inversion Principle)
高层模块不依赖于底层模块,二者都同依赖于抽象
接口隔离原则(Interface-Segregation Principl
使用多个小的专门的接口,而不要使用一个大的总接口。
3.线程、进程、协程的区别是什么
一个线程可以多个协程,一个进程也可以单独拥有多个协程。
线程进程都是同步机制,而协程则是异步。
线程是进程内的一个执行单元,进程内至少有一个线程,它们共享进程的地址空间,而进程有自己独立的地址空间
4.tcp和udp的区别
TCP与UDP区别总结:
TCP面向连接 (如打电话要先拨号建立连接); TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达
UDP是无连接的,即发送数据之前不需要建立连接,UDP尽最大努力交付,即不保证可靠交付
UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。UDP对系统资源要求较少
5.死锁是如何造成的,怎么避免
死锁(Deadlock) 所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
1.查询是否锁表,查询进程,结束进程id
2:查看当前的事务,查看当前锁定的事务,查看当前等锁的事务,结束进程