摘要:
Java中的单例模式(Singleton Pattern)是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。 实现单例模式通常有两种方式:懒汉式和饿汉式。 懒汉式单例模式是指在需要实例化对象时才进行实例化,在实例化之前,该类没有被实例化。常见的懒汉式实现方式有双重检查锁和静态内部 阅读全文
摘要:
面向对象编程和面向过程编程是两种不同的编程思想,它们在程序设计上有很大的差别。可以从以下几个方面来入手,比较面向对象和面向过程的差别: 1、数据和行为的关系:面向对象编程将数据和操作数据的行为封装在一个对象中,强调对象的行为和状态之间的联系,而面向过程编程将数据和操作数据的行为分开处理,通过函数或者 阅读全文
摘要:
Java中的代码块 我们在做笔试题的时候经常会遇到考察类中代码块运行顺序的题,所以我现在把它总结一下。 在Java中,代码块(Block)是用一对大括号括起来的一段代码,它可以包含多条语句。根据它的位置和修饰符,Java中的代码块可以分为以下几种: 类初始化块(Static Initializati 阅读全文
摘要:
生产者消费者模型 什么是生产者消费者模型 我们可以把这个模型想象成工厂里的两条流水线,我们管他们叫生产者流水线和消费者流水线,生产者流水线生产出来的产品给消费者流水线使用,其中生产者流水线先把生产出来的产品放在仓库,然后消费者流水线再去仓库拿。这个仓库就叫做阻塞队列。 那么,这个仓库的实现有什么要求 阅读全文
摘要:
##从开发和维护两个方面来看 一方面,可以简化开发的流程。比如说,一个类有100个对象成员,这样的类又要在不同的地方实例化10次,这就是很费手脚的,结合IOC和自动依赖注入,就能够省掉中间这些对象成员的注入过程,提升我们的开发效率。 另一方面,如果想替换掉某个组件的实现,所有的依赖这个组件的代码就都 阅读全文
摘要:
#面向对象范式和面向过程范式的不同之处 ###面向过程 在面向过程的程序设计中,数据和数据上的操作是分离的,而且这种做法要求传递数据给方法。 面向过程的范式重点在于设计方法。 ####面向对象 面向对象程序设计将数据以及对数据的操作都放在一个对象里,这个方法以一种反映真实世界的方式组织程序,在真实世 阅读全文
摘要:
迭代器是一种经典的设计模式。 用于在不需要暴漏数据是如何保存在数据结构中的细节的情况下,遍历一个数据结构。 Collection接口继承自Iterable接口。所以说,实现了Collection接口的集合都可以使用迭代器来进行遍历 Iterable接口中的方法: iterator():返回一个Ite 阅读全文
摘要:
#类的动态装载 首先,我们要明白类加载的过程,再来区分静态加载和动态加载,类加载的过程,本质上就是将类文件,从硬盘读取到内存中的过程,而静态加载是在编译时加载,动态加载是在程序运行时,直到第一次使用时才加载。正是因为两种加载方式的加载的时间不同,导致他们的作用千差万别。 ##从内存的角度来看 当我们 阅读全文
摘要:
上一篇博客已经介绍了如何通过定义原始的字节流来传输Student类,我们接下来继续练习如何通过对象流传输Student类。 因为通过对象流传输的对象以及所包含的变量都必须要实现Serializable的接口,所以为了方便,我把上篇博客的Student类的Image变量改成了二维数组。 ##Stude 阅读全文
摘要:
在分布式系统中,不同节点之间需要进行通信来实现一致性,例如:在投票选举阶段,候选者需要为所有其他节点发送拉票请求,拉票请求中包含着自己的网络地址和任期号,也就是说,我们需要发送一个拉票请求的对象,网络地址和任期号为成员变量。那么,对象是如何在网络中传输的呢? 首先,为了保证数据的传输稳定,节点间通信 阅读全文