Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

Spring IOC

Posted on 2018-11-06 | Edited on 2023-05-09 | In spring

Spring 源码学习之 IOC

一、源码说明

说明:本文分析的是 SpringFrameWork(5.0.5.RELEASE)IOC 部分的源码。

IOC:inversion of control,控制反转。应用程序将对象的控制权移交给第三方容器,并通过容器来管理这些被依赖的对象,完成了应用程序与被依赖对象的解耦。

Read more »

tiny-spring分析笔记(2)

Posted on 2018-11-02 | Edited on 2023-05-09 | In spring

tinySpring 分析笔记——IOC(2)

学习项目 Github 地址:code4craft/tiny-spring

上一篇博客:tiny-spring分析笔记(1)

step-4-config-beanfactory-with-xml

  • 在 step 3 中,“text”参数是直接写入 java 类中。
  • step 4 的目标就是将参数的配置信息写入 xml 文件中,然后代码通过读取 xml 文件获得参数。
  • 参数放入BeanDefinition中,然后用BeanFactory将它们一一注册(包括 setBean),最终实现 getBean。
Read more »

tiny-spring分析笔记(1)

Posted on 2018-11-02 | Edited on 2023-05-09 | In spring

tinySpring 分析笔记——IOC(1)

学习项目 Github 地址:code4craft/tiny-spring

step-1-container-register-and-get

使用 map 当作 bean 的容器,避免间接 new ,代替直接 new。

1.1 HelloWorldService.java

1
2
3
4
5
6
public class HelloWorldService {

public void helloWorld(){
System.out.println("Hello World!");
}
}
Read more »

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 »
1…101112…16

Harrison Lee / Email (harrisonli60@163.com)

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

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