一天一个设计模式(二) -单例模式(Singleton)
前言单例模式 (Singleton) 是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。 正文(一). 优缺点Java中单例模式 (Singleton) 是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序 ...
阅读更多
一天一个设计模式(一) - 总体概述
前言最近在对设计模式进行了一系列总结,本文将给大家关于设计模式的一个整体的介绍。 正文1. 定义设计模式是某类特定问题的代码设计解决方案,是一套代码设计的经验总结。 2. 作用 提高代码复用率,降低开发成本和周期 提高代码可维护性、可拓展性 使代码更加优雅,可读性更强 让代码更容易被他人理解 ...
阅读更多
JVM系列(五) - JVM类加载机制详解
前言本文将由浅及深,介绍 Java 类加载 的过程和原理,进一步对类加载器的进行 源码分析,完成一个 自定义 的 类加载器。 正文1. 类加载器是什么类加载器简言之,就是用于把 .class 文件中的 字节码信息,转化为具体的 java.lang.Class 对象 的工具。具体过程如下: 在实际 ...
阅读更多
JVM系列(四) - JVM垃圾回收算法
前言前面介绍了Java内存运行时区域,其中 程序计数器、虚拟机栈、本地方法栈 三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性。在这几个区域内不需要 ...
阅读更多
JVM系列(三) - JVM对象探秘
前言对于 JVM 运行时区域有了一定了解以后,本文将更进一步介绍虚拟机内存中的数据的细节信息。以 JVM 虚拟机 (Hotspot)的内存区域 Java 堆为例,探讨 Java 堆是如何 创建对象、如何布局对象 以及如何 访问对象 的。 正文1. 对象的创建说到对象的创建,首先让我们看看 Java ...
阅读更多
JVM系列(二) - JVM内存区域详解
前言JVM内存区域包括 PC计数器、Java虚拟机栈、本地方法栈、堆、方法区、运行时常量池 和 直接内存。 本文主要介绍各个内存区域的作用和特性,同时分别阐述各个区域发生内存溢出的可能性和异常类型。 正文1. JVM内存区域Java 虚拟机执行 Java 程序的过程中,会把所管理的内存划分为若干不 ...
阅读更多
JVM系列(一) - JVM总体概述
前言JVM 是 Java Virtual Machine (Java 虚拟机)的缩写,JVM 是一种用于计算设备的 规范,它是一个 虚构 的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM 屏蔽了与具体 操作系统平台 相关的信息,使 Java 程序只需生成在 Java 虚拟机 ...
阅读更多
大型Web网站架构演变
前言我们以Java Web为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 正文 阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如T ...
阅读更多
HTTP协议详解
简介HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。 注意:客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器。这取决与请求的发起端。HTTP协议 ...
阅读更多
TCP协议简介
前言TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP的特性 TCP提供一种面向连接的, 可靠的字节流服务; 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP; TCP使用校验和, 确认 ...
阅读更多