program language
千淘万漉
凡事思一个所以然,自有义理贯通之日
展开
-
classB借助classA修改自己的成员变量
B通过调用A成员方法改变B自身的成员变量B要持有A的引用当B想要借助A中的成员方法修改B中的成员变量时,就把B对象名传递给A原创 2016-11-14 22:39:15 · 394 阅读 · 0 评论 -
python通过配置文件连接mysql
之前在python中连接mysql是直接在python文件中写的,这次把数据库信息放在单独一个配置文件中这是linux环境下下面列出了select update insert 语句#!/bin/env python#-*-coding:utf-8-*-import sysimport MySQLdb import jsonimport timeimport os原创 2017-08-04 11:25:53 · 5007 阅读 · 0 评论 -
c语言中变量的引用传递和指针
掌握了引用型变量和指针,才能深入掌握面向过程的函数调用机制。引用型变量存储的是变量的地址,指针存储的也是变量的地址,所以本质上来说二者是一样的。使用引用型变量,子函数中所有的操作会直接修改主函数中的实参,鼓励使用引用型变量。编程的本质不就是改变量么?通过引用型变量和指针型变量可以让子函数直接改主函数中的变量,而不再需要为形参开辟内存。//如果子函数在主函数下面,一定要先声明原创 2017-08-02 19:25:15 · 26103 阅读 · 5 评论 -
什么情况下使用指针的引用(指针)
在函数调用时用指针或者引用做参数,表示把变量的地址传递给子函数,但是子函数只能修改指针所指变量的值,并不能修改指针的指向。如果想用修改指针的指向,就要用指针的指针,或者指针的引用。大部分情况下,用指针和引用做参数,只是想要修改指针所指变量的值,并没有想修改指针的指向。但是如果指针所指的这块内存在调用子函数结束之后发生了改变,那就要用指针的引用或者指针的指原创 2017-08-24 23:01:39 · 8415 阅读 · 4 评论 -
Java集合---ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅...转载 2018-05-17 11:43:44 · 111 阅读 · 0 评论 -
fastjson对JSONObject中的指定字段重新赋值
JSONObject对同一个key重新put时,新值就会取代旧值,没有set之类的方法构建json string时,所有的引号都要转义package xx; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject; // 对JSONObject中的指定字段重新赋值public class testJ...原创 2018-06-29 13:30:36 · 36833 阅读 · 0 评论 -
如果用|做split的分隔符,一定要进行转义
如果用|做split的分隔符,一定要进行转义 2018-06-27 16:11:08 0 0 0story:今天遇到如下一个需求,用|做分隔符一直不能取出正确结果,虽然很简单,但还是记一下用逗号分隔不用转义如果用|做split的分隔符,一定要进行转义如果用|做分隔符,[0]取出来是234.7的2[1]取出来是234.7的3下面这样是可以的...原创 2018-06-27 16:14:19 · 3753 阅读 · 0 评论 -
在map中添加数组和List
原创 2018-06-27 16:15:22 · 24354 阅读 · 1 评论 -
项目中解析JSONObject遇到的一个问题-value是JSONArray嵌套JSONArrray
项目中有如下一个JSONObject, 如何取出“20180612”项目中用的alibaba的fastjson项目中取的方法如下所示然后我就试图自己构造这个dataSet,构造完之后就开始取date下图中倒数第二行可以取出来,但是照着上面的方法写,也就是倒数第一行所示JSONArray arr0 = result.getJSONArray(0);这行代码会意外中断好一会我都意识不到最后一行代码...原创 2018-06-27 19:17:48 · 5251 阅读 · 0 评论 -
从druid中查出的结果集根据不同筛选条件进行修正
需求如下由于运营人员将分成比例设为0,导致publisherId=10714; media_id=2454; posid=2454105在[20180612,20180619]之间的estimated earnings数据为0ecmp是千次展现的预估费用,公式是用estimated earnings除以impressions,再除以1000所以修正主要是在过滤条件或者选择维度满足条件时做修正,因为...原创 2018-07-05 00:48:59 · 1427 阅读 · 0 评论 -
为什么用下标遍历容器如此有用
在python和Java中都能不通过下标直接遍历容器比如java中:for(int var : arr) print var比如python中:for var in list: print var但很快你就会发现这种遍历方式只适用于逐个取出元素,或者按顺序逐个操作元素(比如每个元素加1)如果元素值和下标之间有对应关系时,比原创 2017-08-10 17:17:16 · 422 阅读 · 0 评论 -
JSON.parse和eval的区别
前者只是将json格式的字符串转化成json对象而后者是将字符串当作是js的代码来执行。eval的使用范围更广,不过效率不高。如果json字符串中有恶意脚本函数,eval函数不仅会将json字符串解析成js对象,还会执行这些恶意函数。另外使用JSON.parse()解析json字符串更快。 服务器传给浏览器的都是json字符串,如果想用在js中使用,必须要先原创 2017-05-31 14:16:23 · 493 阅读 · 0 评论 -
求两个list的差集
求两个list的差集应用场景:从excel读取了整个数据集,希望随机选取20%做测试集,其余的80%做训练集转成set求差集的方式虽然写法简单,但会将list_all中的重复元素去掉,如果要保留重复元素,就要用列表推导式。# -*- coding: utf-8 -*-import random# 求两个list的差集,这两个list中都没有重复元素# 在range(1原创 2017-05-29 21:33:19 · 4513 阅读 · 0 评论 -
通过子函数调用创建链表的三种方式
创建链表的三种方式:1.在子函数中定义头结点并为头结点开辟空间,将新的数据结点链接在头结点之后,最后返回头结点指针。2.在主函数中定义头结点并为头结点开辟空间,此时头结点已经创建好,只需要将头结点指针传给子函数即可,子函数调用结束后长长的链表自然就被创建好了。3.只在主函数中定义头结点,但并不开辟空间,此时头结点指针还没有被赋予初值,将头指针的的引用传给子函数,子函数为头结点开辟空间之后,自然原创 2016-11-16 16:12:46 · 8085 阅读 · 1 评论 -
如何定义结构体指针
// 想要定义结构体类型的指针一定要用typedef// 写法1typedef struct node{ int value; node* next;}*nodePtr;nodePtr head = new node();node* head1 = new node();// 两种写法等价原创 2016-11-16 20:00:36 · 3011 阅读 · 0 评论 -
FutureTask和线程池的结合使用
使用FutureTask可以提高并行度第一:主函数不再需要等待FutureTask任务执行完成 第二:任务1需要3秒,任务2需要5秒,串行执行需要8秒,但是使用FutureTask后只需要5秒,即多个FutureTask之间可以并行执行原创 2016-12-02 22:44:09 · 4822 阅读 · 1 评论 -
使用有界队列的线程池使用DiscardOldestPolicy拒绝策略
如果使用无界队列很简单,开启核心线程数,多余的全部阻塞直到内存耗尽。如果使用有界队列,要清楚工作流程:* 若有新的任务需要执行,如果线程池实际线程数小于corePoolSize,则优先创建线程,* 若大于corePoolSize,则会将任务加入队列,* 若队列已满,则在总线程数不大于maximumPoolSize的前提下,创建新的线程,* 若线程数大于maximumPoolSize,则执行拒绝策略原创 2016-12-02 22:51:26 · 7216 阅读 · 1 评论 -
关于多态的用法测试
关于多态的用法在容器的泛型中使用父类或接口,完成多态匹配在遍历容器的方法中使用父类或接口作为参数,完成多态匹配原创 2017-01-16 17:03:04 · 671 阅读 · 0 评论 -
用python做正弦信号的时域波形和频谱图
用python中的 numpy.fft 完成正弦波形的傅里叶变换并作出时域图和频谱图。转载 2017-03-09 18:05:03 · 14490 阅读 · 0 评论 -
生产者消费者模型(使用lock.condition进行分组唤醒)
使用concurrent包完成生产者消费者模型,使用lock.condition进行分组唤醒,摒弃synchonized中的sinalAll(),代码如下:import java.util.Queue;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.locks.Condition;impor原创 2017-05-24 23:19:46 · 657 阅读 · 0 评论 -
几种云笔记插入代码的使用体验对比
一个好的IDE要具备哪些品质?换行缩进关键词高亮自动补全其中最重要的就是换行缩进,像sublime, notepad, editplus 这些文本编辑器都具备这些功能,我想这就是人们不爱用txt最重要的一个原因。哪家有道云笔记的插入代码功能最强大?leanote换行自动缩进和关键词高亮都具备,这样在蚂蚁笔记中就可以直接很方原创 2017-05-13 01:34:34 · 30590 阅读 · 0 评论 -
python读写excel
python读写excel要导入xlrd xlwt包注意下面几点:1.一般第0行是属性名,所以真正的数据是从第一行开始读的,写数据时也是这样,但是python中用的list遍历一定是从0开始的。2.在处理excel时如果能读一行,处理一行,写一行,就尽量采用这种方式,for row in range(0, nrows): 在这个循环下,从excel1读入一行,然后计算,然后直接写到ex原创 2017-05-27 16:28:00 · 1175 阅读 · 0 评论 -
application.conf和application.properties的区别
.conf 需要加 “”.properties 不需要“”import java.util.Propertiesimport java.io.FileInputStream//test.properties 里的内容为"ddd=5.6,1.2" def loadProperties():Unit = { val properties = new Prope...原创 2019-03-01 16:35:48 · 930 阅读 · 0 评论