- js原生给生成的html添加点击事件,原生js为动态元素添加监听事件
习翔宇
//已存在div//创建标签functioncreatepage(){varspan=document.createElement('span')span.innerHTML=“测试span”//设置属性span.setAttribute("class","gopage");varpagenum=document.getElementById("pagenum")pagenum.appendChi
- 动态生成的html元素绑定click事件
.NET跨平台
Jquery及其组件htmljquery
第一篇博客,开启技术博客的生涯,欢迎大家批评指教(坚信妹子也可以做好程序猿)今天想说帮公司做项目的时候遇到的一个小问题,动态添加html元素以后再去事件监听出问题。在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况。就是上面的一张表格要动态实现添加行,然后序列号还要随着增加,当删除的时候序列号依旧是按顺序排列。刚开始使用jQuery的on方法来解决,但是发现一个问题会出现事件绑定很多次
- 11-js事件基础
echozzi
JavaScript基础javascript前端开发语言
文章目录一、事件概念二、事件绑定方式1.onxxx2.事件监听器addEventListener三、事件解绑方式方法1:覆盖原事件处理(置空)方法2:移除事件监听器removeEventListener四、事件派发方式方法1:onxxx方法2:dispatchEvent五、事件对象window.event六、点击事件的光标坐标点1.以页面为参考坐标page2.以可视窗口为参考client3.相对事
- 关于jquery的on(“click”,function(){}),事件绑定无效
微特尔普拉斯
javascriptjquery
之前在做jquery时,遇到一个问题,就是我在append一个给啊标签绑定click点击事件时不起作用,jquery的版本时3.4.1,也找不到起的错误.就是没触发:$(self).find(".comment-action.cancel").off("click");//console.log("点击了取消回复的按钮!");$(self).find(".comment-action.cancel
- Springboot2 thymeleaf 静态资源加版本号控制缓存更新
VIAE
最近写了一个前后端不分离的项目了,用的Springboot2thymeleaf用的js原生,没有用到webpack,所以不能在每次js变更以后打包自动给静态文件加上hash后缀关于静态资源缓存不更新的问题,用了以下几种解决方案方法一在静态资源引用的时候加上版本号,最开始我就是这么做的,因为当时确实没几个文件index.htmlbug:文件多了以后,这种方法就不太适合了方法二动态添加静态资源,加时间
- 【React】React事件和HTML事件的区别
田本初
Reactreact.jshtmljavascript
React写法测试HTML写法测试区别ReactHTML原生事件绑定方式小驼峰命名法,事件处理函数通过JSX语法直接绑定全小写形式定义事件处理函数函数引用内联的字符串表达式事件对象基于Event重写的SyntheticEvent对象原生的Event对象默认行为通过event.preventDefault()来阻止事件的默认行为,不需要returnfalse可以是event.preventDefau
- 【Node.js 常用命令(第五篇)】揭秘Node.js:掌握这些常用命令,让你在开发路上风生水起!
雷神 Leo
经验分享类#前端后端node.js
目录前言30条常用的Node.js的命令(第1~120条在上一篇)121.gulp-流式自动化构建系统122.grunt-经典的任务运行器123.webpack-merge-合并Webpack配置124.node-gyp-Node.js原生扩展编译器125.socket.io-实时应用框架126.mongoose-MongoDB对象建模工具127.helmet-提升Express应用安全性128.
- vue事件绑定
软件技术NINI
vue笔记vue.jsjavascript前端
vue事件处理:1指令的语法格式:{{插值语法}}“表达式”位置都可以写什么?常量,js表达式,vue实际所管理的xxx2在vue当中完成事件绑定需要哪个指令呢?v-on:事件名=“表达式”例如:v-on:click=“表达式”表示当发生鼠标单机事件以后,执行表达式v-on=keydown“表达式”表示当键盘按下事件以后,执行表达式3在vue当中,所有事件所关联的回调函数,需要vue实力的配置项m
- 03.React学习日记.JSX绑定事件-传递参数
_生生不息_
1.原生js事件获取image.png2.组件中方法事件获取发生该事件后,React内部回调函数,会自动传入一个event对象。注意:这两者不是同一种类型的对象,前者为js原生事件对象,后者为React内部合成的事件对象,功能属性基本一样。推荐:箭头函数是最方便的方法:image.pngiage.png注意:事件发生时,React内部调用函数,执行函数onClick.call(undefined,
- vue js原生上传图片前压缩方法
beyondjxx
javascriptvue.js前端
//压缩图片compressImage(file,maxWidth=750){returnnewPromise((resolve)=>{constreader=newFileReader();reader.onload=function(event){constimg=newImage();img.src=event.target.result;img.onload=function(){//co
- 微信小程序--27(自定义组件4)
阿巴阿巴啊啊啊
小程序学习微信小程序小程序
一、父子组件之间通信的3种方式1、属性绑定用于父组件向子组件的只当属性设置数据,但只能设置JSON兼容的数据2、事件绑定用于子组件向父组件传递数据,可以传递任意数据3、获取组件实例父组件还可以通过this.selectComponent()获取子组件的实例对象,这可直接访问子组件的任意数据和方法二、属性绑定属性绑定用于实现父向子传值,而且只能传递普通类型的数据,无法将方法传递给子组件示例:1、先创
- Python PyQt5——QTimer 定时器使用方法与代码示例
知来者逆
pythonpythonqtpyqt5pyqt定时器
定时器本文将介绍PythonPyQt5QTimer定时器的使用方法和示例。QTimer定时器可以用于需要定期执行任务的应用场景,例如制作时钟、更新摄像头显示画面或倒计时计时器等。基本使用方法与事件绑定QTimer的事件可以通过QTimer.timeout.connect()信号槽绑定到对应的处理函数上。例如,在下面的示例中,定义了一个onTimer()函数,每当定时器时间到达时,就会执行这个函数。
- 在Vue中组件和组件之间的通信有哪些?
qingyun989
vue.js
1.父向子传数据?props2.子向父传数据?第一种方式:父向子传一个函数,子接收这个函数,然后子去调用这个函数,通过这个函数向子传数据第二种方式:组件的自定义事件绑定事件:负责接收数据触发事件:负责发送数据3.可以完成所有组件之间的数据,包括:兄弟之间、爷孙之间、但不限于这些全局事件总线4.怎么选择呢?父向子:props子向父:自定义事件其他的关系使用全局事件总线
- 小程序bindtap 和 catchtap 的区别以及如何使用
咕噜签名-铁蛋
小程序
Hello大家好!我是咕噜铁蛋!我今天要和大家聊一聊小程序开发中的一个常见问题:bindtap和catchtap的区别以及如何使用。这两个在小程序开发中经常被提及的事件绑定方式,它们之间到底有什么不同呢?让我们一起来深入探讨吧!首先,让我们来看一下bindtap和catchtap的定义和使用方法。在小程序中,bindtap和catchtap都是用于绑定点击事件的方法,但它们之间存在一些区别。1.b
- 微信小程序学习记录——4.框架-视图层
赈川
微信小程序微信小程序
文章目录1.WXML数据绑定简单绑定运算组合列表渲染wx:forblockwx:forwx:key条件渲染wx:ifblockwx:ifwx:ifvshidden模板定义模板使用模板模板的作用域引用importimport的作用域include事件什么是事件事件的使用方式事件分类事件绑定和冒泡事件的捕获阶段事件对象timeStamptargetcurrentTargetdatasettouches
- 10.项目 1-博客前端:封装库--事件绑定[上]
好像在哪见过你丶
学习要点:1.问题所在2.设置代码本节课,我们主要探讨一下事件绑定,在此之前我们都使用的是传统的事件绑定。这节点,我们想使用现代绑定对事件进行绑定和删除。一.问题所在现代绑定中W3C使用的是:addEventListener和removeEventListener。IE使用的是attachEvent和detachEvent。我们知道IE的这两个问题多多,并且伴随内存泄漏。所以,解决这些问题非常有必
- JavaScript中事件委托是什么?
LuckXinXin
JavaScriptjavascript
符合W3C标准的事件绑定:addEventLisntener/attachEvent。让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行。
- ES6的20个问题,你都会吗?
web前端技术
一、问:ES6是什么?答:ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。二、问:ES5、ES6和ES2015有什么区别?答:ES2015特指在2015年发布的新一代JS语言标准,ES6泛指下一代JS语言标准,包含ES2015、ES2016、ES2017、ES2018等。现阶段在绝大部分场
- 5-Vue vue-on
波克比
1.作用:对页面中的事件进行绑定2.语法:v-on:事件类型=“事件处理函数名”缩写:@事件类型=“事件处理函数名”3.vue事件绑定提供了两方面的内容:自定义事件和为DOM绑定事件。vue中为DOM元素绑定事件是采用DOM2级事件的处理方式。例如:这里事件处理函数后面有没有括号都可以,但如果传参的话,就必须加()实际上相当于el.assEventListener('click',func)所以a
- jQuery动态绑定元素事件
夏目_2392
在绑定事件中,目前有on(),bind(),delegate(),live()四种绑定方式,有些方式只能对已知元素进行绑定,对于未知动态的元素获取就没有办法。bind()方式绑定bind()的事件绑定是只对当前页面选中的元素有效。如果你想对动态创建的元素bind()事件,是没有办法达到效果的。on()事件绑定①使用on进行单事件绑定$("button").on("click",function()
- VueCLI核心知识1:ref属性、props配置、mixin混入
是小蟹呀^
Vuevue.jsjavascript
1ref属性ref属性类似于js原生获取DOM元素点我输出上方的Dom元素importSchoolfrom'./components/Schoool'exportdefault{name:'App',components:{School},data(){return{msg:'欢迎学习Vue'}},methods:{showDom(){console.log(this.$refs.title)//
- day04---DOM- 事件高级
y_1c4b
事件对象事件对象是什么?当事件触发的时候,产生的对象,该对象记录有事件相关的信息。如何获取事件对象?在事件绑定的回调函数的第一个参数就是事件对象一般命名为event、ev、e事件对象常用属性常用属性pageX/pageY:获取光标相对于页面左上角的位置key:用户按下的键盘键的值事件流什么是事件流?事件流指的是事件完整执行过程中的流动路径事件流和两个阶段说明说明:假设页面里有个div,当触发事件时
- 微信小程序模糊查询节流
Piscoo
在开发中都会有搜索框,相对于输入内容之后点击搜索或者回车搜索,模糊查询的用户体验会好一些,而小程序的模糊查询只能通过bindinput事件来绑定,而小程序没有类似与VUE的.lazy修饰符之类的,也就意味着给bindinput事件绑定搜索事件的话每一次按键都会触发请求,所以需要对其进行简单的节流操作。JS部分searchinput(e){//搜索节流constnow=Date.now()//现在时
- IOC之运行时注入-实现Activity的布局注入+控件注入+事件绑定
milovetingting
个人博客http://www.milovetingting.cnIOC之运行时注入-实现Activity的布局注入+控件注入+事件绑定前言本文主要介绍基于IOC的设计原则,实现以下功能:布局注入控件注入事件注入其实这些功能,在之前也有零散地介绍过,这里再做一个统一的整理。这里暂时不考虑运行时反射的效率问题,只是展示一种实现方案。IOC的定义IOC,即InversionofControl,意为控制反
- DOM自定义事件
硅谷干货
自定义事件虽然用的不多,但是理解他有助于理解事件绑定的原理,本质上是基于EventTarget,系统已经内置比较完善的事件类型,比如:UIEvent(用户界面事件)MouseEventTouchEventFocusEventKeyboardEventWheelEventInputEventCompositionEventEventTarget实现也是比较简单的:varEventTarget=fun
- JS基础知识体系
cesiuming
JS基础知识1、变量类型和计算值类型和引用类型类型判断逻辑运算2、原型和原型链class继承原型原型链instanceof3、作用域和闭包作用域自由变量闭包this4、异步单线程callback应用场景Promis5、模块化ES6ModuleJS-Web-API1、DOM树形结构节点操作属性树结构操作性能2、BOMnavigatorscreenlocationhistory3、事件绑定冒泡代理4、
- 事件
guoXuJianShu
事件1.事件绑定constbtn=document.getElementById('btn1')btn.addEventListener('click',event=>{console.log('clicked')})2.普通的事件绑定函数functionbindEvent(elem,type,fn){elem.addEventListener(type,fn)}constbtn1=documen
- Vue 笔记 12.06 v-model深入理解 sync修饰符 具名插槽 作用域插槽 混入 混入ajax的基本操作
玛骑犸
一、v-model详解:v-model其实就是v-bind:和v-on:的语法糖也就是缩写这里通过v-model替代了v-on和v-bind二、sync修饰符绑定属性时,采用xx.sync修饰符,可以省略update:xx对应的事件绑定约定1:属性绑定必须是xx.sync约定2:自定义事件必须是update:xx三、具名插槽在一个组件中放了多个插槽,当我们需要在相应的插槽中插入元素时,就需要用到具
- vue 指令事件绑定
shangyunsi
vue升级2.0之后,降低指令的功能性,绑定事件的方法改为表达式的方式CA1E1A84F828D99D34C6958AA6FFA8C6.jpg
- VUE学习——事件参数
BUG批量生产者
VUEvue.js学习javascript
接前一节,事件绑定之后,我们需要传递参数。{{item}}exportdefault{data(){return{items:["明神","博子","饼子"]}},methods:{getNameHandler(msg,e){console.log(msg);e.target.innerHTML="name:"+msg;}}}这个的传递参数getNameHandler(msg,e),可以只传弟第一
- 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