- antv/x6 实现框组功能
bigHead-
antv/x6javascriptantvX6vue3
前言:今天看到有小伙伴看到antv/x6多层嵌套下自动拓展父节点这篇文章后在底下留言怎么实现框组的功能,现在就单一摘出来讲解一下。首先要先注册组合节点exportclassNodeGroupextendsNode{privatecollapsed:boolean=true;protectedpostprocess(){this.toggleCollapse(true);}isCollapsed()
- ruoyi&vue+electron+ffi&dll+CAN+串口
思想永无止境
Web前端Windowsvue.jselectron前端
package.json{"name":"test","version":"1.0.0","description":"test","author":"tzc","license":"MIT","main":"background.js","scripts":{"dev":"vue-cli-serviceserve","build:prod":"vue-cli-servicebuild","bui
- Vid ---基于Rust的高性能视频关键帧提取工具架构解析
Foodie豪哥
rust音视频架构ffmpeg
ShowCaseFastRunvid-iD:/cursor一、工具定位与核心价值解决的问题:海量监控视频的快速关键帧回溯教学视频的内容摘要生成视频素材库的智能索引构建技术亮点:多级并行处理架构FFmpeg硬件加速集成自动化目录结构管理⚡细粒度资源控制二、核心架构设计1.CLI控制层#[derive(Parser,Debug)]#[command(version,about="视频关键帧批量提取工具
- git-filter-repo 清除大文件教程
姐夫保护你
elasticsearchgit
gitfilter-repo是一个用于过滤和清理Git仓库历史的工具,它可以高效地批量修改提交历史中的文件内容、删除文件、重命名文件以及进行其他历史重构操作。相较于gitfilter-branch,它通常更快且更易于使用。以下是一个基本示例,说明如何使用gitfilter-repo来删除仓库中特定的大文件:安装git-filter-repo首先确保你已安装Python,并且可以通过pip(Pyth
- ElasticSearch第十五讲 ES数据写入过程和写入原理以及数据如何保证一致性
程序员路同学
ElasticSearchelasticsearchjava大数据
Es的数据并发冲突ES数据并发冲突控制是基于的乐观锁和版本号的机制一个document第一次创建的时候,它的_version内部版本号就是1;以后,每次对这个document执行修改或者删除操作,都会对这个_version版本号自动加1;哪怕是删除,也会对这条数据的版本号加1(假删除)。对于更新操作客户端对es数据做更新的时候,如果带上了版本号,那带的版本号与es中文档的版本号一致才能修改成功,否
- Linux系统上安装kafka
auspicious航
大数据相关学习资料linuxkafka运维
目录1.安装Java环境2.下载和解压Kafka3.配置Kafka4.启动ZooKeeper和Kafka5.测试Kafka6.停止服务7.常见问题1.安装Java环境Kafka依赖Java运行环境(JDK8或更高版本):#安装OpenJDK(推荐)yuminstallopenjdk-11-jdk#验证安装java-version如果已经安装Java环境,可通过如下方式进行检查。#检查当前JAVA
- Github 2025-03-02 php开源项目日报Top10
老孙正经胡说
githubphp开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2025-03-02统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量PHP项目10Blade项目1JavaScript项目1Nextcloud服务器:安全的数据之家创建周期:2796天开发语言:PHP,JavaScript协议类型:GNUAfferoGeneralPublicLicensev3.0Star数量:248
- Git与GitHub:它们是什么,有什么区别与联系?
名之以父
AllInAI前端javascriptgithub开发语言人工智能个人开发gitcode
1.Git是什么?Git是一个开源的、分布式版本控制系统(VersionControlSystem,VCS),由LinusTorvalds于2005年开发,最初用于管理Linux内核的开发。它的核心功能是跟踪文件的变更历史,帮助开发者高效管理代码版本,支持多人协作开发核心特点:分布式:每个开发者本地都有一个完整的仓库副本(包括完整历史记录),无需依赖中央服务器分支管理:轻松创建、切换和合并分支,支
- 查看归档日志及rman备份文件
大叶梧桐
LINUX归档日志man备份
[root@his1/]#ls----查看**/**根目录下的文件archivebootdevhomelib64mediamntoptrmansbinsrvtmpusrbincgroupetcliblost+foundmiscnetprocrootselinuxsysu01var[root@his1/]#cdarchive/------进入archive/[root@his1archive]#ls
- OpenGL基础函数
蓝裕安
计算机图形学c++开发语言
函数参考GLFW初始化glfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);//设置OpenGL主版本号glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);//设置OpenGL副版本号glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE)
- 一款便捷操作移动设备的PC工具
说明该项目基于【Tinyui】框架开发。为电脑端(Windows/MacOS/Linux)操作移动设备提供便捷操作的工具。项目代码已开源:☞Github☜☞Gitee☜功能运行由于采用Python语言开发,因此需要安装Python运行环境,Python2.x(建议使用最后一个版本:2.7.18),Python3.x(推荐3.9以上版本)命令行运行$pythontools.pyWindows系统,直
- Vue的几个常用难点
亭台烟雨中
vue前端
一、window,open()配合this.$router使用1、参数发送页//待传递的参数varapiTemp={}apiTemp.testName=row.testNameapiTemp.testClass=row.testClassapiTemp.testCode=row.testCode//与地址绑定,生成对象constrouteDate=this.$router.resolve({pat
- VBA第十九期 VBA给筛选数据标记不同颜色
jimin_callon
vbaexcel编程
工作中我们需要处理大量数据表格,但同时也会发现数据越多,就越眼花缭乱,为方便工作和减轻视力疲劳,我们有时候就采用放大字体和标记单元格不同颜色,来增加数据表格的可视度和直观度,下面这个实例是通过标记单元格红色和绿色来表示最近处理了的数据。ii=1iii=1lastcl=Sheets("表1").Range("a4").CurrentRegion.Columns.CountFori=1Tolastrw
- IMX6ULL驱动开发uboot篇01
charlie114514191
从0开始的学习ARMv7aIMX6ULL芯片驱动开发IMX6ULL嵌入式硬件uboot
目录所以,啥是UBoot使用uboot的命令行完成点事情bdinfo,printenv和version环境变量内存操作所以,啥是UBoot我们搞过STM32或者啥其他单片机的朋友都知道,我们的程序想要跑上去,需要一个BOOTLoader来提供一个最基本的,被初始化后的软硬件环境(比如说中断向量要布置好,C语言的栈环境要布置好等等!),对于跑操作系统,想要让一个大系统跑在一个板子上的重要步骤就是提供
- llama-factory 记录
嘟嘟Listing
llama
GitHub-hiyouga/LLaMA-Factory:UnifiedEfficientFine-Tuningof100+LLMs&VLMs(ACL2024)安装gitclonehttps://github.com/hiyouga/LLaMA-Factory.gitcondacreate-nllama_factorypython=3.10condaactivatellama_factorycdL
- 【踩坑日记23】UserWarning: Plan failed with a cudnnException: CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR
longii11
python人工智能
问题描述/mnt/lab/XXX/anaconda3/envs/diffusion_ddpo/lib/python3.10/site-packages/torch/nn/modules/conv.py:456:UserWarning:PlanfailedwithacudnnException:CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR:cudnnFinalize
- 【踩坑日记34】FutureWarning: You are using `torch.load` with `weights_only=False` (the current default val
longii11
python
问题描述FutureWarning:Youareusing`torch.load`with`weights_only=False`(thecurrentdefaultvalue),whichusesthedefaultpicklemoduleimplicitly.Itispossibletoconstructmaliciouspickledatawhichwillexecutearbitraryc
- 【Spring】整合【SpringMVC】
好教员好
javaspring
导入依赖 org.springframework spring-core ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-web ${spring.version} org.springframe
- python将pdf转换成word
勘察加熊人
typescriptpythonpdfword
说明:我计划用python,把pdf文件转换成word文件step1:把python环境安装好,然后把helloworld跑起来step2:安装依赖:首先需要安装必要的Python库,在终端中运行,会开始下载依赖包,等待下载完成C:\Users\Administrator>pip--versionpip25.0.1fromC:\Users\Administrator\AppData\Local\P
- vscode配置python调试_vscode配置python调试(debug)
weixin_39747049
vscode作为宇宙级编辑器,已经越来越多人开始使用它。而它的扩展也琳琅满目,在这里我们介绍下vscode下如何进行python开发和调试。首先,我们需要安装python扩展,打开编辑器,输入ctrl+p,然后输入命令extinstall打开扩展搜索。在扩展里面搜素python扩展,然后安装。创建一个文件夹,然后使用vscode打开这个文件夹创建一个文件,然后命名为index.py。配置调试文件,
- Installing Anaconda on Raspberry Pi 4 with Ubuntu 20.04
pertain99
UbuntuLinux
RaspberryPi4runson32-bit.Usethe32-bitversionsandyoushouldbeokay!I’verecentlyinstalledminicondaonmyRaspberryPi4.Ididitusingthefollowingcommands:#Updatelinuxsudoaptupdate-y#Installpython3sudoaptinstall-
- 解决matplotlib错误:“findfont: Generic family ‘sans-serif‘ not found because none of the...”
培根芝士
Pythonmatplotlib
在Linux服务器上调用matplotlib库时报错:findfont:Genericfamily'sans-serif'notfoundbecausenoneofthefollowingfamilieswerefound:SimHeiUserWarning:Glyph19981(\N{CJKUNIFIEDIDEOGRAPH-4E0D})missingfromfont(s)DejaVuSans.解
- UserWarning: Glyph 21435 (\N{CJK UNIFIED IDEOGRAPH-53BB}) missing from font(s) DejaVu Sans.
刘瑞瑞rr
python
matplotlib警告,对于这种警告。原因是:matplotlib使用的默认字体DejaVuSans不支持中文字符,因此在渲染带有中文的图表时会出现警告。此时只需要在库文件中,加入两行代码:importmatplotlib.pyplotaspltfrommatplotlibimportrcParams#设置字体为SimHei(黑体),支持中文rcParams['font.sans-serif']
- Python 编程第一课:快速上手 Python
后端
Python环境搭建为了开始Python编程之旅,首先需要搭建Python环境。以下是简洁的环境搭建步骤:安装Python访问Python官方网站下载最新版本的Python安装包。按照安装向导完成安装,确保勾选“AddPythontoPATH”选项。安装集成开发环境(IDE)PyCharm:功能强大,适合大型项目开发,有社区版和专业版。VSCode:轻量级但功能丰富,可通过插件扩展功能,适合各种规
- UserWarning: Glyph 29992 (\N{CJK UNIFIED IDEOGRAPH-7528}) missing from font(s) DejaVu Sans.
福葫芦
Macmatplotlib字体缺失
问题:UserWarning:Glyph29992(\N{CJKUNIFIEDIDEOGRAPH-7528})missingfromfont(s)DejaVuSans.FigureCanvasAgg.draw(self)解决办法:在表头添加如下代码:importmatplotlib.pyplotaspltimportmatplotlib#设置字体为SimHei,确保该字体在你的系统中存在matpl
- RuntimeWarning: Glyph 35745 missing from current font
jst100
python开发语言
出现该问题的在于在使用plt绘图时找不到合适字体来表示中文。解决方式对于Windows系统可以直接在原始文件中添加如下代码plt.rcParams['font.sans-serif']=['SimHei']对于MAC系统可以在python文件中添加如下代码plt.rcParams["font.family"]='ArialUnicodeMS'对于Linux系统则首先通过命令fc-list:la
- idea+python+selenium自动化测试环境搭建-mac版本
guosasa
自动化测试工具
1、安装idea官网下载安装:https://www.jetbrains.com/idea/download/#section=mac2、安装python3官网下载python最新版本-mac版uname-a可以查看对应mac系统版本https://www.python.org/downloads/macos/
- python爬虫之解决Matplotlib出现中文乱码、交互框架警告问题(UserWarning: Glyph XXXX missing from current font.)
南沐成辰^
python爬虫matplotlib
文章目录前言一、pandas是什么?二、问题描述1.中文字体乱码2.Matplotlib后端警告三、问题原因分析1.中文字体问题:2.后端交互框架问题:四、解决方案1.解决中文字体乱码方法1:在代码中指定SimHei(黑体)字体方法2:在系统中安装中文字体2.解决Matplotlib交互后端警告五、总结前言使用Python的Matplotlib库进行数据可视化时,很多用户会遇到中文字符显示乱码或M
- SpringBoot(2,arm架构和x86架构区别
m0_64205716
程序员面试java后端
//gradle自身会用到的相关设置buildscript{//仓库repositories{//本地mavenLocal()//中央仓库mavenCentral()//grandle插件maven{url‘https://plugins.gradle.org/m2/’}}//子模块会用到的变量ext{springBootVersion=‘2.4.4’}}//插件plugins{id‘java’i
- ubuntu ffmpeg的学习历程 -- chapter 1
ErisX
ubuntuffmpeg开发ubuntuffmpeg学习
学习目标:在ubuntu18.04系统上面使用ffmpeg完成视频的采集与H.264硬件编码,抽帧。学习历程:一、ffmpeg安装(非源码安装)直接使用指令进行安装,考虑系统与版本的匹配性,暂不用源码安装,直接apt-get安装编译好的版本。//安装指令sudoapt-getinstallffmpeg//安装好后查询版本信息sudoffmpeg-version//查询编码器sudoffmpeg-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