设计模式中单例模式设计时需要注意的5个问题

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。使用的时候需要注意有状态和无状态单例的使用场景,多个JVM中会产生多个单例对象,同一个JVM中多个类加载器加载可能会导致出现多个单例对象,使用单例不能实现Cloneable和Serializable接口,否则会出现多个单例对象。一个饿汉式单例类在多线程调用的时候,在生成的时候要使用synchronized对该方法进行线程同步,否则会导致不同的线程将单例的对象属性数据进行相互覆盖。

为什么用Docker部署Workerman项目?

workerman是一个高性能的PHP socket 服务器框架,如何使用Workerman进行敏捷开发和部署一直是一个困扰研发人员的问题。使用Docker部署Workerman,既保证了代码的兼容性,也大大提高了开发效率。

十种JVM内存溢出的情况,你碰到过几种?

十种JVM内存溢出的情况,你碰到过几种?

对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要自己实现释放内存,不容易出现内存泄漏和内存溢出的问题,由虚拟机管理内存这一切看起来非常美好,但是一旦出现内存溢出或者内存泄漏的问题,对于不熟悉jvm虚拟机是怎么使用内存的话,那么排查错误将会是一项非常艰巨的任务。所以在了解内存溢出之前先要搞明白JVM的内存模型。

如何十步解耦你的系统?

如何十步解耦你的系统?

耦合性,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

微服务中消息总线架构设计应用1

微服务中消息总线架构设计应用1

当一个O2O电商系统到达一定规模之后,就需要考虑系统的可扩展性、松耦合和组件化。一般采用的都是基于时下比较流行SpringCloud和Dubbo的分布式的微服务的架构模式,虽然模块间能够独立部署了,但是模块间的还是强依赖关系,每次改动都需要重新发版上线,产品迭代速度又快,使用分布式的消息总线设计就可以解决这些问题。

项目中如何使用Maven进行版本管理?

Maven 是一个项目管理工具,每个项目deploy到repository中以后,都有一个坐标,坐标中就包含一个版本,那个版本将是我们进行版本控制管理的一个重点,本文重点讲述项目管理中实际使用maven进行版本控制的经验。

10分钟生成一张永久免费的SSL证书

10分钟生成一张永久免费的SSL证书

SSL证书激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。是网站正常的运行的必备。

要提高团队代码质量,就要这么用Git进行版本控制!

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。非常适合做互联网产品的代码版本管理。一个团队如何如何使用git进行版本管理,如何使用git进行多人的代码写作?如何解决产品开发过程中的提出来的版本控制的问题?就是我要表达的意思。团队如何进行版本管理呢?

看更多