- python学习笔记(汇总)
朕的剑还未配妥
python学习笔记整理python学习开发语言
文章目录一.基础知识二.python中的数据类型三.运算符四.程序的控制结构五.列表六.字典七.元组八.集合九.字符串十.函数十一.解决bug一.基础知识print函数字符串要加引号,数字可不加引号,如print(123.4)print('小谢')print("洛天依")还可输入表达式,如print(1+3)如果使用三引号,print打印的内容可不在同一行print("line1line2line
- Python学习——Django模型——表关系
关系型数据库最强大之处在于“关系”,表和表之间是有关联的,表之间的关系有一对一,一对多,多对多。1.1一对一学生和档案之间属于一对一,学生表和档案表就是一对一关系,学生表是主表,档案表是从表。从表中有一个外键和学生表关联,并且要求外键取值唯一,对应关键字为:OneToOneField#创建模型classStudent(models.Model):sno=models.CharField(max_l
- Go实战(三)-数组array、切片slice语法详解
2401_87198334
golang开发语言后端
为何使用range意义明确,美观C++:没有类似能力Java/Python:只能foreachvalue,不能同时获取i,V访问越界如果下标在数组合法范围之外,则触发访问越界,会panic1.3数组是值类型赋值和传参会复制整个数组,而非指针。因此改变副本的值,不会改变本身的值。[10]int和[20]int是不同类型调用funcf(arr[10]int)会拷贝数组,支持“==”、“!=”操作符,因
- python性能检测工具函数运行内存及运行时间
程序员Baby~
python软件测试程序员接口测试自动化测试测试工程师
前言:python虽然是一门'慢语言',但是也有着比较多的性能检测工具来帮助我们优化程序的运行效率。这里总结了五个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。首先,来编写一个基础的python函数用于在后面的各种性能测试。123defbase_func():forninrange(10000):print('当前n的值是:{}'.format(n))1、memory_
- python学习(六)字典
August________
字典学习如何访问和修改字典中的信息学习如何遍历字典中的数据学习储存字典的列表,存储列表中的字典和存储字典中的字典。理解字典,可以更准确的为各种真实物体建模。一个简单的字典alien_0={'color':'green','points':5}print(alien_0['color'])print(alien_0['points'])green5使用字典字典就是一系列的键-值对,每个键都有一个值相
- Redis - ZSet数据结构与滑动窗口应用
Redis的ZSET(有序集合)是一种结合了哈希表和跳跃表(SkipList)的混合数据结构,既能实现O(1)复杂度的成员存在性判断,又能以O(logN)复杂度维护有序性。RedisZSET数据存储机制ZSET有两种实现机制:SkipList+HashTable数据实际上是同时存在于两个数据结构中的跳表(SkipList)按score排序存储member支持范围查询(ZRANGE等命令)维护成员的
- 关于飞行-飞机的导航03_VOR/DME导航
心已远_Ma_Vie
VOR的中文意思是甚高频全向无线电信标,它的英文全称是VeryhighfrequencyOmmi-directionalRange。VOR信号发射机和接收机的工作频率在108.0-117.95MHz之间。VOR台站发射机发送的信号有两个:一个是相位固定的基准信号;另一个信号的相位是变化的,同时象灯塔的旋转探照灯一样向360度的每一个角度发射,而向各个角度发射的信号的相位都是不同的,它们与基准信号的
- 优化Linux高并发:文件描述符与端口范围的协同调优
算法小生Đ
精选实践linux运维服务器
既然已经通过调整nofile(最大文件描述符数量)来支持高并发,为什么还需要调整net.ipv4.ip_local_port_range(本地端口范围)?这两个参数看似都与高并发有关,但它们的作用和影响范围不同。1.文件描述符和端口范围的区别要弄清楚为什么需要同时调整nofile和net.ipv4.ip_local_port_range,我们先来看它们的定义和作用:1.1文件描述符(nofile)
- 【CSS3】 结构性伪类选择器—root
badlyForPapers
:root选择器,从字面上我们就可以很清楚的理解是根选择器,他的意思就是匹配元素E所在文档的根元素。在HTML文档中,根元素始终是。示例演示:通过“:root”选择器设置背景颜色HTML代码::root选择器的演示CSS代码::root{background:orange;}演示结果:“:root”选择器等同于元素,简单点说::root{background:orange}html{backgro
- 反向波动策略思路
量化金策
量化交易策略思路python编辑器开发语言
反向波动策略是一种自动化交易系统,综合考虑市场进入、退出及反向操作机制,捕捉市场趋势并管理风险。该策略的核心逻辑包括设定买卖点位、动态调整头寸方向、设定利润目标和止损点,以及利用TrueRange决定订单价格。策略还具备反向操作能力,提高灵活性以适应市场趋势变化。此外,策略还包括一套标准退出机制,为市场出现快速不利变动时提供额外保护层。最终的精简版本策略优化了入市时机,确保及时参与市场,并强化风险
- 数据挖掘实战-基于随机森林算法的空气质量污染预测模型
艾派森
数据挖掘实战合集信息可视化人工智能python数据挖掘随机森林
♂️个人主页:@艾派森的个人主页✍作者简介:Python学习者希望大家多多支持,我们一起进步!如果文章对你有帮助的话,欢迎评论点赞收藏加关注+目录1.项目背景2.数据集介绍3.技术工具4.实验过程
- Python学习之旅:进阶阶段(六)数据结构-有序字典(collections.OrderedDict)
在Python编程的进阶学习中,数据结构的选择和运用十分关键。今天,我们要探讨的是有序字典collections.OrderedDict,它是Python标准库collections模块中的一个特殊数据类型,能够让我们在处理字典时保持元素的插入顺序,这在很多场景下都有着独特的优势。下面,让我们一起深入了解有序字典。一、什么是有序字典 在Python中,普通字典dict是一种无序的数据结构,它
- Python 数据科学与可视化工具箱 (一) - 数组创建:array(), arange(), zeros(), ones(), linspace()
文章目录1.为什么需要NumPy数组创建函数?2.核心数组创建函数详解2.1`np.array()`:从现有数据创建数组2.2`np.arange()`:创建等差序列2.3`np.zeros()`:创建全零数组2.4`np.ones()`:创建全一数组2.5`np.linspace()`:创建等间隔序列3.其他常用数组创建函数(简要提及)总结练习题练习题答案创作不易,请各位看官顺手点点关注,不胜感
- 45. leetcode 504. Base 7
504.Base7Givenaninteger,returnitsbase7stringrepresentation.Example1:Input:100Output:"202"Example2:Input:-7Output:"-10"Note:Theinputwillbeinrangeof[-1e7,1e7].思路:辗转相除法。转载于:https://www.cnblogs.com/vincen
- Pytorch自定义优化器最佳实践
在PyTorch中,自定义优化器需要遵循特定的规范以兼容PyTorch的训练流程。下面从核心方法、closure的作用,到Ranger优化器的实现,逐步展开说明。一、PyTorch自定义优化器的必要方法自定义优化器必须继承torch.optim.Optimizer,并实现以下核心方法:init(self,params,defaults)作用:初始化优化器,定义超参数(如学习率、动量等),并为参数组
- vben-admin 时间/日期选择器年-季-月
CDwenhuohuo
前端javascripthtml
DatePicker日期选择器RangePicker偏向于时间选择器--------------------------------------------------------------季度{field:'startDatetime',label:'出库日期',component:'DatePicker',colProps:{span:8},componentProps:{picker:'q
- python学习DAY12打卡
星仔编程
python学习打卡学习
启发式算法超参数调整专题2三种启发式算法的示例代码:遗传算法、粒子群算法、退火算法学习优化算法的思路(避免浪费无效时间)今天以自由探索的思路为主,尝试检索资料、视频、文档,用尽可能简短但是清晰的语言看是否能说清楚这三种算法每种算法的实现逻辑,帮助更深入的理解。启发式算法(HeuristicAlgorithm)是一种“经验法则”式的求解方法,用近似、快速、可接受的策略,在合理时间内找到问题的“足够好
- python学习DAY4打卡
星仔编程
python学习打卡学习
DAY4缺失值的处理题目:初识pandas库与缺失数据的补全pandas是Python里一个强大且广泛使用的开源数据分析与处理库按照示例代码的要求,去尝试补全信贷数据集中的数值型缺失值打开数据(csv文件、excel文件)查看数据(尺寸信息、查看列名等方法)查看空值众数、中位数填补空值利用循环补全所有列的空值完成后在py文件中独立完成一遍,并且利用debugger工具来查看属性(不借助函数显式查看
- python学习DAY1打卡
星仔编程
python
DAY1变量与格式化字符串今天学习的知识点:1.变量的命名和定义2.学习Trae字节编译器的使用,很方便3.debug工具的使用(pycharm和vscode)4.print函数题目一:变量的认识题目:定义三个变量a,b,c,并分别将整数1,2,3赋值给它们。然后,使用print()函数将每个变量的值单独打印出来,每个值占一行。输入:无输出:123答案:a=1b=2c=3print(a)print
- python学习Day5打卡
WYH49
学习
day5离散特征的独热编码先按照示例代码过一遍,然后完成下列题目现在在py文件中一次性处理data数据中所有的连续变量和离散变量1.读取data数据importpandasaspddata=pd.read_csv(r"C:\Users\LENOVO\Desktop\daim\data.csv")fordesribe_featuresindata.columns:ifdata[desribe_fea
- python学习DAY22打卡
星仔编程
python学习打卡学习
作业:自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码kaggle泰坦尼克号人员生还预测importwarningswarnings.filterwarnings("ignore")#忽略警告信息#数据处理清洗包importpandasaspdimportnumpyasnpimportrandomasrnd#可视化包importseabornassnsimportmatp
- C++枚举:enum与enum class
qq_38196982
C++
1.enumC++中enum提供了另一种创建符号常量的方法,这种方式可以替代const。enum也允许定义新类型,使用enum的语法与使用结构相似。如对下述示例:enumcolor{red,orange,yellow,black};有2个含义:1)color称为新类型的名称,color被称为枚举,如同struct被称为结构体一个道理2)red,orange,yellow,black等为符号常量,默
- python学习心得
lzzy_cgy_20246030833
python开发语言
我的Python学习之旅:从入门到实践在当今这个技术日新月异的时代,编程已成为一项不可或缺的技能。我选择Python作为我的编程语言,因为它简洁、高效且功能强大。以下是我在Python学习过程中的一些心得体会。初识Python:简洁之美Python的语法简洁明了,非常适合初学者。我被它的简洁性所吸引,它让我能够快速上手,而不需要深陷复杂的语法细节。Python的这种简洁性不仅体现在代码的编写上,更
- LeetCode | 0994. Rotting Oranges腐烂的橘子【Python】
Wonz
LeetCode0994.RottingOranges腐烂的橘子【Easy】【Python】【BFS】ProblemLeetCodeInagivengrid,eachcellcanhaveoneofthreevalues:thevalue0representinganemptycell;thevalue1representingafreshorange;thevalue2representinga
- Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
我命由我12345
Kotlin-极简小抄kotlinlistwindows开发语言java-eejavajvm
一、List概述List是一个不可变的有序集合,一旦创建就不能修改其内容,即不能添加、删除、更改元素List提供了丰富的操作函数来处理数据二、创建List1、基础创建通过listOf函数创建(推荐)//创建一个List,包含3个元素valfruitList=listOf("Apple","Banana","Orange")println("fruitList:$fruitList")#输出结果fr
- 二分查找:区间内查询数字的频率
nako_sayuri
算法数据结构
请你设计一个数据结构,它能求出给定子数组内一个给定值的频率。子数组中一个值的频率指的是这个子数组中这个值的出现次数。请你实现RangeFreqQuery类:RangeFreqQuery(int[]arr)用下标从0开始的整数数组arr构造一个类的实例。intquery(intleft,intright,intvalue)返回子数组arr[left...right]中value的频率。一个子数组指的
- 【leetcode】169、Majority Element
潇湘demi
翻译找出多数,出现>n/2次的元素。思路Moorevotingalgorithm--每找出两个不同的element,就成对删除即count--,最终剩下的一定就是所求的(多数的元素>n/2)。时间复杂度:O(n)a=["a","c","b","c","a","a","a"]deffind_majory_number(a):count=0foriinrange(len(a)):ifcount==0:
- 搞定leetcode面试经典150题之区间
系列博客目录文章目录系列博客目录228.汇总区间56合并区间57.插入区间452.用最少数量的箭引爆气球228.汇总区间链接自己的思路:先排序,然后设置number来知道连续的子区间有几个数字方便后续处理。如果当前数字和前面数字不连续,就把前面数字根据number做处理。classSolution{publicListsummaryRanges(int[]nums){Liststrings=new
- Python中的循环
久未放晴的天空@
python开发语言
目录for循环while循环break与continue循环与else一、for循环for循环用于迭代可迭代对象(如列表、字符串、字典等),语法如下:for变量in可迭代对象:#循环体示例:遍历列表并打印每个元素fruits=["apple","banana","cherry"]forfruitinfruits:print(fruit)range()函数常与for循环结合使用,生成数字序列:for
- python常见语法总结-打印函数
程正发
python开发语言
1.\n换行print(’‘)打印函数print('\n'.join(['\t'.join([f"{j}×{i}={i*j}"forjinrange(1,i+1)])foriinrange(1,10)]))Python打印函数用法详解1.基本打印python复制print("Hello,World!")输出:复制Hello,World!2.打印多个变量(默认用空格分隔)python复制name="
- 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