- dockerfile拉取私库镜像_从私有仓库拉取镜像
weixin_39566593
从私有仓库拉取镜像浏览0扫码分享2019-10-2717:16:54origin_last_modified:2019-06-0606:18(#14740)译文原文英文原文版权声明:本文为码农文档原创译文,遵循CC4.0BY-NC-SA版权协议,转载请附上原文出处链接和本声明。公告:如果您也想加入翻译队伍,或者您有相关中文文档想要贡献给大家,请联系
[email protected],谢谢!
- python graph_详解Python Graphql
weixin_39761491
pythongraph
前言很高兴现在接手的项目让我接触到了PythonGraphql,百度上对其介绍相对较少也不够全面,几乎没有完整的中文文档,所以这边也借此机会学习一下Graphql。什么是Graphql呢?Graphql是一个API查询语言,其数据由服务器上的一个Scheme提供,其查询返回的数据依赖请求的时候用户需要的精确数据。列如用户只需要一个name字段,服务器也只返回name的值。参考HelloWord入门
- Tortoise-ORM FastAPI integration 中文文档(完整版)
Fender的web学习路程
fastapifastapi
Tortoise-ORMFastAPIintegration中文文档(完整版)前言初衷:在学习的时候发现Tortoise-ORMFastAPIintegration官方文档缺中文版,翻阅英文文档效率低,萌生翻译想法。本系列旨在原汁原味的翻译Tortoise-ORMFastAPIintegration官方文档,帮助英语不好的小伙伴快速学习使用方法。翻译不易,禁止商业用途,转载请标明出处(本人博客:t
- 3.2-Beautiful Soup的安装
whe0302
Python3网络爬虫
BeautifulSoup是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据。它拥有强大的API和多样的解析方式,本节就来了解下它的安装方式。1.相关链接官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc中文文档:https://www.crummy.com/software/BeautifulSou
- Spring Cloud Consul中文文档(Consul和springCloud整合快速上手)
子酷兒233
springcloudjava-consulconsul
SpringCloudConsul1.2.0.RELEASE介绍该项目通过自动配置并绑定到Spring环境和其他Spring编程模型成语,为SpringBoot应用程序提供Consul集成。通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用基于Consul的组件构建大型分布式系统。提供的模式包括服务发现,控制总线和配置。智能路由(Zuul)和客户端负载平衡(Ribbon),断路器
- keras.optimizers优化器中文文档
地上悬河
python开发语言后端
优化器optimizers优化器是编译Keras模型必要的两个参数之一model=Sequential()model.add(Dense(64,init='uniform',input_dim=10))model.add(Activation('tanh'))model.add(Activation('softmax'))sgd=SGD(lr=0.01,decay=1e-6,momentum=0.
- spring中文文档
chuixue24
springbootspringspring
https://github.com/DocsHome/spring-docs/blob/master/SUMMARY.md
- JavaScript 的Blob 对象详解
爱蹦跶的大A阿
JavaScript保姆级教程javascript开发语言ecmascript
个人主页:《爱蹦跶的大A阿》当前正在更新专栏:《VUE》、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》✨前言引言浩瀚的互联网海洋中,数据的传输与存储扮演着至关重要的角色。如何高效、便捷地处理二进制数据,是前端开发人员面临的永恒挑战。问题在传统的JavaScript中,处理二进制数据是一项繁琐且容易出错的工作。我们需要使用各种各样的API和工具,才能将二进制数据转
- 文本解码器(TextDecoder)详解
爱蹦跶的大A阿
JavaScript保姆级教程前端javascript
个人主页:《爱蹦跶的大A阿》当前正在更新专栏:《VUE》、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》✨前言随着互联网技术的飞速发展,文本数据的传输和处理变得越来越普遍。在不同的计算机系统之间传输文本数据时,需要将文本编码为字节数组,以便在不同的字符编码环境下正确显示。文本解码器(TextDecoder)是JavaScript中一个重要的API,用于将字节数组解
- Mybatis 插入数据返回主键ID
魔力物联
推荐参考mybatis官方文档,文档里面有详细讲解教程,中文文档insert,update和delete属性详解属性描述id在命名空间中唯一的标识符,可以被用来引用这条语句。parameterType将会传入这条语句的参数的类全限定名或别名。这个属性是可选的,因为MyBatis可以通过类型处理器(TypeHandler)推断出具体传入语句的参数,默认值为未设置(unset)。parameterMa
- Pinia 官网速通
yqcoder
官网速通系列vue.js前端javascript
前言:参考Pinia中文文档,在Vue3配合ts中的使用。一:介绍1.什么是PiniaPinia是Vue的存储库,允许跨组件/页面共享状态。1.1.为什么要使用Pinia?热模块更换、保持任何现有状态、使用插件扩展Pinia功能、TS支持、服务端渲染支持。1.2.与Vuex的比较Pinia提供更简单的API,具有更少的规范,mutations不再存在。提供了Composition-API风格的AP
- axios 官网速通
yqcoder
官网速通系列前端javascript开发语言
前言:参考AXIOS中文文档一起步1.介绍1.1Axios是什么?Axios是一个基于promise网络请求库,作用于node.js和浏览器中。在服务端使用node.js的http模块,在客户端(浏览端)使用XMLHttpRequests。1.2安装$npminstallaxios#or$yarnaddaxios#or$pnpmaddaxios2.用例2.1发起GET请求constaxios=re
- npm link中文文档
dianfenze8218
数据库json
Symlink(符号链接)一个package文件夹。概括npmlink(inpackagedir)npmlink[/][@]alias:npmln描述package链接过程分为两步首先、npmlink将会在全局包{prefix}/lib/node_modules/下面创建一个指向命令执行的地方的符号链接。同时也会创建一个{prefix}/bin/{name}下面对应的bin包。另一种情况下,npm
- DL4J中文文档/Keras模型导入/嵌入层
hello风一样的男子
KerasEmbedding[源码]从Keras导入一个嵌入层KerasEmbeddingpublicKerasEmbedding()throwsUnsupportedKerasConfigurationExceptionimage.gif为单元测试传递构造函数抛出UnsupportedKerasConfigurationException不支持的Keras配置getEmbeddingLayerp
- 使用vite创建项目
HWL5679
vuevite
NPMnpmcreatevite@latestYarnyarncreatevitePNPMpnpmcreateviteBunbunxcreate-vite安装sassnpmadd-Dsass安装lessnpmadd-Dlessvite官方中文文档:Vite|下一代的前端工具链(vitejs.dev)
- 从零开始搭建 Vue 项目
蛮吉大人123
本文主要介绍如何使用node搭建一个基于Vue+VueRouter+iView+webpack的项目,阅读本文之前你可能需要知道:ES6VueVueRouteriViewwebpack中文文档eslintstylelint以上知识在在本文中不会做太多的介绍,不太熟悉的朋友建议事先了解一下再阅读本文。项目github地址点击这里1.初始化mdvue-project&&cdvue-projectgit
- 《尚硅谷Redis7教程》笔记(小白篇)
newProxyInstance
笔记redis
视频链接1、2:Redis入门概述常用网站汇总官方网站:https://redis.io/Redis中文文档https://www.redis.com.cn/documentation.html作者GitHubhttps://github.com/antirezRedisGitHub源码https://github.com/redis/redisGithubreleases新特性https://g
- 【无标题】
miss-ddly
vue.jsjavascript前端
项目构建一、项目构建1.项目使用vite构建项目你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个Vite+Vue项目,运行vite中文网(开始|Vite官方中文文档)#npm6.xnpmcreatevite@latestmy-vue-app--templatevue#npm7+,extradouble-dashisneeded:npmcreatevite@lates
- Gin 中使用 base64Captcha 生成图形验证码
肥茹
gin
验证码库https://github.com/mojocn/base64Captcha中文文档Go进阶37:重构我的base64Captcha图形验证码项目|❤️在models文件夹中写一个验证码的文件,Captcha.gopackagemodelsimport("github.com/mojocn/base64Captcha""image/color")//设置自带的store存在服务器内存中v
- Airflow 中文文档:集成
布客飞龙
反向代理Azure:MicrosoftAzureAWS:亚马逊网络服务DatabricksGCP:Google云端平台反向代理可以在反向代理后面设置气流,并能够灵活地设置其端点。例如,您可以配置反向代理以获取:https://lab.mycompany.com/myorg/airflow/为此,您需要在airflow.cfg中设置以下设置:base_url=http://my_host/myorg
- JavaScript DOM 变动观察器(Mutation observer)
爱蹦跶的大A阿
JavaScript保姆级教程javascript开发语言ecmascript
个人主页:《爱蹦跶的大A阿》当前正在更新专栏:《VUE》、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》✨前言DOM变动观察是web开发中的一个重要概念,指的是监视DOM元素的变化。传统的DOM事件可以用于响应某些特定的DOM变动,例如点击、鼠标移入移出等。然而,这些事件无法满足所有场景的需求,例如无法监视DOM元素的添加、删除、修改等操作。MutationObs
- JavaScript资源加载:onload,onerror
爱蹦跶的大A阿
JavaScript保姆级教程javascript开发语言ecmascript
个人主页:《爱蹦跶的大A阿》当前正在更新专栏:《VUE》、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》✨前言资源加载是web开发中的一个重要概念,指的是浏览器加载资源(例如图像、脚本、样式表等)的过程。在这个过程中,会发生一系列事件,其中onload和onerror两个事件是重要的里程碑。onload事件发生在资源加载成功之后。此时,资源可以使用了。onerro
- JavaScript 选择范围:SelectionRange
爱蹦跶的大A阿
JavaScript保姆级教程javascript开发语言ecmascript
个人主页:《爱蹦跶的大A阿》当前正在更新专栏:《VUE》、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》✨前言文本选择是web开发中的一个常见需求,例如高亮选定文本、复制粘贴文本、实现文本编辑器等。传统的JavaScript方法无法满足所有场景的需求,例如无法获取选定文本的范围、无法操作选定内容等。SelectionRange是浏览器提供的一个API,用于解决文本
- AVR 328pb ADC基本介绍和使用
perseverance52
AVR单片机AVRADC
AVR328pbADC基本介绍和使用结合参考同架构lgt8f328p中文文档:http://www.prodesign.com.cn/wp-content/uploads/2023/03/LGT8FX8P_databook_v1.0.4.pdf328pbADC特性•10-bitResolution10位分辨率•0.5LSBIntegralNon-linearity0.5LSB积分非线性•±2LSB
- DL4J中文文档/DataVec/读取器
hello风一样的男子
读取器读取器从存储中的数据集迭代记录,并将数据加载到数据向量中。除了数据集中的单个条目之外,阅读器的用处包括:如果想要在语料库上训练文本生成器,或是以编程方式将两个条目组合在一起形成新的记录的时候该怎么办?读取器实现对于复杂的文件类型或分布式存储机制是有用的。读取器返回记录记录中每一列的Writable类。这些类用于将每个记录转换为张量/NDArray格式。使用每个读取器实现都扩展了BaseRec
- 关于拖拽插件murri.js的使用总结——iframe拖拽卡顿问题
我有一个橙
做一个教务系统的界面,需要用到拖拽功能,要求可以拖拽到任意位置,支持自适应用户体验度高等在网上找了很多类似插件,对比后决定使用murri.js这款插件没有中文文档,github上有英文介绍和丰富的案例,所以做起来还是比较顺手的首先放一个已完成的界面:首页murri的案例中展示了很多种类的拖拽,大家可以根据自己的需要选择使用我这里使用的是比较基础的拖拽,没有排序功能等但是中间遇到一个问题:每个拖拽的
- Vitis AI 集成
人工智能
更多TVM中文文档可访问→ApacheTVM是一个端到端的深度学习编译框架,适用于CPU、GPU和各种机器学习加速芯片。IApacheTVM中文站VitisAI是用在Xilinx平台(包括边缘设备和Alveo卡)上进行硬件加速AI推理的Xilinx开发堆栈。它由优化的IP、工具、库、模型和示例设计组成。在设计时兼顾高效率和易用性,充分发挥了XilinxFPGA和ACAP上AI加速的潜力。TVM中当
- 项目实战——创建菜单与游戏页面(上)
yan扬
springboot项目游戏springspringcloudcssvue.js
目录PS:整篇文章全是实现前端的工作,如果大家不了解vue3,建议补一下前置知识~~一、整体框架二、实现导航栏三、导航栏中实现页面跳转四、实现地图五、实现墙体六、生成障碍物PS:整篇文章全是实现前端的工作,如果大家不了解vue3,建议补一下前置知识~~一、整体框架二、实现导航栏实现导航栏的组件我们可以在bootstrap中获得Bootstrapv5中文文档·Bootstrap是全球最受欢迎的HTM
- 创建菜单与游戏页面
m0_59519985
springbootspringbootvuevue.js
bootstrap地址Bootstrapv5中文文档·Bootstrap是全球最受欢迎的HTML、CSS和JS前端工具库。|Bootstrap中文网(bootcss.com)创建导航栏组件web--src--components--NavBar.vueKingOfBots-->KingOfBots对战-->对战对局列表排行榜USERNAMEmybotexit//实现选中的页面高亮import{us
- DL4J中文文档/Keras模型导入/约束
hello风一样的男子
所有的Keras约束都被支持:max_normnon_negunit_normmin_max_norm在KerasConstraintUtils中实现Keras到DL4J约束映射。
- java类加载顺序
3213213333332132
java
package com.demo;
/**
* @Description 类加载顺序
* @author FuJianyong
* 2015-2-6上午11:21:37
*/
public class ClassLoaderSequence {
String s1 = "成员属性";
static String s2 = "
- Hibernate与mybitas的比较
BlueSkator
sqlHibernate框架ibatisorm
第一章 Hibernate与MyBatis
Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。
MyBatis 参考资料官网:http:
- php多维数组排序以及实际工作中的应用
dcj3sjt126com
PHPusortuasort
自定义排序函数返回false或负数意味着第一个参数应该排在第二个参数的前面, 正数或true反之, 0相等usort不保存键名uasort 键名会保存下来uksort 排序是对键名进行的
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8&q
- DOM改变字体大小
周华华
前端
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- c3p0的配置
g21121
c3p0
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的下载地址是:http://sourceforge.net/projects/c3p0/这里可以下载到c3p0最新版本。
以在spring中配置dataSource为例:
<!-- spring加载资源文件 -->
<bean name="prope
- Java获取工程路径的几种方法
510888780
java
第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“
- 在类Unix系统下实现SSH免密码登录服务器
Harry642
免密ssh
1.客户机
(1)执行ssh-keygen -t rsa -C "
[email protected]"生成公钥,xxx为自定义大email地址
(2)执行scp ~/.ssh/id_rsa.pub root@xxxxxxxxx:/tmp将公钥拷贝到服务器上,xxx为服务器地址
(3)执行cat
- Java新手入门的30个基本概念一
aijuans
javajava 入门新手
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合
- Memcached for windows 简单介绍
antlove
javaWebwindowscachememcached
1. 安装memcached server
a. 下载memcached-1.2.6-win32-bin.zip
b. 解压缩,dos 窗口切换到 memcached.exe所在目录,运行memcached.exe -d install
c.启动memcached Server,直接在dos窗口键入 net start "memcached Server&quo
- 数据库对象的视图和索引
百合不是茶
索引oeacle数据库视图
视图
视图是从一个表或视图导出的表,也可以是从多个表或视图导出的表。视图是一个虚表,数据库不对视图所对应的数据进行实际存储,只存储视图的定义,对视图的数据进行操作时,只能将字段定义为视图,不能将具体的数据定义为视图
为什么oracle需要视图;
&
- Mockito(一) --入门篇
bijian1013
持续集成mockito单元测试
Mockito是一个针对Java的mocking框架,它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望 行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。
&nb
- 精通Oracle10编程SQL(5)SQL函数
bijian1013
oracle数据库plsql
/*
* SQL函数
*/
--数字函数
--ABS(n):返回数字n的绝对值
declare
v_abs number(6,2);
begin
v_abs:=abs(&no);
dbms_output.put_line('绝对值:'||v_abs);
end;
--ACOS(n):返回数字n的反余弦值,输入值的范围是-1~1,输出值的单位为弧度
- 【Log4j一】Log4j总体介绍
bit1129
log4j
Log4j组件:Logger、Appender、Layout
Log4j核心包含三个组件:logger、appender和layout。这三个组件协作提供日志功能:
日志的输出目标
日志的输出格式
日志的输出级别(是否抑制日志的输出)
logger继承特性
A logger is said to be an ancestor of anothe
- Java IO笔记
白糖_
java
public static void main(String[] args) throws IOException {
//输入流
InputStream in = Test.class.getResourceAsStream("/test");
InputStreamReader isr = new InputStreamReader(in);
Bu
- Docker 监控
ronin47
docker监控
目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路。 1、关于监控的内容 监控宿主机本身
监控宿主机本身还是比较简单的,同其他服务器监控类似,对cpu、network、io、disk等做通用的检查,这里不再细说。
额外的,因为是docker的
- java-顺时针打印图形
bylijinnan
java
一个画图程序 要求打印出:
1.int i=5;
2.1 2 3 4 5
3.16 17 18 19 6
4.15 24 25 20 7
5.14 23 22 21 8
6.13 12 11 10 9
7.
8.int i=6
9.1 2 3 4 5 6
10.20 21 22 23 24 7
11.19
- 关于iReport汉化版强制使用英文的配置方法
Kai_Ge
iReport汉化英文版
对于那些具有强迫症的工程师来说,软件汉化固然好用,但是汉化不完整却极为头疼,本方法针对iReport汉化不完整的情况,强制使用英文版,方法如下:
在 iReport 安装路径下的 etc/ireport.conf 里增加红色部分启动参数,即可变为英文版。
# ${HOME} will be replaced by user home directory accordin
- [并行计算]论宇宙的可计算性
comsci
并行计算
现在我们知道,一个涡旋系统具有并行计算能力.按照自然运动理论,这个系统也同时具有存储能力,同时具备计算和存储能力的系统,在某种条件下一般都会产生意识......
那么,这种概念让我们推论出一个结论
&nb
- 用OpenGL实现无限循环的coverflow
dai_lm
androidcoverflow
网上找了很久,都是用Gallery实现的,效果不是很满意,结果发现这个用OpenGL实现的,稍微修改了一下源码,实现了无限循环功能
源码地址:
https://github.com/jackfengji/glcoverflow
public class CoverFlowOpenGL extends GLSurfaceView implements
GLSurfaceV
- JAVA数据计算的几个解决方案1
datamachine
javaHibernate计算
老大丢过来的软件跑了10天,摸到点门道,正好跟以前攒的私房有关联,整理存档。
-----------------------------华丽的分割线-------------------------------------
数据计算层是指介于数据存储和应用程序之间,负责计算数据存储层的数据,并将计算结果返回应用程序的层次。J
&nbs
- 简单的用户授权系统,利用给user表添加一个字段标识管理员的方式
dcj3sjt126com
yii
怎么创建一个简单的(非 RBAC)用户授权系统
通过查看论坛,我发现这是一个常见的问题,所以我决定写这篇文章。
本文只包括授权系统.假设你已经知道怎么创建身份验证系统(登录)。 数据库
首先在 user 表创建一个新的字段(integer 类型),字段名 'accessLevel',它定义了用户的访问权限 扩展 CWebUser 类
在配置文件(一般为 protecte
- 未选之路
dcj3sjt126com
诗
作者:罗伯特*费罗斯特
黄色的树林里分出两条路,
可惜我不能同时去涉足,
我在那路口久久伫立,
我向着一条路极目望去,
直到它消失在丛林深处.
但我却选了另外一条路,
它荒草萋萋,十分幽寂;
显得更诱人,更美丽,
虽然在这两条小路上,
都很少留下旅人的足迹.
那天清晨落叶满地,
两条路都未见脚印痕迹.
呵,留下一条路等改日再
- Java处理15位身份证变18位
蕃薯耀
18位身份证变15位15位身份证变18位身份证转换
15位身份证变18位,18位身份证变15位
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
- SpringMVC4零配置--应用上下文配置【AppConfig】
hanqunfeng
springmvc4
从spring3.0开始,Spring将JavaConfig整合到核心模块,普通的POJO只需要标注@Configuration注解,就可以成为spring配置类,并通过在方法上标注@Bean注解的方式注入bean。
Xml配置和Java类配置对比如下:
applicationContext-AppConfig.xml
<!-- 激活自动代理功能 参看:
- Android中webview跟JAVASCRIPT中的交互
jackyrong
JavaScripthtmlandroid脚本
在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:
1 JAVASCRIPT脚本调用android程序
要在webview中,调用addJavascriptInterface(OBJ,int
- 8个最佳Web开发资源推荐
lampcy
编程Web程序员
Web开发对程序员来说是一项较为复杂的工作,程序员需要快速地满足用户需求。如今很多的在线资源可以给程序员提供帮助,比如指导手册、在线课程和一些参考资料,而且这些资源基本都是免费和适合初学者的。无论你是需要选择一门新的编程语言,或是了解最新的标准,还是需要从其他地方找到一些灵感,我们这里为你整理了一些很好的Web开发资源,帮助你更成功地进行Web开发。
这里列出10个最佳Web开发资源,它们都是受
- 架构师之面试------jdk的hashMap实现
nannan408
HashMap
1.前言。
如题。
2.详述。
(1)hashMap算法就是数组链表。数组存放的元素是键值对。jdk通过移位算法(其实也就是简单的加乘算法),如下代码来生成数组下标(生成后indexFor一下就成下标了)。
static int hash(int h)
{
h ^= (h >>> 20) ^ (h >>>
- html禁止清除input文本输入缓存
Rainbow702
html缓存input输入框change
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。
如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off";
<input type="text" autocomplete="off" n
- POJO和JavaBean的区别和联系
tjmljw
POJOjava beans
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规
- java中单例的五种写法
liuxiaoling
java单例
/**
* 单例模式的五种写法:
* 1、懒汉
* 2、恶汉
* 3、静态内部类
* 4、枚举
* 5、双重校验锁
*/
/**
* 五、 双重校验锁,在当前的内存模型中无效
*/
class LockSingleton
{
private volatile static LockSingleton singleton;
pri