- Selenium 特殊控件操作与 ActionChains 实践详解
小馋喵知识杂货铺
selenium测试工具
1.下拉框单选操作(a)使用SeleniumSelect类(标准HTML标签)Selenium提供了内置的Select类用于操作标准下拉框,这种方式简单且直观。fromselenium.webdriver.support.uiimportSelect#定位下拉框dropdown=Select(driver.find_element("id","dropdown_id"))#通过以下三种方式选择单个
- 使用Python操作Excel,删重复数据及keep参数用法并保存的例子
白帽黑客艾登
pythonexcel开发语言Python编程Python学习技能分享
01Ex按列标题删重复的数据解析:我们使用了pandas库读取Excel文件,并使用drop_duplicates()函数删除重复数据。其中,subset参数指定了删除重复数据的列(列名),keep参数指定了保留哪个重复记录(默认为第一个记录)。inplace=True参数表示在原始数据上进行操作。最后,我们使用to_excel()函数将处理后的数据,保存到一个新的Excel文件中,其中index
- 【Selenium自动化测试】鼠标与键盘操作
牛油菠蘿包
Selenium教程自动化测试seleniumpython自动化
在WebDriver中,与鼠标操作相关的方法都封装在ActionChains类中,与键盘操作相关的方法都封装在Keys类中。下面介绍下这两个类中的常用方法。鼠标操作ActionChains类鼠标操作常用方法:context_click():右击double_click():双击drag_and_drop():拖动move_to_element():鼠标悬停perform():执行ActionCha
- MYSQL笔记2
wu2790
mysql笔记数据库
创建表:格式:createtable表名(表选项)表定义选项格式为:列名1列类型1约束,列名2列类型2约束,……默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误使用cratetable创建表时,必须指定以下信息:要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSER等。必须指定数据表中每个列(字段)的名称和数据
- cmd里MySQL常用命令
createdatabasename;创建数据库usedatabasename;选择数据库dropdatabasename直接删除数据库,不提醒showtables;显示表describetablename;显示具体的表结构select中加上distinct去除重复字段mysqladmindropdatabasename删除数据库前,有提示。显示当前mysql版本和当前日期selectversio
- 图书推荐-话少不墨迹《大模型技术30讲》
_abab
图书推荐语言模型
关于本书:大模型技术30讲减少过拟合的数据方法过拟合是模型过度拟合训练数据噪声的现象,导致测试性能下降增加高质量标注数据是减少过拟合最有效的方法数据增强通过生成现有数据的变体扩展数据集,提高模型泛化能力自监督预训练可有效利用未标注数据进行模型初始化模型相关正则化方法L2正则化和权重衰减通过添加权重惩罚项约束模型复杂度Dropout通过随机禁用神经元防止对特定特征的依赖早停法通过监控验证集性能终止训
- ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 384]
我是如此相信_
人工智能深度学习
这个错误通常发生在使用PyTorch训练神经网络时,输入数据维度不符合预期,不能batch_size整除。可能是输入的数据有剩余但不足以达到batch_size所导致的查阅资料发现:在torch.utils.data这个包中,DataLoader类下有一参数为:drop_last–settoTruetodropthelastincompletebatch,ifthedatasetsizeisnot
- classList.toggle方法
chaseClo
js
这个方法可以给dom元素添加类,消除类。如下面代码片段,当点击toggle标签时,会给这个标签添加和消除“is-open”类toggle.addEventListener("click",function(e){e.preventDefault();dropdown.classList.toggle("is-open");});
- Class10代码实现
Morning的呀
深度学习python深度学习pytorch
Class10代码实现importtorchfromtorchimportnnfromd2limporttorchasd2l#定义丢弃法函数#X:输入张量#dropout:丢弃概率(0~1)defdropout_layer(X,dropout):#丢弃概率在0-1之间assert0dropout:对每个位置判断是否保留#float():将布尔类型转换为浮点类型mask=(torch.rand(X.
- 【SpringMVC】MyBatis多表操作与注解开发
abboo
一、多表操作1.一对一查询想象一下你在淘宝,在购买东西后会有个订单支付的页面,下单后用户和订单就关联起来了,同时订单有一个唯一的编号叫订单号。用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户即order对user是一对一的,反过来,user对order是一对多的1.1建一张order表DROPTABLEIFEXIST
- Apache Ignite 索引(Indexes)定义和使用
lang20150928
其他apacheIgnite
这段内容是关于ApacheIgnite中如何定义和使用索引(Indexes)的说明。下面我将为你逐段解释这段内容的含义,并帮助你理解ApacheIgnite中SQL索引机制的核心概念。一、索引的定义原文:InadditiontocommonDDLcommands,suchasCREATE/DROPINDEX,developerscanuseIgnite’sSQLAPIstodefineindexe
- 在本地127.0.0.1上跨实例访问远程数据库
和麻
数据库
1.确保可以和远程目标库连接通畅2.确保开启了sqlserver的TCP/IP3.创建LInkedserver-------先删除掉已存在的Remote203IFEXISTS(SELECT1FROMsys.serversWHEREname='Remote203')BEGINEXECsp_dropserver'Remote203','droplogins';ENDGO------------创建链接
- oracle drop user失败,升级失败后,在drop user时出现错误ORA-00600 kkpo_rcinfo_defstg:objnotfound...
weixin_39834678
oracledropuser失败
关于升级失败后,在dropuser时出现错误ORA-00600的解决方案:当前DB版本:SQL>select*fromv$versionwhererownumshouserUSERis"FUTURELEVEL1"SQL>conn/assysdbaConnected.SQL>dropuserfuturelevel1;dropuserfuturelevel1*ERRORatline1:ORA-0060
- oracle 11g drop user 失败,报错ORA-00600
有套Oracleoda一体机上,数据库版本是11204,删除用户时报错如下:SQL>dropusergs_jw3cascade;dropusergs_jw3cascade*ERRORatline1:ORA-00600:internalerrorcode,arguments:[16662],[kqldfau],[4],[0],[253890],[],[],[],[],[],[],[]使用rman备份
- Vue常用插件汇总(2)
2401_84094908
程序员vue.js前端javascript
文件上传vue-upload-component-Vuejs文件上传组件vue-core-image-upload-轻量级的vue上传插件vue-dropzone-用于文件上传的Vue组件图片处理vue-lazyload-img-移动优化的vue图片懒加载插件vue-image-crop-upload-vue图片剪裁上传组件vue-svgicon-创建svg图标组件的工具vue-img-loade
- mysql笔记17视图
程宇寒
mysql笔记视图
mysql笔记17视图一、含义mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。好处:1、简化sql语句2、提高了sql的重用性3、保护基表的数据,提高了安全性二、创建createview视图名as查询语句;三、修改方式一:createorreplaceview视图名as查询语句;方式二:alterview视图名as查询语句四、删除dropview视图1,视
- 常用 SQL 语句摘录
未来无限
C#Winform设计
语句功能--数据操作SELECT--从数据库表中检索数据行和列INSERT--向数据库表添加新数据行DELETE--从数据库表中删除数据行UPDATE--更新数据库表中的数据--数据定义CREATETABLE--创建一个数据库表DROPTABLE--从数据库中删除表ALTERTABLE--修改数据库表结构CREATEVIEW--创建一个视图DROPVIEW--从数据库中删除视图CREATEINDE
- 【深度学习基础】PyTorch中model.eval()与with torch.no_grad()以及detach的区别与联系?
目录1.核心功能对比2.使用场景对比3.区别与联系4.典型代码示例(1)模型评估阶段(2)GAN训练中的判别器更新(3)提取中间特征5.关键区别总结6.常见问题与解决方案(1)问题:推理阶段显存爆掉(2)问题:Dropout/BatchNorm行为异常(3)问题:中间张量意外参与梯度计算7.最佳实践8.总结以下是PyTorch中model.eval()、withtorch.no_grad()和.d
- 解决errCode = 2, detailMessage = Table[xx]‘s state is not NORMAL. Do not allow doing ALTER报错
胡八一、
报错解决doris数据库
test_table正处于“后台作业执行中”状态(不是NORMAL),所以FE拒绝新的ALTERTABLE/CREATEMATERIALIZEDVIEW等DDL。要继续操作,必须先让表回到NORMAL。请按下面步骤排查并处理。1、找出到底在跑什么任务--列变更(ADD/DROPCOLUMN、修改键等)SHOWALTERTABLECOLUMNWHERETableName='test_table';-
- 深度学习——CNN(3)
飘涯
前言:前面介绍了最基本的Lenet,下面介绍几种其他的网络结构CNN-AlexNet网络结构如下图:从图中可以看出,采用双gpu训练增加LRN归一化层:本质上,这个层也是为了防止激活函数的饱和的。采用dropout防止过拟合基于AlexNet进行微调,诞生了ZF-netCNN-GoogleNetGoogLeNet借鉴了NIN的特性,在原先的卷积过程中附加了11的卷积核加上ReLU激活。这不仅仅提升
- InnoDB引擎B+树索引使用和新特性
蜜獾互联网
MySqlb树数据结构
B+树索引的管理我们在InnoDB引擎中常用的索引基本都是B+树索引。创建和删除索引它的创建和删除有两种方法:#方式一:altertable,此时index和key均可以,如果要求所有值均不重复,加上uniquealtertabletbl_nameadd[unique]index|keyindex_name(index_col_name,...);altertabletbl_namedropind
- LocalSend:比 AirDrop 更自由!这款神器让文件传输不再受限
开源项目精选
https
LocalSend是一款免费、开源的跨平台文件传输工具,支持Windows、macOS、Linux、Android和iOS等主流操作系统。它通过HTTPS实现端到端加密传输,无需互联网或外部服务器,即可在局域网内高速、安全地传输文件和文本。其核心优势在于打破平台壁垒,提供高效安全的本地文件共享方案,让您的多设备互联互通变得前所未有的简单。Stars数64,423Forks数3,437主要特点跨平台
- 低温冷启动 & 高温热启动
hahaha6016
fpga开发
低温冷启动1.在低温下,晶体管的阈值电压可能升高,导致时序路径变慢,从而可能引起建立时间(setuptime)违规。另外,也可能出现保持时间(holdtime)违规,因为低温下信号传播速度可能变快(但通常低温下延迟增加,所以建立时间问题更常见)。2.droppinglogiccore意味着在低温下某个逻辑核心(可能是一个特定的模块或IP核)无法正常启动或工作,导致功能失效3.cellname,这通
- 实现左右盒子由中间按钮拖动
前端J先生
javascript前端开发语言
dragdrop(){constdragBar=document.getElementById('dragBar');constleftBox=document.querySelector('.left');constrightBox=document.querySelector('.right');letisDragging=false;letstartX=0;letleftWidth=0;le
- MySQL创建索引与索引失效场景
我叫晨曦啊
MySQLmysql数据库sql
查看索引showindexfrom表名;删除索引dropindex索引名on表名;主键索引主键索引是一种特殊的唯一索引,一个表只能有一个主键,一般以表的id字段为主键ALTERTABLE表名ADDPRIMARYKEY(列名);普通索引可以加速查询,但不能约束数据唯一性,可以在查询和插入操作的时候使用普通索引来提升性能createindex索引名on表名(列名);createindex索引名on表名
- TCP backlog工作机制
riverz1227
tcp/ip网络服务器
Linux中的TCPbacklog:两个队列与丢连接的真相在高并发网络服务场景中,listen()的backlog参数常常被误解,许多TCP连接被悄悄丢弃时,我们甚至毫无察觉。近期在排查一条内核日志TCP:dropopenrequestfrom...时,对此翻阅整理了一些资料,就TCPbacklog在Linux中的工作原理、背后的两个关键队列机制,以及如何高效排查相关连接丢失问题,做些记录01|什
- CSS模块化开发
7Maggie_C
Web前端CSS
CSS模块化一、文件结构常见文件结构一个项目的CSS最基本结构通常是下面这样的:-base.css-common.css-pages.css复杂一点的项目可能是这样分:-base.css-header.css-footer.css-sidebar.css-forms.css-icons.css-buttons.css-dropdown.css-modals.css-layout.css-index
- 驯服权限怪兽:C# Winform拖放功能的终极实战指南
驯服权限怪兽的四大秘籍秘籍1:基础拖放功能——“快递员入门培训”1.1环境配置与事件绑定首先,我们需要为窗体或控件开启拖放权限,并绑定事件://Form1.cspublicpartialclassForm1:Form{publicForm1(){InitializeComponent();//关键步骤1:允许窗体接收拖放this.AllowDrop=true;//关键步骤2:绑定事件this.Dr
- PyTorch:Dropout 操作 torch.nn.Dropout()
sweettea~
Pythonpytorch深度学习
torch.nn.Dropout()是PyTorch中对Dropout层的其中一个实现,该函数底层调用torch.nn.functional.dropout();1、torch.nn.Dropout(p=0.5,inplace=False)其作用是,在training模式下,基于伯努利分布抽样,以概率p对张量input的值随机置0;training模式中,对输出以1/(1-p)进行scaling,
- oracle快照点,oracle 快照(snapshot) 管理
皮皮波
oracle快照点
----手工创建oracle快照BEGINDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();END;/---删除快照具体快照信息可以查看视图DBA_HIST_SNAPSHOTBEGINDBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id=>22,high_snap_id=>32,dbid=>3310
- 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