面向对象的设计原则:

1、单一职责原则:一个类只应该做和一个职责相关的业务,不要让一个类承担过多的职责。(高内聚)

2、开闭原则:软件实体应该面向修改关闭,面向扩展开放。其实现的核心就是抽象。将相同的代码抽取出来,便于代码重用,这就是闭。将不同的代码抽取出来,便于功能的拓展,这就是开。开闭原则是设计原则的核心原则。

3、依赖倒置原则:面向抽象编程,不要面向具体编程。尽量使用抽象耦合代替具体耦合。(低耦合)

4、聚合/组合复用原则:尽量使用聚合/组合达到代码复用,少用继承实现代码复用。因为在java中只能单根继承,无法使用继承达到多个类代码的重用。但是使用聚合/组合方式可以实现多个类代码的重用。

5、里氏替换原则:父类出现的地方,子类一定可以替换。如果父类中的方法在子类中发生了畸变,则应该断开父子关系。父类中的属性和方法,子类无条件继承。这样容易造成父类方法在子类中不适用情况。所以,如果父类方法不能全部适用于子类,则建议断开父子关系,采用聚合/组合达到代码复用。

6、接口隔离原则:使用专门的接口比用统一接口好,便于项目的组织和分工。不要让开发者面对自己用不到的方法。

7、迪米特法则:软件实体之间应该尽量减少交互,不要因为一个类业务的变化,而导致另一个类的变化。(外观模式)

多任务处理:一个任务没有完成时,又在进行别的任务。

多任务处理有两种类型:基于进程和基于线程

进程是指一种“自包容”的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存

在一个程序中,能独立运行的程序片段叫做“线程”(Thread),线程是进程内部单一的顺序控制流

一个进程拥有多个线程。多个线程共享一个进程的内存空间。

主线程:简单的说,main方法一执行,就开启了主线程。每个进程至少都有一个主线程。

主线程的特点:

1、最先开始

2、最后结束

3、产生其他的子线程

4、子线程结束,清理子线程占用的内存资源

一个程序一运行,至少开始开启两个线程,主线程和垃圾回收线程

创建线程有两种方式:

1、继承Thread类,重写run()方法

2、实现Runnable接口,实现run()方法

启动线程采用start()方法

调用线程类中的run()方法和start()方法的区别

调用start()方法,会在主线程之外,单独开启子线程,多个线程同时执行。

调用run()方法,是普通方法调用,不会开启子线程,是单任务处理。在一个任务结束后,才能执行下一个任务

线程的优先级

线程的优先级是指,当两个或两个以上的线程同时处于就绪状态时,优先级高的线程会优先得到执行。

优先级有10个级别,越高优先级越高。setPriority(int newp)设置优先级、getPriority()得到优先级

线程的同步

线程同步是指,当两个或两个以上的线程,同时访问同一个资源时,为了确保数据的安全,只允许同一个时间点,同一个共享资源只被一个线程进行访问

线程同步带来的结果:1、数据安全,2、效率低下。

java oo原则_javaOO11-12:面向对象的设计原则、线程相关推荐

  1. Java程序员最应该学习的几个面向对象的设计原则

    2019独角兽企业重金招聘Python工程师标准>>> 面向对象的设计原则是OOP编程的核心,但我已经看到大多数Java程序员追逐设计模式,如Singleton模式,Decorato ...

  2. Java 面向对象的设计原则

    一. 1.面向对象思想的核心: 封装.继承.多态.   2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下( ...

  3. 面向对象的设计原则最终篇

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 关于面向对象的设计原则我之前已经解释过四种了,分别是单一职责原则,开放关闭原则,里式替换原则, ...

  4. 【腾讯游戏面试题】面向对象的设计原则是什么?

    本文首发公众号洪流学堂.洪流学堂,让你快人几步. 今天分享一个腾讯游戏的面试题: 题目 请说出面向对象的设计原则,并分别简述它们的含义. 参考答案 单一职责原则 一个类只负责一个功能领域中的相应职责. ...

  5. 面向对象的设计原则-类设计原则

    面向对象的设计原则-类设计原则 排行榜 收藏 打印 发给朋友 举报发布者:七月十五 热度票  浏览1368次 [共4条评论][我要评论]时间:2008年11月08日 10:55 在面向对象设计中,如何 ...

  6. 软件工程之面向对象的设计原则

    一.面向对象介绍 1.面向过程 以"过程"为中心的编程思想,分析出解决问题所需的步骤,然后用函数把这些步骤一步步的实现,使用的时候一个个依次调 用就好.面向过程强调的是模块化. 2 ...

  7. 面向对象六大设计原则上

    @TOC面向对象六大设计原则 最近准备java面试,发现SSM框架里蛮多知识点,比如Spring中IOC,DI来源于面向对象的六大原则,了解六大原则有助于更深入理解java的设计原理.网上资料很多,整 ...

  8. UML面向对象的设计原则

    UML面向对象的设计原则 里氏替换原则 不满足LSP的方案 CS游戏中的枪械类图,士兵使用枪杀敌,具体用什么枪,调用的时候才知道.有一种玩具手枪,增加一个类ToyGun,射不出子弹,业务调用类出现了问 ...

  9. PHP核心技术笔记(2):面向对象的设计原则

    1.面向对象设计五大原则 面向对象设计的五大原则分别是单一职责原则.接口隔离原则.开放-封闭原则.替换原则.依赖倒置原则. 2.单一职责原则(single Pesponsibility Princip ...

最新文章

  1. python linux编程与window编程_Python实现Windows和Linux之间互相传输文件(文件夹)的方法...
  2. Windbg中使用查找内存并设置访问断点
  3. python编码问题总结
  4. 跟燕十八学习PHP-第十五天-php增删改查表数据
  5. icoding复习5 树 感觉难度巨大....
  6. (stack栈)rails
  7. gateway 车辆网关
  8. TreeView中右击直接获取节点的方法
  9. javascript模块 (Module) 简介
  10. Android Glide数据更新及内存缓存、硬盘缓存清理
  11. linux能记录日志的终端,如何记录Linux终端下的操作日志
  12. VirtualBox中安装Ubuntu、LAMP、SVN、JRE和Tomcat
  13. ProGuard的各种参数说明
  14. 财子说丨王国斌:相信时间的力量
  15. 如何选择和设置SEO关键词
  16. drupal 电商网站_为什么小型企业应该为电子商务网站选择Drupal
  17. 天道酬勤,仅仅两年,我便做上了那个测试老大···
  18. Python对二维矩阵沿主对角线(次对角线)翻转变换代码实现
  19. Android开发常见面试
  20. c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?

热门文章

  1. 计算机技术Control,聚变控制计算机 (Fusion Control Computer)
  2. python中函数包括参数函数吗_Python中的函数---函数的定义和参数
  3. l4d2服务器修改武器伤害,辐射4武器伤害及护甲修改图文教程_快吧单机游戏
  4. Mybatis plus 开启日志
  5. 计算机组成原理 试讲,常州信息职业技术学院-试讲ppt-计算机组成原理-信息表示.ppt...
  6. python使用t-sne算法降维,方便可视化
  7. 解决pytorch多进程ValueError: Error initializing torch.distributed using env:// rendezvou...报错
  8. from gluonts.trainer import Trainer报错
  9. mpi4py安装报错error: Cannot compile MPI programs. Check your configuration!!!
  10. springboot 前缀_springboot插件式开发框架