- 小甲鱼Python3学习笔记之第十五讲(仅记录学习)
木实无华
第十五讲:字符串,格式化一、知识点:0.str.format()有两种参数位置参数和关键字参数:A、对应序号替换:>>>'hello,{0},{1},{2}'.format('A','B','C')'hello,A,B,C'>>>'hello,{0},{2},{1}'.format('A','B','C')'hello,A,C,B'>>>'hello,{0},{1},{2},{3[0]},{3[1
- python3学习笔记:执行精确的小数计算
潼潼夏
问题我们需要对小数进行精确计算,不希望因为浮点数天生的误差而带来影响解决方案使用decimal模块,牺牲一些性能,得到更高的精度。示例如下:fromdecimalimportDecimala=4.2b=2.1c=a+bprint(c)#c=6.300000000000001a2=Decimal('4.2')b2=Decimal('2.1')c2=a2+b2print(c2)#c2=6.3Decim
- 【python3学习笔记】之list的相关操作
_young_for_u_
1、定义list:列表名=[列表内容]列表名=[关于A的表达式forAinB其它判断],最终的list根据A的表达式计算并逐个列出list=[iforiinrange(10)ifi%2==0]#两种方式等价,但列表解析式执行效率更高list1=[]foriinrange(10):ifi%2==0:list1.append(i)2、增加list元素:list.append(obj),小括号内的内容将
- pythonurllib模块-Python3学习笔记(urllib模块的使用)
weixin_37988176
1.urlliburllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)-url:需要打开的网址-data:Post提交的数据-timeout:设置网站的访问超时时间直接用urllib.request模块的urlopen()获取页面,page的数据格式
- 【python3学习笔记】之字符串格式化符号含义及转义字符含义
_young_for_u_
字符串格式化符号含义符号说明%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E作用同%e,用科学计数法格式化浮点数%g根据值的大小决定使用%f或%e%G作用同%g,根据值的大小决定使用%f或者%E格式化操作符辅助命令符号说明m.nm是
- Python3学习笔记29——Socket(网络编程)
Darin2017
python基础Socket网络编程
Socket是网络编程的一个抽象概念。通常我们用一个Socket表示”打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。客户端大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。举个例子,当我们在浏览器中访问新浪时,我们自己的计算机就是客户端,浏览器会主动向新浪的服务器发起连接。如果一切顺利,新浪的服
- Python3学习笔记之-模块(第一篇)
是小先生
python学习笔记python
Python3学习笔记之-模块(第一篇)文章目录目录Python3学习笔记之-模块(第一篇)一、使用模块二、作用域三、安装第三方模块四、模块搜索路径一、使用模块python本身内置了许多模块,安装就能使用,我们编写一个自己的模块试一试:#!/usr/bin/envpython3#-*-coding:utf-8-*-'mymodule'__author__='myname'importsysdeft
- 「Python3学习笔记」读书笔记--float类型
Lovemma
本文为「Python3学习笔记」一书的读书总结。在Python中float类型默认存储双精度浮点数(也就是其他语言中的double),可一表达16到17位浮点数。>>>1/30.3333333333333333>>>0.12345678901234567890.12345678901234568从实现方式上来看,浮点数是以二进制的方式来存储十进制数的近似值。这就可能导致执行的结果与预期不符合,造成
- 「Python3学习笔记」读书笔记—字符串
Lovemma
字符串字面量以成对的单引号(`)、双引号(”),或可跨行的三引号(”””)语法构成,自动合并相邻的字面量。字符串支持转义、八进制、十六进制,或Unicode格式字符。使用单引号还是双引号,并没有什么特殊限制。如果文本内的引用文字使用双引号,那么外面用单引号可避免转义,更易阅读。通常情况下,建议遵循多数编程语言惯例,使用双引号标示。Python3中字符串存储的是Unicode文本,是不可变序列类型。
- Python3学习笔记——第一章:基础入门
福旺旺
Pythonpython
Python3有段时间没摸Python了,浏览了一下菜鸟教程,巩固一下基础吧。Python3学习笔记——第一章:基础入门文章目录Python3一、Python3简介二、Python的安装三、查看Python版本四、第一个Python3程序一、Python3简介讲几个对编程有用的点Python是一种高级编程语言,它具有以下特点:易学易用:Python是开源的,其具有简洁的语法,清晰的语言结构,和相对
- [Python3学习笔记-基础语法] Python3 基础语法
Python小菜鸡
本篇文章详细介绍Python3的基础语法,主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。这些是Python最基础的东西,掌握好了才能更好的学习后续的内容。有兴趣共同结伴学习Python的朋友,点击下面的图标加群:编码默认情况下,Python3源码文件以UTF-8编码,所有字符串都是unicode字符串。当然你也可以为源码文件指定
- python3学习笔记-数据结构
谢懵逼
列表和循环列表列表就是一种有序的列表有序的列表随机访问线性访问通过索引访问创建列表普通列表以作坊括号([)开头打开列表,然后写要放入列表的东西,以逗号隔开,以右方括号(])表明列表结束,然后赋给一个变量eghairs=['brown','blond','red']eyse=['brown','blue','green']weights=[1,2,3,4]二维列表在列表中包含列表eg[[1,2,3]
- VIM YouCompleteMe(ycm) 对于Python3第三方库的自动补全【部分解决】
太阳神LoveU
高手的点拨Python项目实战编程语言学习笔记pythonvimmac
VIMYouCompleteMe(ycm)对于Python3第三方库的自动补全【部分解决】Python3学习笔记问题:VIM用YouCompleteMe(ycm)自动补全插件时,只能支持Python3的标准库的自动补全,而不能自动补全第三方库的内容。环境:Mac+VIM8.0+vundle+ycm+python3解决:尝试对Python3第三方库的自动补全进行配置。1)在网上查阅了很多资料,至今未
- python3学习笔记------函数
爽爽ing
这周,我们学习了函数,现在就让我来总结一下知识点吧!def是函数名()函数封装的代码1:def是英文defind的缩写2:函数名称应该能够表达函数封装代码的功能,方便后续的调用3:函数名称的命名应该符合标识符的命名规则^可以由字母、下划线和数字组成^不能以数字开头^不能与关键字重名4:函数可以通过函数名()来调用接下来我们来举个例子吧!
- python3学习笔记第一章(tools工具的安装)
一个人看小丸子
python
python3学习笔记(一)Tools(代码编辑器管理)https://www.jetbrains.com/toolbox-app/download/download-thanks.html?platform=windows修改路径文件默认安装的路径为C盘下,大约200兆左右,这一步移动默认位置直接剪切JetBrains文件夹下的所有文件到D盘或者其他盘符原路径C:\Users\zzsoft\Ap
- Python3学习笔记:清晰理解协程
码途有道
线程和进程在了解协程之前,我们先简单了解一下进程与线程,并发与并行的概念。进程:是资源分配的独立单位。我们可以将其通俗的理解为电脑中运行的程序的实例,例如打开一个浏览器就是启动了一个浏览器进程,打开一个记事本就是启动一个记事本进程。线程:是操作系统调度的基本执行单位。当我们启动了一个浏览器时(即启动了一个浏览器进程),我们可能会做播放视频、下载文件等操作。在浏览器进程中,我们执行的这些操作,我们可
- python3学习笔记--函数
谢懵逼
函数(function)定义函数:def函数名+":"参数多个参数(使用*arg)defprint_two(*args):arg1,arg2=args多个参数(函数名中定义)defprint_two_again(arg1,arg2):单个参数defprint_one(arg1):不传参defprint_none():定义函数的时候应检查调用函数的时候是否使用了函数名函数名是都紧接着(字符括号内是否
- python3学习笔记-变量、数据类型
谢懵逼
变量和字符变量要以字母开头使用round函数可以进行四舍五入字符串和文本‘’和”“都可以用来创建字符,不过一般单引号会用来创建简短的字符‘字符/字符串’+*+‘数字’->复制‘字符/字符串’几个‘数字’格式化字符串{变量}+字符串以f开头:将变量放到{}之中数据类型数据类型种类(6种)Number(数字)True=1False=0数值的除法(/)总是返回一个浮点数,要获取整数使//操作符在混合计算
- Python3学习笔记——列表(二)
equalsYU
对列表元素的操作1、增加元素1.1append()方法append()方法用于将元素添加到列表末尾。countries=['China','Japan','USA']countries.append('Germany')print(countries)输出为:['China','Japan','USA','Germany']1.2insert()方法insert()方法可以在列表的任意位置插入元素
- python3学习笔记1--TypeError: 'dict' object is not callable的解决
x_q_q
python对象
dict()是python的一个函数,但我又将dict自定义为一个python字典,在之后想调用dict()函数是会报出“TypeError:'dict'objectisnotcallable”的错误,只需将之前自定义的变量delete掉即可。del(dict)。
- Python3学习笔记20——collections
Darin2017
python基础collections模块
collections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:p=(1,2)但是,看到(1,2)很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派上了用场:fromcollectionsimportnamedtuplePoint=na
- Python3学习笔记
python
标准数据类型Python3中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Sets(集合)Dictionary(字典)Number(数字)Python3支持int、float、bool、complex(复数)。在Python3里,只有一种整数类型int,表示为长整型,没有python2中的Long。像大多数语言一样,数值类型的赋值和计算都是很直观
- 「Python3学习笔记」读书笔记—字节数组
Lovemma
生物都是由细胞构成的,但在我们普通人眼中,并不会将鸡、鸭、狗、鸟这些动物当作细胞看待,因为对待事物的角度决定了我们更关心生物的外在形状和行为,而不是它的组织构成。从计算机底层实现来说,所有的数据都是二进制字节序列。但为了更好地表达某个逻辑,计算机科学家们将数据抽象成不同的类型,犹如细胞和动物的关系。在编程语言中,对于字节序列,我们更关心的是它的存储和传输方式;而面向对象时,则着重于它的抽象属性。尽
- python3学习笔记
zzqsmile
久未温习,遂尽忘矣。从头学习python,泪奔!!!基础语法编码#-*-coding:utf-8-*-多行语句Python通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,例如:#!/usr/bin/envpython3#-*-coding:utf-8-*-a=1+\1+\1print(a)#----------------------------输出结果3[Fini
- 廖雪峰Python3学习笔记-IO编程
相关函数
本文是笔者学习廖雪峰Python3教程的笔记,在此感谢廖老师的教程让我们这些初学者能够一步一步的进行下去.如果读者想学习完成的教程,请访问廖雪峰Python3教程,笔记如有侵权,请告知删除...读文件以读文件的方式打开文件的做法是使用Python内置的open()函数,参数为文件名和标识符标识符:r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读
- Python3学习笔记 2
TomQ
查看帮助交互环境中:help(函数名)定义defmy_fun():注:无return语句最终返回None。returnNone同return空函数:defnop():passpass:什么都不做,又如:ifa>b:pass参数类型检查:defmyfun(x):ifnotisinstance(x,(int,float)):raiseTypeError('badoperandtypeformyfun'
- python3学习笔记
爱吃甜粽子
python3学习笔记基础语法编码标识符保留字注释行与缩进同一行显示多条语句输入输出import与from...import结构迭代器变量变量的声明变量的赋值查询变量所指的对象类型删除对象标准数据类型数字(Number)数值运算数学函数三角函数数学常量随机数函数字符串(String)字符串转移符号、格式化、f-string、内建函数等列表(List)python列表函数&方法元组(Tuple)集合
- Python3学习笔记-18(私有方法)
笑笑是一个码农
PythonPython3Python
私有方法__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用,不能在类地外部调用。例:#定义类classMyClass:#定义私有方法def__sum(self,a,b):total=a+bprint('私有方法')returntotal#定义公有方法defadd(self,a,b):total=a+bprint('这是公有方法')returntotal#定义
- python3学习笔记之五——将json数据写入excel表
joey_2018_
python3
#student4.json[{"student_no":1001,"name":"James","score":10,"class":"A-1","rank":1},{"student_no":1002,"name":"Tome","score":91,"class":"A-1","rank":2},{"student_no":1003,"name":"Jane","score":100,"cl
- Python3学习笔记15-迭代器与生成器
weixin_33709590
生成器如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。要创建一个generator,有很多种方法第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:L=[x*x
- 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