单例模式是一种创建型设计模式, 它的核心思想是保证一个类只有一个实例,并提供一个全局访问点来访问这个实例。本章参考:单例模式详解 为什么要使用单例模式呢 全局控制 节省资源:也正是因为只有一个实例存在,就避免多次创建了相同的对象,从而节省了系统资源,而且多个模块还可以通过单例实例共享数据。 懒加载:单例模式可以实现懒加载,只有在需要时才进…
一次栈的巧妙运用,有向图入度出度的应用
对象创建流程 JVM 创建一个对象的总体流程如下图所示: 下面分别对这几个部分详细介绍: 一、常量池检查和类加载 在 Java 程序运行时,当虚拟机首次遇到 new 指令尝试创建类的实例时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,接着使用运行时常量池中的符号引用来检查所需的类是否已经被加载、链接和初始化。如果发现类尚未加载…
本篇文章对 JVM 方法区的历史迭代做了总结,明确了对 JDK1.8 中不同常量池位置的理解!
数组中只出现一次的两个数字妙解!
今天在给域名添加ssl证书,让网站可以通过https访问。按照运营商提供的配置方法配置了nginx,并设置了80请求转https。然而,明明nginx和证书都配置完成了,但是就是不能用https访问。 (排查了两个小时,痛) 最终发现问题是虽然证书正常配置了,服务器的443端口也开放了,但是装在 docker 内的 nginx 没有设置443的端口…
从源码理解ThreadLocal,并学习用到的散列算法——斐波那契散列法
一、String的构造方法 可不只是 String a = "abc"; 和 String a = new String("abc"); 阅读 String 源码,发现 String 提供了很多种构造方法,这里列出常用的几种: public String(String original){} public String(char value[…
通过 docker for Mac 深入理解宿主机和docker的通信
一道回溯算法样板题,用于理解尝试-回退的回溯思想,常用于一步步构建结果的场景,比如组合问题、排列问题和子集问题。