- react-native-swiper active dot无法更新解决方案
xiangjiu99287
php开发语言
问题描述一个轮播图组件,展示网络图片,为了避免闪屏,先用本地默认图片作为占位符。{previewUrl.length>0?({previewUrl.map((item,index)=>())}):()}结论占位符必须在2张以上,不然react-native-swipper会认为当前激活的index一直为0。{previewUrl.length>0?({previewUrl.map((item,in
- 解决 -bash: wget: command not found 的方法!!!
运维白菜鹏
wgetwget
解决以下报错:-bash:wget:commandnotfound-bash:wget:未找到命令结局方法:yum-yinstallwget
- 移动程序后出现Cannot resolve symbol AppCompatActivity等错误
...飞一般的感觉
andriod
移动androidstudio程序包到不同电脑后,出现CannotresolvesymbolAppCompatActivity等错误,网上有说没有包含lib包。importandroid.support.v4.app.ActivityCompat;importandroid.support.v4.content.ContextCompat;importandroid.support.v7.app.
- Android 提示 Cannot resolve symbol ‘AppCompatActivity‘ 问题解决,亲测可用
流萤灯
android项目androidstudioandroid
今天从gihub上clone别人的代码学习,发现publicclassMainActivityextendsAppCompatActivityAppCompatActivity一直报错Cannotresolvesymbol'AppCompatActivity’就算已经import了对应的包,import语句也是灰的,不起作用importandroid.support.v7.app.AppCompa
- Http响应头之Date与Age
yzpyzp
参考:http://www.xuebuyuan.com/1496558.htmlhttp://blog.csdn.net/xifeijian/article/details/46460631HTTP没有为用户提供一种手段来区分响应是缓存命中的(比如响应是来自代理服务器的),还是访问原始服务器得到的。客户端有一种方法能判断响应是否来自缓存,就是使用Date首部。将响应中Date首部的值与当前时间进行
- react-contexify的右键菜单属性disabled不起作用
qq_35769971
源码问题修复reactjs
目录react-contexify的右键菜单属性disabled不起作用代码展示问题原因解决方案react-contexify的右键菜单属性disabled不起作用使用场景:使用react做前端项目时,有一个需求是根据table的行数据不同,点击鼠标右键展示不同的菜单,但是真实情况是,只有第一次渲染的时候会根据代码逻辑渲染,之后点击鼠标右键,出来的菜单始终和第一次相同,除非先点击鼠标左键,再点击右
- Python数据可视化工具库之lux使用详解
Rocky006
信息可视化数据分析数据挖掘
概要数据可视化在数据科学和分析中扮演着重要的角色。它可以更好地理解数据、发现模式、传达见解,并支持数据驱动的决策。PythonLux(简称Lux)是一个强大的数据可视化工具,它旨在简化数据可视化的过程,使数据探索更加容易和高效。本文将介绍Lux的基本概念、安装和配置、常见用例以及丰富的示例代码,帮助大家掌握这一有用的Python库。什么是PythonLux?PythonLux是一个Python库,
- 鸿蒙开发:了解帧动画
前言所谓帧动画,就是类似播放电影一样,一帧一帧的进行播放,相对于属性动画,其每一帧,我们都可以进行设置相关的属性值,并且具有暂停播放,继续播放的优点,而且还具备事件的实时响应,需要说明的是,在性能上是远远不如属性动画的,所以如果能用属性动画实现的场景,还是主推属性动画。实现帧动画实现一个组件逐帧移动,并且可以进行暂停操作。首先,帧动画是通过getUIContext().createAnimator
- golang之基础库
丑阳璐
go语言golangjson
从这小节开始,就变得尤为重要,希望小伙伴们打起精神包管理工具(gomodule)使用gomodule来管理0包之间的依赖关系和Java类似,类似于文件夹。当我们需要使用某个包时,导入某个包即可导包时,必须从GOPATH最初的包路径开始//查看环境变量PSD:\gowork\goProiect\Go01Test>goenvsetGO111MODULE=on//模块化setGOARCH=amd64se
- Golang 基础库之Strconv
家了叭叭
Golanggolangc语言开发语言
Strconv参考资料:http://c.biancheng.net/view/vip_7305.htmlhttps://vimsky.com/examples/list/code-usage-page-1.html标准库中文文档:https://studygolang.com/pkgdocstrconv包实现了基本数据类型和其字符串表示的相互转换。实现了基本数据类型与其字符串表示的转换,主要有以
- Golang 基础库之Time包
家了叭叭
Golang1024程序员节
Timegoversion:go1.17.2提供了获取系统时间、时间计算、比较、等一系列操作go语言的诞生时间:2006年1月2号15点04分1.当前时间获取functimeDemo(){now:=time.Now()//当前时间fmt.Println("now:",now)year:=now.Year()month:=now.Month()day:=now.Day()hour:=now.Hour
- npm install 失败
努力努力再努力12138
npm前端node.js
考虑原因:node版本不符代理镜像连接失败权限不足症状1:卡住尝试降低nodejs版本症状2:报错报错1:permissionnotpermitted报错2:超时应对方法:node版本不符降版本镜像失败–切换镜像–去除镜像可能存在问题:项目中有npmrc文件,内部镜像源优先级高于本地全局配置镜像。本地镜像会被覆盖权限不足–使用管理员–nodejs文件属性中升级成员权限
- Go基础之切片大集合
死嗑到底
Go语言实战笔记golang算法数据结构go
一、切片是长度可变的数组,切片由三部分组成1、指针,指向切片第一个元素指向的数组元素的地址2、长度,切片元素的数量3、容量,切片开始到结束位置元素的数量二、声明切片声明需要指定组成元素的类型但不需要指定存储元素的数量(长度)在切片声明后,会被初始化为nil,表示暂不存在的切片//[]string,true,[]varnames[]stringfmt.Printf("%T,%t,%v\n",name
- C#获取变量的数据类型_C#获取对象的数据类型
天马3798
C#c#开发语言C#获取变量的数据类型C#获取对象的数据类型
C#中的数据类型用Type类描述,具体的类型是Type的对象一、object.GetType()对象.GetType()-----对象不能为null,否则运行报错;通用的获取类型方式底层对象获取类型,所有的对象,变量获取类型,GetType();返回的结果:命名空间.类返回的结果是类型的全称案例1:Studentstu=newStudent();stu.Name="张三";Console.Writ
- 【记录贴】vite打包内存溢出问题FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
念九_ysl
Vuejavascript开发语言ecmascriptnpm前端
具体报错如下:解决办法:修改package.json的打包命令"build":"vitebuild&&node--max_old_space_size=40960","build:docker":"vitebuild--outDir./docker/dist/",改为"build":"node--max_old_space_size=4096./node_modules/vite/bin/vite
- HDMI之HPD
cpsss0681
计算机外设
HDMI(19Pin)/DVI(16pin)的功能是热插拔检测(HotPlugDetect,HPD),这个信号将作为主机系统是否对HDMI/DVI是否发送TMDS信号的依据。HPD是从显示器输出送往计算机主机的一个检测信号。HPD是检测接收端是否连上的一种方法,而不管接收端是否上电。1、当计算机通过HDMI接口与显示器相连接时,主机通过HDMI的第18脚(PWR_CON_PIN18)将+5V电压加
- Vue - 在纯 HTML 普通项目中实现组件化,让原生 html 项目支持引入 *.vue 组件 / 组件与组件间的互相引用等,完美解决了引入组件出现的跨域问题(保姆级详细教程,完整示例源码及插件)
王二红
+Vuehttp-vue-loadervueoader跨域html引入.vue组件跨域纯html项目如何vue组件化vue.jshtml
前言网上的方法千篇一律,并且都有引入组件报错“跨域”问题,本文彻底解决并提供详细的示例源码(一键复制运行)。在纯html原始项目中没有“组件”概念(意味着重复的组件,每次都需要重新写),就算引入了Vue.js包也是功能有限,根本无法引入*.vue文件,更不可能实现组件化。有些朋友不想用脚手架(webpack)创建,还想要在纯html页面中获得“组件化”能力,如下图所示。也就是说,您可以在不依赖no
- linux修改用户uid报错,Linux下修改用户的UID、GID
达拉斯手记
linux修改用户uid报错
[root@26~]#idmvpuid=503(mvp)gid=503(mvp)groups=503(mvp)###假定我需要设置mvp的uid/gid506[root@26~]#cat/etc/passwd|grep503mvp:x:5031:503::/home/mvp:/bin/bash[root@26~]#cat/etc/passwd|grep506###发现506被占用,只有把ftp_r
- React的内部机制详解
GISer_Jinger
ReactJavascriptreact.js前端前端框架
用户之前询问了Vue的响应式原理,我详细介绍了Object.defineProperty和Proxy,以及发布订阅模式。现在用户转向React,可能是在比较两者,或者想深入理解React的内部机制。用户可能是前端开发者,想要更深入理解React的底层实现,以便优化应用或面试准备。我需要确保内容足够深入,覆盖React的核心机制,比如虚拟DOM、协调算法、Fiber架构、Hooks原理、事件系统等。
- [npm install 报错] Verion 9 of Highlight.js has reached EOL
90的程序爱好者
npm前端node.js
1、在项目中执行npminstall报错Verion9ofHighlight.jshasreachedEOL,如下图:2、报错原因Highlight.js不再支持10以前的版本,需下载10及之后的版本3、解决办法打开项目中的package.json文件,将highlight.js的版本修改为:10.7.2,删除node_modules文件夹,再次执行npminstall命令即可解决
- 总结:使用JDK原生HttpsURLConnection,封装HttpsUtil工具类,加载自定义证书验证,忽略ssl证书验证
ideal-cs
总结javasslhttps自签证书验证ssl验证https忽略证书验证https工具类
总结:使用JDK原生HttpsURLConnection,封装HttpsUtil工具类,加载自定义证书验证,忽略ssl证书验证一·HttpsUtil工具类二·SSLUtil工具类一·HttpsUtil工具类packagecom.example.util;importjavax.net.ssl.HttpsURLConnection;importjavax.net.ssl.SSLContext;imp
- git报错 If you wish to set tracking information for this branch you can do so with
xhqiang
常用工具gitbranchorigin
gitpull-r或者gitpush的时候报错Thereisnotrackinginformationforthecurrentbranch.Pleasespecifywhichbranchyouwanttorebaseagainst.Seegit-pull(1)fordetails.gitpullIfyouwishtosettrackinginformationforthisbranchyouc
- 提示报错git branch --set-upstream-to=origin/<branch> master
大吉大利的卦象
Gitgitgithub
1、报错信息如下:Thereisnotrackinginformationforthecurrentbranch.Pleasespecifywhichbranchyouwanttomergewith.Seegit-pull(1)fordetails.gitpullIfyouwishtosettrackinginformationforthisbranchyoucandosowith:gitbran
- 如何知道requests有没有
墨者清风
Pythonpython
要检查你的Python环境中是否安装了requests库,可以通过以下几种方法:方法1:在Python解释器中检查打开终端或命令行。启动Python解释器:python尝试导入requests:importrequests如果没有报错,说明requests已安装。如果出现ModuleNotFoundError,说明requests未安装。方法2:使用pip检查打开终端或命令行。运行以下命令:pip
- 【CANoe之CAPL基础学习_函数用法3】
车端域控测试工程师
笔记经验分享学习方法c语言
【CANoe之CAPL基础学习_函数用法3】1、监视总线的情况,这一般会用在查看一段时间内,总线上有没有出现通讯异常的情况。-函数使用介绍ChkStart_NodeBabbling().如,检测一段时间内总线有没有出现停止通讯的情况:CheckId=ChkStart_NodeBabbling(CAN::PT_MCU,0);//立即开始检查总线状态testWaitForTimeout(2000);
- python:文件操作
muxue178
python开发语言
1.文件操作:打开、读写、关闭等操作。f=open(name,model)name:路径加文件名,model:w,a如果文件不存在,创建文件。w:重写a:末尾追加r:只读,文件不存在时会报错。file.read(num)num:读多少字符file.write()file.close()f=open('muxue.txt','w')f.write('不要悲伤')f.close()#f=open('m
- 软件测试之Web测试方法总结
传说三哥
全栈软件测试基础入门软件测试性能测试jmeter功能测试测试用例
一、输入框1、字符型输入框:(1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝
- centos报错:无法访问/mnt: 传输端点尚未连接
AnnyYoung
FAQ笔记centoslinux运维
背景执行ls报错:无法访问/mnt:传输端点尚未连接执行mount/dev/sdc1/mnt报错:FUSEexfat1.2.7WARN:volumewasnotunmountedcleanly.解决sudoumount-l/mnt重新挂载:mount/dev/sdc1/mnt
- Error: mount: 未知的文件系统类型“ntfs”
AnnyYoung
FAQlinuxsshcentos
mount:未知的文件系统类型“ntfs”问题描述原因解决方法使用参考问题描述执行“mount”挂载外置硬盘时报错,如下:mount:未知的文件系统类型“ntfs”原因系统不支持ntfs文件。解决方法需要安装软件包(地址:https://www.tuxera.com/company/open-source/)安装命令如下:#下载wgethttps://tuxera.com/opensource/n
- py每日spider案例之某website反调试处理
我不是程序员~~~~
爬虫项目实战c语言开发语言
反调试js代码constGQB0=($,es='\u{70}\u{61}\x72\x73\x65',Tp='\x63\x68\x61\x72',te9=RegExp,H='\x6a\x6f\x69\x6e',V='\x6d\x61\x70',wYi=(((!-[]+!-[]))+((((!+[]+!-[]))+((~~[]-~[]))))),siY='\u{73}\x70\x6c\x69\x74'
- 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 "xxxxx@xxxxx.com"生成公钥,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