付威 付威的网络博客

Python的学习笔记--枚举

枚举 在python中,枚举使用Enum模块。 具体使用如下: from enum import Enum Week=Enum("Week",('Mon','Tue','Wen','Thu','Fri','Sta','Sun')) 在枚举中可以自动为下面的变量赋值,我们可以使用迭代把数据显示出来: from enum import Enum Week=Enum("Week",...

Python的学习笔记--面向对象编程

模块 随着项目增大,功能越来越复杂,为了提高代码的复用性和降低功能间的耦合,提出了模块的概念。 python中有很多的模块,使用时候直接用import导入对应的包就可以使用。 import sys 这样就导入了一个sys模块,我们可以在代码中直接使用: import sys def func(): print (sys.argv) func() 打印结果是当前的文件所...

Python的学习笔记--装饰器

python的函数也属于一个对象,可以有一个变量来代替,例如前面说过的一个例子: f=abs print(f(-10)) 如果我们在不改变原来函数的前提下,想扩展一个函数的功能。可以重新定义一个函数,把要原函数作为参数传递给增强函数,在调用函数前执行一些动作。 def revert(a): return abs(a) def new_func(func): pri...

Python的学习笔记--函数式编程

函数式编程 主要思想是把运算过程尽量写成一系列嵌套的函数调用,不严谨的说:可以把函数的引用传递给变量。例如: >>> abs(-10) 10 >>> f=abs >>> f(-10) 10 f就引用了abs函数的地址。 可以把函数当成参数传递给另一个函数: def add(x,y,f): retur...

Python的学习笔记--函数

函数的定义 python使用def来定义 def print_str(x): print (x) 调用print_str("12") 打印12 默认参数 python支持默认参数。 def print_str(x,y="end"): print (x,y) 调用print_str("12"),不传递y参数 打印12 end 调用print_s...

Python的学习笔记--高级特性

数组的切片 定义一个数组 arr=list(range(100)) 数组取前3个元素 arr[0:3],0可以省略,arr[:3],打印结果:[0,1,2] 数组取后面三个元素: arr[-3:0],也可写为:arr[-3:],打印结果:[97,98,99] 数组取后面三个元素: arr[97:],是跳过前97个数字,打印结果:[97,98,99] ...

MarkDown插入数学公式

最近想学下数学方面的东西,但发现公式的插入是比较头疼的事情。在Markdown的环境下,有一个latex数学公式官网的写法,用起来很是强大,只要引入下面的js就可以。 <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async&g...

Python的学习笔记---dict和set

dict类型的使用 在python有一个dict类型,存储格式是key:value的形式,在其他语言有的成为map和Dictionary. >>> dict={"a":1,"b":3} >>> dict["a"] 1 由于dict是根据key查询数据,所以查询的效率比list要高出不少。 取值的时候,key如果不存在则会报异常。所以为了更安全的使用...

java特殊字符串分隔

首先看一段代码: String[] splitArr = "1|23242|3|4".split("|"); for (String s : splitArr) { System.out.println(s); } 输出结果是: 1 | 2 3 2 4 2 | 3 | 4 在java中有三个特殊字符:.,\,|,这几个字符分割的时候,需要用\\进行转义. 正确的代码如下...

Python的学习笔记---list和tuple

今天学习了python的list和tuple的使用,python中的数组类型的结构比其他语言更为灵活,下面我们说说他们的用法: list使用 定义一个list >>> arr=[1,2,3,4,5,6] >>> arr [1, 2, 3, 4, 5, 6] arr就是定义的数组,使用索引来获得数组里面的数据如:...

deepin系统中idea乱码

deepin中idea乱码 在deepin中使用idea中文乱码,是缺少字体的原因,所以需要安装字体: aptitude search uming 如果正确安装会显示如下信息: 如果没有正确安装,使用下面命令安装: aptitude install fonts-arphic-uming 安装完成后重启下idea就可以了。

jstack发现多线程死锁

在多线程的使用中,有时会碰到死锁,死锁会造成应用程序阻塞,浪费系统资源。下面探讨如何发现和解决死锁: 产生死锁 首先先写一段能够产生死锁的代码: private static Object lock1=new Object(); private static Object lock2=new Object(); public static void main(String[] args...

写了一个无聊的小游戏--无聊碰碰球

实现功能点 小球出生有一个等级和收入 小球每次随机获得一个目标点,在一定的时间范围内,然后移动到目标点,超时和到达则重新获取目标点。 小球在移动的过程中,碰到相同的size的球,会自动融合,成为一个新的球,size和gain是原来的两倍。 利用本地的存储对数据进行存储和恢复,利用平均收益和离线时间,计算离线收益。 增加出生速度,运动速度的属性的时候都需要对应的收益,玩...

ES中nest join

nested 类型是一个特殊object数据类型,允许数组的object的字段可以被独立的查询出来。 数据类型是如何被封装的 在lucene中没有嵌套object的概念,所以ES的用一个简单的数据数据列表来表示一个复杂的层次数据实体,例如一个博客和评论的实体: PUT nesttest/_doc { "blog_title": "开篇-es的nest的使用", "blo...

newFixedThreadPool线程池导致线程泄漏

现象问题 最近看到线上的项目线程数过大的报警,开始还是不知道什么原因,因为很多项目都使用同样的线程池管理代码,认为那个项目是偶然的因素造成的,后来经过分析,发现线程数每天都在增加。其他的项目由于发布导致线程会从零开始计算,所以没有那么快达到报警值。 触发报警的代码大概如下: boolean start=true; public void doSomeThing(){ Execu...

ES 中join的使用

引出问题 在mysql中,可以使用join来实现表与表之间的数据连接,在es中如何实现这个问题? 相对于mysql来说,es有几个不同的地方 不支持跨index的join 一个index只能包含一个类型 分布式的存储方式,对于数据的搜寻造成障碍 对于上面的几个问题,es的解决方案是**在一个索引下,借助父子关系,实现类似Mysql中多表关联的操作** 定义类型和jo...