笔试小结

1. 线程产生死锁的原因:系统资源不足;进程运行推进的顺序不合适;资源分配不当等

产生死锁的4个必要条件是:互斥条件,一个资源每次只能被一个进程使用;请求与保持条件,一个进程因请求资源而阻塞时,对已获得的资源保持不放;不可剥夺条件,进程已获得的资源,在未使用完之前,不能强行剥夺;循环等待条件,若干进程之间形成一种头尾相连的循环等待资源关系。

这四个条件时死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

避免死锁的方法:银行家算法。(希望能够得到补充,本人对这些真的是有点头疼)

2. 面向对象三要素:百度了一下,大部分回答是封装、继承、多态。

面向对象设计的五个主要的设计原则:

(1)单一职责原则。就一个类而言,应该仅有一个引起它变化的原因。

(2)开放封闭原则。软件实体对外扩展开放,对修改封闭。

(3)里氏替换原则。子类的实例能够替换父类的实例。

(4)接口分离原则。采用多个专门的接口比使用单一的总接口要好。一个类对另一个类的依赖性建立在最小的接口上。

(5)依赖倒置原则。依赖抽象不要依赖具体实现。

附加:设计模式相关

创建型模式:抽象工厂(Abstract Factory)、生成器(Builder)、工厂方法(Factory Method)、原型模式(Prototype)、单件模式(Singleton)。

结构型模式:适配器(Adapter)、桥接(Bridge)、组合(Composite)、装饰(Decorator)、外观(Facade)、享元(Flyweight)、代理(Proxy)。

行为模式 :职责链(Chain of responsibility)、命令(Commond)、解释器(Interpreter)、迭代器(Iterator)、中介者(Mediator)、备忘录(Memento)、观察者(Observer)、状态(State)、策略(Strategy)、模板方法(Template)、访问者(Visitor)

3. Windows内存管理的几种方式及优缺点。

(1)块式管理。把主存分为一大块、一大块的,当所需的程序片段不在主存时就分配一块主存空间,把程序片段加载到主存,就算所需要的程序片段只有几个字节也只能把这块分配给它。优点:易于管理;缺点:浪费空间。

(2)页式管理。把主存分为一页一页的,每一页的空间要比一块一块的空间小很多,显然这种方式的空间利用率要比块式管理高出很多。

(3)段式管理。把主存分为一段一段的,每一段的空间又要比一页一页的空间小很多,这种方法在空间利用率上比页式管理高出很多,但也有另外一个缺点,一个程序片段可能会被分为几十个段,这样很多时间就会浪费在计算每一段的物理地址上。(I/O操作)

(4)段页式管理。结合了段式管理和页式管理的优点。把主存分为若干页,每一页又分为若干段。

以上内容都有待于补充,以后会慢慢补上,今天就先学习到这里,呵呵...还要准备明天的笔试,腾讯啊!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值