- python3ide_Python IDE Windows下载3.4.2 安装版
weixin_39636099
python3ide
Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。软件特点:很清楚,易读的语法较强的自省能力直观的面向对象自然的表达程序代码完整的模块化设计,支持分层
- python比较好用的ide_Windows下有哪些比较好用的Python IDE?
巴黎的左岸风
python比较好用的ide
https://www.toutiao.com/a6664531127702651150/这里介绍3个不错的Windows平台下的PythonIDE,分别是VSCode、VS2017和PyCharm,这3个软件使用起来都非常不错,而且都有免费版本,下面我简单介绍一下这3个软件,主要内容如下:VSCode这是一个免费、开源、跨平台的代码编辑器,微软的产品,严格意义上讲,这不是一个PythonIDE环
- 使用flv.js + websokect播放rtsp格式视频流
音视频开发老马
流媒体服务器Android音视频开发音视频开发ffmpeg开发语言flv流媒体服务器音视频开发
1.问题背景在最近的项目中,涉及到海康接入的视频播放的问题,海康这边获取到的视频流是rtsp格式,web端目前没有直接可以播放的组件,于是最开始是后端处理了视频流,返回hls格式的m3u8地址,这样用videojs插件就可以播放了,但是问题就是处理了的m3u8地址播放效果非常差,第一次加载时间较长,且播放过程中很卡,尤其是项目的界面做的是视频监控墙,不止一个视频,导致没办法看了。想着最好的方式还是
- 光猫和路由器配置VLAN看IPTV
王某某的笔记
路由器型号小米R2D路由器端口wan口编号:4lan口编号:023CPU端口:5参考资料https://openwrt.org/zh-cn/doc/uci/networkhttps://openwrt.org/docs/guide-user/network/vlan/switchhttps://openwrt.org/zh/docs/guide-user/network/vlan/switch_c
- MySQL添加用户、为用户分配权限
ChenyuMa
添加用户1.允许本地访问的用户(127.0.0.1)createuserzhrt@localhostidentifiedby'123456';2.允许外网IP访问的用户createuser'zhrt'@'%'identifiedby'123456';用户分配权限授予用户在本地服务器对该数据库的全部权限grantallprivilegesondbname.*tozhrt@localhostident
- flutter Sliver
CaptainRoy
Sliverimport'package:flutter/material.dart';voidmain()=>runApp(MyApp());classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){//TODO:implementbuildreturnMaterialApp(home:Scaffold(
- ffplay音视频同步分析
攻城狮百里
音视频音视频C++ffplay
ffplay默认也是采用的这种同步策略。主流程ffplay中将视频同步到音频的主要方案是,如果视频播放过快,则重复播放上一帧,以等待音频;如果视频播放过慢,则丢帧追赶音频。这一部分的逻辑实现在视频输出函数video_refresh中,分析代码前,我们先来回顾下这个函数的流程图:在这个流程中,“计算上一帧显示时长”这一步骤至关重要。先来看下代码:staticvoidvideo_refresh(voi
- easyCode 插件使用
天珩
今日所得轮子javamysqlmybatisintellijidea
easyCode插件介绍easyCode插件能够生成mapper.xml、mapper.java、service、serviceImpl、controller文件,避免手写;而且对比mybatisGenerator可以自动的把数据库的注释生成为字段的注释,可以方便的通过修改模板的方式控制生成的文件使用步骤一、使用idea连接上数据库连接有问题的,参考文章https://www.cnblogs.co
- WordPress website building technology service providers
podoor
wordpresswoocommerce
Top10WordPresswebsitebuildingcompaniesinChina,WordPresswebsitebuildingtechnologyserviceprovidersJianzhanpress.comWordPressThemeJianzhanisaplatformdedicatedtoWordPressthemedevelopment,providingavariety
- 插入排序(dart实现)
锦鲤跃龙
插入排序[toc]把数字插入合适的位置1.执行流程在执行过程中,插入排序会讲序列分为两部分头部是已经排好序的,尾部是待排序的从头开始扫描每一个元素每当扫描到一个原生,就将它插入到头部合适的位置,使得头部数据依然保持有序2.dart代码import'sort.dart';classInsertSort>extendsSort{@overridesort(){for(varbegin=1;begin0
- 【无标题】
真不爱学习
【乌卡时代】开发工具及技巧intellij-ideaidea
IntelliJIDEA的TODO功能:一个强大的代码注释工具IntelliJIDEA)IntelliJIDEAIntelliJIDEA是一款流行的Java集成开发环境(IDE),它提供了许多强大的功能,以帮助开发人员更高效地编写和调试代码。其中,TODO功能是其核心特性之一,它可以帮助开发人员在代码中标记出需要注意、尚未完成或需要进一步处理的部分。在IntelliJIDEA中,TODO是一种特殊
- IDEA 常用插件推荐,美观又实用!
攀小黑
intellij-ideajavaide
1、TONGYlLingma-YourAlCodingAssistant.Typeless,Codemore.通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云SDK/API的使用场景调优,为开发者带来高效、流畅的编码体验。兼容VisualStudioCode、Visua
- 鸿蒙(HarmonyOS)应用层开发知识点汇总
OH五星上将
移动开发鸿蒙开发HarmonyOSharmonyos鸿蒙开发移动开发分布式arkui组件化性能优化
由于不少粉丝朋友反馈,说网上的有些知识点记录的比较杂乱,学习起来很费时间!小编下面针对【鸿蒙】应用开发中的一些技术点做的整理归纳,希望下面的能够有效的帮助到大家:基础组件基础组件(text开发)基础组件(input开发)基础组件(button开发)基础组件(picker开发)基础组件(image开发)基础组件(image-animator开发)基础组件(rating开发)基础组件(slider开发
- 科学家的故事100个——学习优秀品质
拾光散人
《科学家的故事100个》,截取了104个科学家最精彩的一个故事汇编成一本书。每个故事都是一位科学家的故事,孩子们可以通过阅读了解他们,可以培养孩子们热爱科学,从科学家们的身上学习不同的优秀的品质,我觉得值得去一读再读。
- 微机原理第七周笔记
遥控老爷
5.7汇编语言程序设计举例汇编源程序的设计步骤分析问题,建立数学模型确定最佳算法合理分配存储单元和寄存器绘制流程图编写程序调试程序程序基本结构模块化设计方法✓“自顶向下,逐步细化”结构化编码方法✓顺序、分支、循环三种基本结构顺序程序设计指令指针IP值线性增加,IP=IP+1条件程序设计IP值受标志位的影响而跳变,影响标志的指令CMP、TEST、JXX循环程序设计IP值受计数器CX中的值不为零而循环
- AI绘画笔记
Denny#
AI作画笔记AIGCloraSDstablediffusion
最近学习怎么AI绘画,这里主要记录相关笔记:1工具工具主要用秋叶大神的工具:https://www.bilibili.com/video/BV1iM4y1y7oA/?spm_id_from=333.999.0.0&vd_source=b5b407651100ec703e082fd10b30caa7秋叶大神的空间:https://space.bilibili.com/12566101(小破站有较多假
- java mp3转m4a_轻松在你的Android App中转换音频文件,支持格式:WAV, AAC, MP3, M4A, WMA 和FLAC....
Kada Liao
javamp3转m4a
AndroidAudioConverterConvertaudiofilesinsideyourAndroidappeasily.ThisisawrapperofFFmpeg-Android-Javalib.Supportedformats:AACMP3M4AWMAWAVFLACLibsize:~9mbHowToUse1-AddthispermissionintoyourAndroidManife
- 在 LightDM 中配置用户名登录(即手动输入用户名而非显示用户列表)
小刘同学++
运维服务器linux
需要调整greeter的配置。以下是如何在LightDM中配置用户名登录的步骤:1.编辑配置文件:打开/etc/lightdm/lightdm.conf文件进行编辑(需要管理员权限)。2.设置greeter:在[Seat:*]部分添加或修改以下行:[Seat:*]greeter-hide-users=truegreeter-hide-users=true:这会隐藏登录界面上的用户列表,使用户必须手
- 1132.Cut Integer
pickpickmeup
题目描述CuttinganintegermeanstocutaKdigitsloneintegerZintotwointegersof(K/2)digitslongintegersAandB.Forexample,aftercuttingZ=167334,wehaveA=167andB=334.ItisinterestingtoseethatZcanbedevidedbytheproductofA
- 新建用户
qyfl
连接MySQL后使用createuser'userName'@'host'identifiedby'password'如果密码太简单,需要修改MySQL的策略,两条语句。setglobalvalidate_password_policy=0;setglobalvalidate_password_length=1;
- python字符串驻留机制_Python驻留机制
绝代小李
python字符串驻留机制
is和==先了解下官方文档中关于is和==的概念。is表示的是对象标示符(objectidentity),而==表示的是相等(equality);is的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样(相当于检查id(a)==id(b)),而==是用来检查两个对象引用的值是否相等(相当于检查a.eq(b));这点和Java有点类似,只不过Java中是用==来比较两个对象
- Java面试复习总结03
ok!ko
java面试开发语言
Java面试复习总结031、什么是SPI?2、SPI和API有什么区别?3、使用SPI机制的原因?4、SPI机制的优缺点?1、什么是SPI?SPI即ServiceProviderInterface,字面意思就是:“服务提供者的接口”,我的理解是:专门提供给服务提供者或者扩展框架功能的开发者去使用的一个接口。SPI将服务接口和具体的服务实现分离开来,将服务调用方和服务实现者解耦,能够提升程序的扩展性
- 【前端小技巧】不同组件中如何实现点击空白关闭自定义的弹窗
Luxine.
前端分享前端
直接上代码吧处理函数closest的参数是弹窗的类名consthandleClickOutside=(event:MouseEvent)=>{consttarget=event.targetasHTMLElement;if(!target.closest('.popUpClassName')){//控制弹窗显示隐藏的变量ispopup.value=false;}};绑定到document上docu
- 笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel与内核进程
TeYiToKu
X210嵌入式学习整理笔记汇编linux嵌入式硬件c语言单片机
kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head.text的段。内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kernel启动由bootloader进行构建
- 水风的ScalersTalk第四轮新概念朗读持续力训练Day 141 20190225
喵小园upup
练习材料Lesson23-1Oneman’smeatisanotherman’spoisonPeoplebecomequiteillogicalwhentheytrytodecidewhatcanbeeatenandwhatcannotbeeaten.IfyoulivedintheMediterranean,forinstance,youwouldconsideroctopusagreatdeli
- 2020-11-21
20行管2班14刘少佳
1.精读:逐字阅读文章很重要,不会的单词学会找基础词汇代替;英英词典用起来!视听说:听力多听几遍,听时做好笔记2.怦然心动的单词精读:confident确信的process步骤remarkably显著地rhythm节奏accustomed习惯于precise精确的obtain获得视听说:masculine,dark,blonde,survey,wonderful3.喜欢的话视听说:Itisimpo
- mysql怎么把utf8mb4_unicode_ci转为utf8mb4_general_ci
我是杨天
mysqlci/cdoracle数据库
数据库相关学习资料:https://edu.51cto.com/video/655.htmlMySQL字符集转换方案:从utf8mb4_unicode_ci到utf8mb4_general_ci在MySQL数据库中,字符集和排序规则对于数据的存储和检索具有重要影响。utf8mb4_unicode_ci和utf8mb4_general_ci是两种常见的utf8mb4字符集的排序规则。其中,utf8m
- the Winter Olympics
俗世尘沙
正文AbriefguidetoeverysportattheWinterOlympics冬奥会各运动项目简介Alpineskiing,11goldmedalsawarded高山滑雪,颁发11枚金牌加入会员可查看Thedisciplinesincludedownhill,thefastestevent;super-G,withmoreturnsadded;giantslalom,stillmoret
- 芯旺微,车规级32位MCU KF32A芯片简介
智驾
智驾域控芯旺微车规级MCUKF32A
文章目录1.产品功能特点2.行业应用3.开发环境(IDE)4.开发资源5.KungFu内核参考1.产品功能特点2.行业应用汽车照明汽车车窗控制汽车空调面板汽车控制器3.开发环境(IDE)
- streamlit如何布局
openwin_top
pythonstreamlitweb数据分析
作为streamlit的重度用户,不会布局,写出来的程序总觉的有些憋手.虽然功能不影响,但使用起来就是有些不爽.下面是几种布局方式的介绍举例.st.sidebar侧边栏侧边栏可以调整大小!拖动并放下侧边栏的右边界以调整其大小!#"with"notationwithst.sidebar:st.[element_name]importstreamlitasst#Usingobjectnotationa
- 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