Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

UML(2)

Posted on 2018-11-01 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(2)

引子

统一建模语言 UML:

- 特点:可视化、实践性强、面向对象的工业标准、多视角多结论、
- 前提:软件系统能被视为相互关联对象的集合
- 误解:
    1. 被认为等同于过程或者理论
    2. 被认为等同于面向对象的分析与设计
    3. 被认为等同于设计指南
- 结构:
    1. 基础模块(Building blocks):物、表、关系等
    2. 相同的机理(Common mechanisms):要求、修饰、划分、可扩展性
    3. 体系(Architecture):用例、过程、实现、部署等
- 使用 UML 的优势:提高质量、更高效。

为什么建模?

- 从现实中抽象:获得必要的细节,过滤掉非必要的细节
- 有助于设计人员处理复杂问题:人类在处理复杂问题时存在局限性
- 集中在关键问题上
- 有助于理解需求、简捷设计、稳定系统的提升

为什么面向对象?

- 更精准地反映现实
- 缩小现实与模型之间的语言鸿沟
- 定位现实的改变
  • 可以将现实建模成一系列相互关联的对象。
Read more »

UML(1)

Posted on 2018-10-31 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(1)

专有名词

  • 分析:建立模型,收集需求

    • 专业定义:探索问题和需求,而不是解决方案。涉及的词汇:需求、用例、约束。
  • 设计:模型的实现

    • 专业定义:对能够满足需求的解决方案的概念性的描述,而不是具体的实现。涉及的词汇:对象、结构、部署、UI。
  • 面向对象系统分析与设计:

    1. 面向对象分析:强调对问题相关的对象或者概念的描述;
    2. 面向对象设计:强调**对象的定义**,以及为了满足需求对象之间的进行的**合作**
      
  • 面向对象模型 OO 的作用:

    1. 便于找到解决关键问题的答案;
    2. 便于将现实世界的实体建模成软件对象,完成复杂管理;
Read more »

JVM(3)

Posted on 2018-09-30 | Edited on 2023-05-09 | In notes

JVM 学习资源

JVM 系列文章

以下图片参考上方链接

Read more »

JVM(2)

Posted on 2018-09-26 | Edited on 2023-05-09 | In notes

一、GC 背景知识

副标题:《深入理解 Java 虚拟机》读书笔记(2)

推荐阅读:面试必问之JVM篇

1.1 GC 背景

GC:garbage collection。
程序计数器、虚拟机栈、本地方法栈这三个区域随线程生灭,所以不需要过多考虑内存的回收问题。而 Java 堆和方法区则不同,不同之处在于:

  • 一个接口的多个实现类需要的内存可能不一样;
  • 一个方法的多个分支需要的内存可能不一样。

只有程序运行期间时才能知道会创建哪些对象,这部分内存分配是动态的,是垃圾收集器所关注的部分。

1.2 四种引用类型

  • 强引用,Strong Reference。类似Dog dog = new Dog();。
  • 软引用,Soft Reference。只有内存不足时,JVM 才会回收该对象。属于java.lang.ref.SoftReference,一般用来实现缓存(如图片缓存、网页缓存,有用但非必须)。
  • 弱引用,Weak Reference。当 JVM 进行 GC 时,无论内存充足与否,都会被回收的对象。属于java.lang.ref.WeakReference,一般用来在回调函数中防止内存泄漏。
  • 虚引用,Phantom Reference。仅用在,这个对象呗收集器回收时收到一个系统通知。
Read more »

JVM(1)

Posted on 2018-09-24 | Edited on 2023-05-09 | In notes

Java & 内存相关

副标题:《深入理解 Java 虚拟机》读书笔记(1)

一、Java 须知

1.1 组成

  • Java 技术体系组成:
    1. ① Java 程序设计语言;
    2. ② 各种硬件平台上的Java 虚拟机;
    3. ③ Class 文件格式;
    4. ④ Java API 类库;
    5. ⑤ 第三方 Java 类库(商业机构/开源社区);
  • JDK = ①+②+④,是进行 Java 程序开发的最小环境;
  • JRE = ②+④中的部分子集(Java SE API),是支持Java程序运行的标准环境。
  • Java 技术体系平台:
    1. Java Card:支持一些 Java 小程序运行在小内存设备的平台(用在SIM卡、提款卡上);
    2. Java ME(micro edition):支持 Java 程序运行在移动端的平台,使用精简后的 Java API,也被称为 J2ME(用在手机、PDA 上);
    3. Java SE(standard edition):支持面向桌面级应用的平台,使用完整的 Java 核心 API,也被称为 J2SE(用在桌面软件);
    4. Java EE(Enterprise edition):支持使用多层架构的企业应用(如常见的 MVC 等)的平台,除了 Java SE API 外,还做了扩充,称为 J2EE(用在 ERP、CRM 应用)。
Read more »

计算机网络第六章

