- 成功解决使用jupyter notebook命令打开原先存的.ipynb文件突然消失的问题
一个处女座的程序猿
安装教程以及Bug解决Computerknowledge
成功解决使用jupyternotebook命令打开原先存的.ipynb文件突然消失的问题目录解决问题解决思路解决方法T1、修改默认配置T2、修改后缀参数(此方法是其他网友推荐,博主没有尝试)T3、如果以上还不成功,这个时候很可能是环境配置有问题解决问题使用jupyternotebook命令打开原先存的.ipynb文件突然消失的问题解决思路使用jupyternotebook命令打开原先存的.ipyn
- 爱普特APT32F110x系列时钟介绍
西之可乐
单片机嵌入式硬件时钟
最近要用APT32F110x做一些开发,顺便学习一下。APT32F110x是由爱普特推出的基于平头哥(T-HeadMicrosystems)CPU内核开发的32位高性能低成本单片机。APT32F1104x基于嵌入式Flash工艺制造,内部丰富的模拟资源,包括模拟比较器、LCD控制器,面向的应用为工业控制,小家电,消费电子设备,可穿戴设备等应用。APT32F1104x的系统时钟源选择和HCLK/PC
- 更改CentOS7 yum源
ZZZZq233__
linuxcentos
方法一:更改相关文件(1)先将yum源文件备份cpCentOS-Base.repoCentOs-Base.repo.backup(2)转到yum源目录,便于下一步操作cd/etc/yum.repos.d(3)更改配置文件viCentOS-Base.repo将文件中的内容改为下面的代码#CentOS-Base.repo##ThemirrorsystemusestheconnectingIPaddre
- MySQL 到 ClickHouse 数据同步优化(三)
简述本文主要介绍CloudCanal如何将关系型数据库中数据同步到ClickHouse,默认使用ReplacingMergeTree作为ClickHouse表引擎,链路特点包括:新增_version、_sign字段,以便ClickHouse准确合并。DML操作均以INSERT写入,同步性能良好。支持DDL同步。技术点结构迁移以ClickHouse为对端的结构迁移,默认选择ReplacingMerg
- AutoSar CP 通信服务核心—Com模块详解
Trump. yang
AutoSar通信原理CANAutoSar嵌入式硬件
文章目录Com模块的主要功能Com模块的配置与其他模块的交互应用举例应用层通过Com模块接收CAN报文应用层通过Com模块发送CAN报文在AUTOSARClassicPlatform(CP)中,Com模块(Communication模块)是负责实现应用层与通信栈之间的接口。它主要管理与通信相关的数据传输,并确保应用层数据通过CAN、LIN、FlexRay、以太网等通信总线正确传输。Com模块的主要
- cmd启动MySQL
在逃八阿哥
MySQLMySQL
命令行启动MySQLstep1:打开命令行:win+Rstep2:输入如下命令,root与1234分别为MySQL的用户名与密码mysql-uroot-p1234出现如下信息即为启动成功如果连接失败显示如下错误信息:ERROR2003(HY000):Can'tconnecttoMySQLserveron'localhost'(10061)解决办法step1:计算机——》右键——》管理——》服务和应
- P1093 [NOIP2007 普及组] 奖学金
洛谷之蒟蒻
算法
题目背景NOIP2007普及组T1题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,
- RabbitMQ 架构分析
DREAM LINER SU
rabbitmq架构rubyjava分布式
文章目录前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer二、消息路由机制1、DirectExchange2、TopicExchange3、FanoutExchange4、HeadersExchange5、notice5.1、备用交换机(Altern
- python 类型标注-typing --- 类型标注支持 — Python 3.7.9 文档
weixin_39892481
类,函数和修饰器.¶这个模块定义了如下的类,模块和修饰器.classtyping.TypeVar¶类型变量用法:T=TypeVar("T")#CanbeanythingA=TypeVar("A",str,bytes)#MustbestrorbytesTypevariablesexistprimarilyforthebenefitofstatictypecheckers.Theyserveasthe
- Java多线程之线程通信
心情阿少
java开发语言
线程通信通过synchronized关键字,可保证线程在执行的过程中不会被其他线程打断,但无法保证线程的执行次序。比如上述案例中,我们可以保证t1线程输出"好好学习"时,不会被t2线程打断,但无法保证t1、t2两个线程执行的次序。如果想要控制线程输出次序,则需要学习线程通信技术。1)概念理解线程间通信:多个线程并发执行时,在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并
- fatal: unable to access ‘https://github
江_小_白
报错解决方案github
fatal:unabletoaccess‘https://github.com/protocolbuffers/protobuf.git/’:Failedtoconnecttogithub.comport443:Connectiontimedout下载项目的时候出现了这个问题,本以为是网络或者什么的问题,没想到是sudo,sudosudogitclone-bv3.6.1https://github
- three.js中文字符随机生成旋转动画
一粒马豆
javascriptthree.js中文字符动画
Three.js随机中文字符生成旋转动画body{margin:0;}canvas{display:block;}{"imports":{"three":"https://cdn.jsdelivr.net/npm/
[email protected]/build/three.module.js","three/addons/":"https://cdn.jsdelivr.net/npm/
[email protected]
- springboot配置文件与注解
xiaobai_cpp
javaspringboot后端java
文章目录配置注解@SpringBootApplication:@Configuration@EnableAutoConfiguration:@ComponentScan:@Value:@ConfigurationProperties:@PropertySource:@Conditional及其派生注解(如@ConditionalOnClass、@ConditionalOnBean等):配置注解
- C语言中常见的转义字符总结
哎呦,帅小伙哦
C++C++
\b退格,从当前位置退到前一列\f换页符,活跃位置跳到下一页的开端。注:换页符可用于控制打印机换页,但不会导致PC机的显示屏换页。\n换行符,使活跃位置跳到下一行的开端\r回车符,使活跃位置返回当前行的开端\t制表符,使活跃位置移动若干个位置(通常是8个)\0空字符
- 微信小程序部分用户报错ERR_CONNECTION_REFUSED连接被拒绝
木雷双雄7
微信小程序微信小程序
【问题描述】部分微信小程序用户出现连接被拒绝的错误,报错信息为{"code":0,"message":"{\"errno\":600001,\"errMsg\":\"request:failerrcode:-102cronet_error_code:-102error_msg:net::ERR_CONNECTION_REFUSED\"}"}【问题排查】后端没有错误日志,前端没有js报错,那报错从何
- C语言笔记
次次娅
c语言笔记算法
目录main函数printf函数占位符限定宽度小数位数数据类型变量创建初始化常量字面常量const修饰的常变量(定义常量)#define预处理器(定义常量)字符常量枚举(enum)枚举变量scanf函数基本用法占位符赋值忽略符main函数main函数是程序的⼊⼝,也被叫做:主函数。main前⾯的int表⽰main函数执⾏结束的时候返回⼀个整型类型的值。所以在main函数的最后写return0;正好
- tomcat:Caused by:java.lang.ClassNotFoundException: javax.servlet.ServletContextListener解决方法
码农研究僧
BUGjavatomcatspringmaven
目录1.找主问题2.普通方法3.进阶方法1.找主问题出现以下问题大概是在终端中这样显示让你去查看日志[2021-08-1909:20:24,031]Artifactssm项目:warexploded:Artifactisbeingdeployed,pleasewait...19-Aug-202121:20:26.871信息[RMITCPConnection(3)-127.0.0.1]org.apa
- 周立功CAN驱动安装
一只大雄
嵌入式硬件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、未安装CAN驱动时候二、“USBCAN-E-U”驱动安装前言周立功CAN盒有比较多的型号:USBCAN-2E-U、USBCAN-4E-U等,这里以周立功CAN盒型号“USBCAN-E-U”为例讲解如何下载安装驱动。一、未安装CAN驱动时候1、CAN盒子的红色SYS指示灯常亮;2、PC端在设备管理器中显示“未知设备”二、
- 解决‘cannot find reference imread in _init_.py’
小劳xiaolao
pythonpythonpycharm开发语言
在新电脑上用pycharm时又遇到这个问题,尝试了不同的import方法都没用,最后还是找到cv2库的存放位置(在site-packages里),把其中的_init_.py和cv2.pyd复制到上一层文件夹内,就解决啦
- 每日一题洛谷P1420 最长连号c++
wen__xvn
洛谷c++算法数据结构
#includeusingnamespacestd;intmain(){intn;cin>>n;ints[1000]={0};for(inti=0;i>s[i];}intmax=1;intt=1;for(inti=0;imax){max=t;}}else{t=1;}}cout<<max<<endl;return0;}
- 把hive中的数据导出到mysql
樱浅沐冰
笔记hadoophivemysql
注意事项!!!!1.hive中的表的字段和类型必须和mysql表中的字段和类型一样不如hive中的stnamevarchar(50),那么mysql中的字段和类型也必须为stnamestring2.sqoopexport--connectjdbc:mysql://localhost:3306/xiandian--usernameroot--passwordbigdata--tablem1--hca
- 华为OD机试 -最多几个直角三角形(C++题解 )
算法大师
最新华为OD机试华为c++开发语言华为od华为od机试
最新华为OD机试真题目录:点击查看目录华为OD面试真题精选:点击立即查看题目描述有N条线段,长度分别为a[1]-a[n]。现要求你计算这N条线段最多可以组合成几个直角三角形。每条线段只能使用一次,每个三角形包含三条线段。输入描述第一行输入一个正整数T(1#include#include//dfs函数用于查找最多可以组成的直角三角形数量int
- 基于Canny边缘检测和轮廓检测
如若123
opencv人工智能计算机视觉
这段代码实现了基于Canny边缘检测和轮廓检测,从图像中筛选出面积较大的矩形,并使用OpenCV和Matplotlib显示结果。主要流程如下:步骤详解:读取图像:img=cv2.imread('U:/1.png')使用cv2.imread()加载图像。转换为灰度图像:gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)使用cv2.cvtColor()将图像从BGR色彩
- Docker 安装 ( Install Docker Engine on CentOS)
shaojiaozld
docker容器运维云计算
1、InstallationmethodsYoucaninstallDockerEngineindifferentways,dependingonyourneeds:YoucansetupDocker’srepositoriesandinstallfromthem,foreaseofinstallationandupgradetasks.Thisistherecommendedapproach.Y
- 如何在 Ubuntu 20.04 或 22.04 上安装 Python 3
百川Cs
计算机基础ubuntupythonlinuxpipconda
以下是关于如何在Ubuntu20.04或22.04上安装Python3的详细步骤。Python是一种广泛使用的编程语言,适用于自动化、数据分析、机器学习等领域。Ubuntu系统通常预装了Python3,但如果需要安装或升级到最新版本,可以按照以下方法操作。检查系统是否已安装Python3打开终端(快捷键:Ctrl+Alt+T)。输入以下命令检查是否已安装Python3:python3--versi
- java语言中“导包”的解释
喵果森森
java编程学习日志javajvmservlet
在java编程过程中,常常使用一种功能,叫“导包”。关键字为import例如importjava.util.Scanner;importjava.util.Random;什么是导包?导包即导入包,通过import关键字将他人完善的代码导入自己的代码中。“他人完善的代码”是被封装成类和包的形式,导入包,并不会将他人的代码插入自己的代码里,只需将其对象实例化后使用即可。什么人写的代码都可以导入吗?Ja
- vue3实际开发bug解决
我爱加班、、
前端开发遇到的问题vue项目实际开发中的bugbug前端javascript
index.vue:119Uncaught(inpromise)TypeError:Cannotcreateproperty'value'onstring'我是标题'问题分析:问题出在componentName的解构和赋值操作上。你尝试将一个字符串赋值给ref的.value属性,这导致了错误。ref是Vue3中用于响应式引用的工具,它返回一个对象,该对象的.value属性用于存储实际的值。解决:不
- JVM基础:什么是STW?
我心向阳iu
#JVMJava面试知识点精讲jvmjava面试
今天笔试题,出了个STW,咱是见也没见过,漏了怯了无语,仔细回忆了下,知道Stop-The-World这个词,不知道SWT,无语文章目录STW:Stop-The-WorldSTW概念进入SWT时机STW停顿的原因STW示例代码STW:Stop-The-WorldSTW概念STW(Stop-The-World):是在垃圾回收算法执行过程当中,将JVM内存冻结、应用程序停顿的⼀种状态。一旦Stop-t
- Flink读写Kafka(Table API)
sf_www
实时计算Flinkflinkkafka大数据
前面(Flink读写Kafka(DataStreamAPI)_flinkkafkascram-CSDN博客)我们已经讲解了使用DataStreamAPI来读取Kafka,在这里继续讲解下使用TableAPI来读取Kafka,和前面一样也是引入相同的依赖即可。org.apache.flinkflink-connector-kafka1.15.41.创建KafkaTable可以使用以下方式来创建Kaf
- JAVA导入包
aqr95022
java
在package**;下面写入importjava.**.**;1.使用Scanner工具类来获取用户输入的成绩信息Scanner类位于java.util包中,使用时需要导入此包1.1.导入java.util.Scancerimportjava.util.Scanner;1.2.创建Scanner对象Scannerinput=newScanner(System.in);//System.in为指定
- 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