Posted on 2018-09-18 | Edited on 2023-05-09 | In examination

计算机网络——应用层

应用模型

分为客户服务模型(Client/Server,C/S)和P2P模型两种

  • C/S模型是由主机提供服务,客户机请求服务。详细不解释。
  • P2P模型没有固定的客户和服务器的划分,每个结点既作为客户请求资源,又作为服务器提供资源。优点有:
    • 减轻了服务器的计算压力;
    • 多个客户机可以直接共享文档(C/S模式下各客户机无法直接通信);
    • 可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求;
    • 网络健壮性好,单个结点的失效不会影响其他部分的结点。
  • P2P模式的缺点:
    • 会占用较多的内存,影响整机的速度;
    • 经常进行P2P下载,会对硬盘造成较大的损伤;
    • P2P程序会使网络变得非常拥塞,因此遭到各大互联网服务提供商ISP的嫌弃。
Read more »

计算机网络第五章

Posted on 2018-09-17 | Edited on 2023-05-09 | In examination

计算机网络——传输层

  • 定位:传输层属于通信部分的最高层,也是用户功能中的最底层;
  • 只有主机的协议栈才有传输层与应用层,路由器在分组/转发时只用到了下三层的功能。

功能

  1. 提供应用进程之间的逻辑通信(端到端的通信,事实上并无直连)。即使网络层是不可靠的,但传输层同样可以为应用程序提供可靠地服务。
  2. 传输层用的复用和分用:
    • 复用:发送方的不同进程使用同一个传输层协议;
    • 分用:接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用程序。
  3. 传输层可以对收到的报文进行差错检验(首部和数据部分),而网络层只检查IP数据报的首部。
  4. 可以同时提供两种传输协议,面向了连接的TCP和无连接的UDP。网络层只提供面向连接的服务(如虚电路)与无连接服务(数据报)的其中一种(不能同时存在)。
Read more »

计算机网络第四章(2)

Posted on 2018-09-13 | Edited on 2023-05-09 | In examination

计算机网络——网络层(2)

IPv6

  • 从根源上解决了IPv4地址耗尽的问题。
  • 特点:
    • IPv4的32位增大到了128位,共16字节
    • IPv6不允许分片,只有在包的源结点才能分片,是端到端的
    • 扩展阅读:闲谈IPv6-尴尬的IPv4。大意是解析IPv4的痛点,精华部分理解:
      • 原本的arp协议其实是没有使用IP协议进行封包,导致每一种链路层都需要一个arp协议。使用IPv6后,arp的功能由ICMPv6来替代,是使用IP承载的;
      • IPv6自动完成:电脑接入网络后,网口按照规则生成一个链路本地地址,使用此地址和本链路的其他节点通信;
      • IPv6不再需要NAT;
      • 原来IPv4的分类地址使美国占据大量A类地址,IPv6使得地区分布更加均匀;
Read more »

操作系统第三章(2)

Posted on 2018-09-12 | Edited on 2023-05-09 | In examination

操作系统——内存管理(2)

虚拟内存技术

  • 背景:不采用虚拟内存技术的内存管理策略的缺点:
    • 一次性。必须将作业一次性装入内存中,可能会不能全部装入从而作业无法运行;或者大量作业要求运行时,内存不能容纳导致仅少量作业在运行;
    • 驻留性。作业进入内存后会驻留在内存中,任何部分都不会被调出,直到作业结束。
  • 局部性原理。原理不解释。采用此原理的技术有快表、页高速缓存、虚拟内存技术以及“goto语句有害”说法等。
    • 时间局部性:刚执行的指令,不久之后很有可能再次执行。
    • 空间局部性:一旦访问了某个存储单元,不久之后附近的存储单元很有可能被访问。
Read more »

操作系统第三章(1)

Posted on 2018-09-09 | Edited on 2023-05-09 | In examination

操作系统——内存管理(1)

内存管理的功能及相关概念

  • 内存管理:OS对内存的划分和动态分配。
  • 功能:
    • 1.地址转换:程序的逻辑地址与内存中的物理地址不一致,需要相关转换;
    • 2.内存空间的扩充:使用虚拟存储的技术或者自动覆盖技术,从逻辑上扩充内存;
    • 3.内存保护:各道作业在各自的存储空间内运行,互不干扰。
    • 4.(重点)内存空间的分配和回收:让程序员摆脱存储分配的麻烦,提高编程效率;
      • 连续分配管理方式
      • 非连续分配管理方式

1. 程序装入内存和链接

创建进程的第一步就是讲程序和数据装入内存,需要经过:编译、链接、装入三个阶段:

Read more »
1…101112…15

Harrison Lee / Email (harrisonli60@163.com)

It is never too late to learn a new skill, even a challenging one.

150 posts
21 categories
32 tags
© 2025 Harrison Lee / Email (harrisonli60@163.com)
Powered by Hexo v6.3.0
|
Theme – NexT.Mist v7.0.0
|