- 博客(57)
- 资源 (2)
- 收藏
- 关注
原创 《科学:无尽的前沿》笔记
开拓精神仍旧在这片国土上激荡。开拓者掌握着完成任务的工具,而科学则为开拓者提供了大片尚未被充分开发的腹地。这样的探索对国家和个人都大有裨益。无论是对保证我们国家的安全、保障民众的健康,还是对创造更多的工作岗位、提高生活水平以及实现文化进步而言,科学都是其中至关重要的一环。–1944年,罗斯福总统向范内瓦·布什征询关于战后科学研究的发展战略。1945年,布什向当时的总统杜鲁门正式提交报告《科学:无尽的前沿》。这份报告倡导政府推动和支持科学研究,尤其是基础研究,并呼吁成立一个能得到充分拨款的新型独立国.
2021-10-17 21:07:04
804
原创 windows下开启多个redis实例以及单个实例下开启多个数据库
问题描述在windows系统下,开启多个redis实例(占据不同端口),每个实例下开启1024个数据库(默认是16个)redis下载地址redis for windows 下载地址:https://github.com/MicrosoftArchive/redis/releases;我下的是zip包,下面的方法适用于zip包,不确定是否适用于msi安装的redis。步骤1、复制多个redis:复制你的redis文件夹,要几个redis实例就复制几分,建议重命名为redis+端口号,这样容易区分,
2020-09-24 21:28:12
848
1
原创 PowerMockito模拟Thread.sleep()时抛出中断异常的场景
想要在单元测试时,模拟Thread.sleep()时抛出中断异常的行为,但是仅使用PowerMockito.mockStatic(Thread.class)是不够的,具体代码如下:要测试的方法getResult:public class Weekend { public void getResult() throws InterruptedException { try { Thread.sleep(2000); } catch(Inte
2020-07-19 21:00:35
4290
1
原创 java优先队列PriorityQueue中Comparator的用法
在使用java的优先队列PriorityQueue的时候,会看到这样的用法。PriorityQueue<Integer> queue = new PriorityQueue<Integer>(new Comparator<Integer>(){ @Override public int compare(Integer o1, Integer o2){ ...
2020-02-22 01:10:08
8111
1
原创 从输入url到浏览器显示页面的过程
半学半猜,大胆整理一下,有误请指出。客户端,浏览器中输入www.baidu.com1、通过DNS查询域名对应IP2、通过TCP与对方IP建立连接(3次握手)3、发送http请求报文http_data = http_head + datatcp_data = tcp_head + http_dataip_data = ip_head + tcp_data4、封装好的报文通过数据链...
2020-02-13 22:08:09
350
翻译 高德纳2019十大战略科技趋势 - Gartner Top 10 Strategic Technology Trends for 2019
根据Garnter官网发布的2019年十大科技趋势摘要。
2019-07-08 17:30:51
2720
原创 基于区块链的去中心化存储(区块链存储)的工作流程
引入个人电脑上存储有限,而且如果硬盘损坏数据会丢失不容易恢复.因此很多人愿意把数据上传到云盘里,也就是云存储.但是云存储是服务提供商控制的,我们称为中心化的存储 ,人们对这种模式的担忧在于:数据对企业是可见的,可能会有的企业拿用户的数据去做数据分析等侵犯用户隐私权的事情.因此,为了更好地保护用户隐私,不被单一的企业控制数据,去中心化的存储需求出现了.最早的去中心化存储是利用P2P实现的,每个人...
2019-05-09 17:28:50
3681
原创 基于投影的图像文字分割 - python
环境python 3.6 python-opencv 3.4.0思路对图片进行水平方向投影,得到每一行文字的起止线 对每一行文字进行竖直方向投影,若有连续的像素满足条件,则为一个字,进行分割代码import cv2import numpy as nppath = 'd:\\testdata\\test\\bin1.png'root = 'd:\\testdat...
2018-04-16 12:59:38
7513
6
原创 利用python-opencv 进行图像的二值化处理
准备工作1、环境:Python3.62、安装opencv: 命令行输入 pip install python-opencv 直接安装 若无pip命令,则将python下的Script目录加入环境变量,或者直接再该文件夹下运行命令。代码import cv2 #导入cv2包path = 'd:\\testdata\\test\\test1.jpg' #图片路...
2018-04-14 22:45:30
3336
原创 Mybatis 传递参数和模糊查询
传递参数Mybatis有两种传递变量的方式,一种是#,一种是$,以#为例。Java代码 public String getValue(@Param("value")String val)XML文件 select * from tableName where value = #{value}模糊查询相应的模糊查询方式也有两种: - CONCAT(CONCAT(‘%’, #{value})
2018-01-02 21:00:50
3306
原创 机器学习笔记 - 奥卡姆剃刀和没有免费的午餐理论
保研之后,时间整个人都放松了,节奏很慢,懒散了几天。还是决定要学点东西,之前学过机器学习课程,但是没有认真听,这段时间刚好可以看看,做做笔记。教材是周志华老师的《机器学习》。一、奥卡姆剃刀(Occam’s razor) 奥卡姆剃刀原则主张选择与经验观察一致的最简单假设,是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一直,则选最简单的那个”。 举个例子。假如有一些连续点,可以用二
2017-10-20 23:57:15
2932
原创 使用python的turtle库画图
引、想要使用python作画吗? 那就用turtle库吧,使用它可以在屏幕的画板上绘制出各种图像。操控这只turtle(海龟)在屏幕上爬行,根据坐标定位,沿途的足迹,就是你想要的图像。一、使用方法:1、引入方式(两种):import turtle #导入turtle库,使用时通过turtle.function调用from turtle import * #导入turtle库中所有方法,直接通过f
2017-10-10 23:12:55
6512
2
原创 Java线程池的分析和使用
最近想了解一下Java线程池的相关知识,到Effective Java上和一篇博客,《深入理解Java之线程池》 — http://www.importnew.com/19011.html,看完受益良多,写一篇博客做一下笔记。通常来说,我们需要使用线程的时候,就会创建一个Runnable或者xxxThread,然后执行。而在并发编程中,如果有多个线程工作,并且每个线程工作时间很短,那么频繁的创建和销
2017-07-15 19:22:30
431
原创 设计模式学习笔记 - 观察者模式
一、介绍观察者模式,也称为发布-订阅模式。通俗来说,就是定义一个关于观察者和被观察对象的依赖关系,使得当对象状态发生改变时,观察者会得知这一变化。区别于传统的轮询方式。观察者可以称为订阅者,被观察对象可以称为发布者。当有新内容发布时,订阅者会收到通知。二、思想这是怎么做到的呢,其实核心思想是被观察对象维持一个观察者对象列表,当对象状态发生改变时,就通过调用列表中的观察者的通知方法,这样以来,就可以达
2017-05-30 21:05:48
397
原创 把中文表示的数字转成阿拉伯数字 - java
问题描述: 输入一个中文字符串,使用中文表示的数字形式。如一百,一千万,四千二百万零三十。 输出对应的数字,如100,1000000,42000030。思路: 遇到这个问题一开始觉得挺简单的,用一个字符串和一个数组对应下标就找到数字了,然后一步步累加。 后来发现不太简单,还要考虑如三百二十万这种情况,就是最后一位比前面的数位大,还要乘上去。 在csd
2017-04-16 22:55:04
4796
2
原创 一个日期处于该年的第几天 - c语言实现
觉得不同的解法还挺有意思的,就分享一下~问题描述:输入一个日期,格式yyyy-MM-dd,判断这个日期是当年的第几天。建议使用switch。 因为他们还没有学习到函数,就直接写在主函数内部了。思路一、没有使用switch,用了循环,数组存储月份的最大天数,最后累加。#include<stdio.h>int main(){ //闰年的月份 int leapYear[12] = {3
2017-04-12 12:43:27
1209
原创 查找包含某字符串的文件 - (python/shell)
# -*- coding: utf-8 -*-import osimport reimport codecsdef iter(path): for home, dirs, files in os.walk(path): for filename in files: yield os.path.join(home, filename)de
2017-03-22 23:06:02
1520
原创 bat批处理删除文件
最近接触到了一些有意思的技术,比如chrome插件,批处理脚本。以前都只会用,现在想着有机会能做一个。 刚好最近在做一个功能,导入文件,上传过程中要校验数据,如果失败的话可以下载错误报告到本地。不过错误报告会堆积在文件夹下,看着挺碍眼,每次都要手动删除挺麻烦的。于是正好写个批处理文件。1、什么是bat 批处理是window下可以执行的一个脚本文件,后缀名是bat。里面可以写上dos命令,然后运行
2017-03-03 12:37:19
3887
2
原创 二叉树中和为某一值的路径
问题描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路: 带条件的深度搜索,从根节点往下 依次减小目标值,如果达到0且该节点是叶子节点,则证明有和为该值的路径。就把这个list添加到最终list中。 如果当前不满足最终条件,则在左子树中找,在右子树中找,最后找不到要回退一到父节点,即remov
2016-12-14 21:05:02
470
原创 微信公众号开发 续
上次用bmob平台使用nodejs开发公众号,只完成了从数据库中拿到数据并显示的功能,这次完成了几个小功能。输入 :查看菜单,可以显示数据库内的菜品集合。 输入 :吃什么,系统推荐两道菜 输入 :xxx(某道菜名),表示差评,不喜欢这道菜,系统为菜降低评分。并提示再次输入。贴代码:function onRequest(request, response, modules) { var t
2016-12-05 23:13:41
1036
原创 微信公众号开发初体验
由于课程设计需要开发一个微信公众号,临时学习,在同学的推荐下找到了bmob平台,里面提供了数据库和云端代码,挺好用的。由于不熟悉nodejs,也不熟悉微信开发,于是连简单的功能也困扰了很久,用了几个小时才把数据库里的东西拿出来显示。之后还会慢慢进步的!贴个代码:function onRequest(request, response, modules) { var token = "czh2
2016-11-29 12:35:19
1151
原创 字符的全排列
问题描述: 输入一串不重复的字符串,输出所有字符的全排列。例如输入“abc” 输出”abc” “acb” “bac” “bca” “cab” “cba” 。思路: 对于输入的字符串,固定其首位,每次让第一位和后面的某一位交换,变成新的字符串,然后对去掉首位的字符串求全排列。如abc ,先固定a,然后求bc的全排列 , 得到abc 和abc 然后交换a和b,得到bac,然后固定b,求ac的全排列
2016-11-14 23:55:20
510
原创 整数的幂运算 - 快速幂
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。一开始最简单的思路是,用一个while循环直接乘出结果,太简单代码就不贴了,复杂度是O(n)。 发现有更快的算法,叫快速幂,复杂度为O(lgn)。 代码:public class Solution { public double Power(double base, in
2016-11-03 19:49:24
619
原创 跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路: 首先想到的是递归思路,如果只有一层,那么只有一种跳法;两层有两种跳法。三层则可以先跳一层再跳剩下两层,或者先跳两层再跳剩下一层。
2016-10-30 14:43:54
441
原创 用两个栈实现一个队列
如题, 思路是一个栈做入队,一个栈做出队。把一个栈全都push到另一个栈里,就实现了逆顺序,就可以当队列使用了。上代码!import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integ
2016-10-28 23:51:29
410
原创 设计模式学习笔记——工厂方法模式
最近在看刘伟老师的《设计模式的艺术之道》,让我受益匪浅。在工厂方法模式这一章下布置了练习,加上很久没写发博客了,写一篇督促一下自己的学习进度。题目是:使用工厂方法模式设计一个程序来读取不同类型的图片格式,针对每一种图片格式都涉及一种图片读取器,例如GIF图片读取器用于读取GIF格式的图片,JPG亦然。充分考虑系统的灵活性和可拓展性。 结构图如下:代码:
2016-10-26 19:44:39
1212
1
原创 用bootstrap制作一个简单首页
因为需要写网页,想到了bootstrap,跟着视频学了一下,然后找了本书来看。最后交一个网上视频的作业吧。作业要求效果图代码<!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible...
2016-10-12 23:36:12
9449
8
原创 css写三角形按钮
.uptri{width:0px;height:0px;border-top:100px solid white;border-left:100px solid white;border-bottom:100px solid blue;border-right:100px solid white;}写一个角向上的三角形 容器最小化,边距往外扩,实现三角形。但是在使
2016-09-22 23:14:16
3666
1
原创 WebDemo 总结
这几周整合了自己之前接触的struts2和hibernate框架,用这些来写一个小网站,实现登注册和信息发布增删改的功能。 真的开始写代码的时候出现了一些问题,比想象中困难。问题: 1、struts2接收表单参数。Struts2接收参数的方式有三种,要实现修改功能。一开始用的ModelDriven方式接收,结果问题多多,要传递一个需要修改的对象的updat
2016-09-10 13:02:18
1083
原创 jsp(html)页面中引入日历
补充:在使用新标签的时候遇到问题,用<input type="date" name="date"/>标签时,jsp可以获取日期的值。而在使用<input type="time" name="time" />时,jsp中用java.sql.Date和Time,还有String都不能获取时间的值。尝试无果,于是我还是用回了js控件。-----------------------
2016-09-03 00:35:59
17384
5
原创 Junit入门
在慕课网上学习了Junit的使用,觉得很不错,做一下笔记。一、介绍Junit是一个Java的单元测试框架。可以再开发项目是进行测试,节省了后期维护的时间和成本。二、使用前要使用Junit,需要下载两个jar包,- junit.jar- hamcrest-core.jar由于官网上的下载地址无法下载,请同学们自行找资源啦。三、测试工具:ecli
2016-09-02 11:11:10
532
原创 nodejs单页面爬虫(二)--解决编码问题
上次写的爬虫虽然数据爬下来了,但是有乱码问题。查了相关的书之后,找到解决办法。重新写了一下,好像比之前更简洁了。 解决办法是:引入iconv-lite模块,用来转换编码的网页内容。这次跟着书上用了request模块,而不是用原来的http模块。var request = require('request');var cheerio = require('cheerio');var i
2016-08-28 13:48:58
741
原创 struts2拦截器--拦截未登录用户
拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。 在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
2016-08-28 13:48:55
1612
原创 struts2接收参数
struts2有三种接收参数的方式: 1、Action属性 2、Domain Model 3、ModelDrivenlogin.jsp页面: 用户名: 密码: 1、Action属性方法: 通过表单的username和action属性username直接对应传递过来。public class LoginAction extends
2016-08-28 13:48:52
522
原创 Most middleware (like bodyParser) is no longer bundled with Express
在cmd命令行里,输入node app.js 提示: Error: Most middleware (like bodyParser) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#mi
2016-08-28 13:48:49
697
原创 struts2中struts.xml文件用通配符配置
在使用struts2的时候,能简单快速地连接action和jsp页面。主要是神奇的配置文件:struts.xml 在起作用。示例: 这是目录结构: 650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/85/45/wKiom1ee6IrhoUdpAAA3RNrnH5k300.png" title="6.png" alt="w
2016-08-28 13:48:47
502
原创 Node.js实现单页面爬虫
在imooc网上跟着老师写了两个爬虫,一个最简单的直接爬整个页面,一个完善版把章节标题和对应编号打出来了。 看完之后,自己也想写一个爬虫,用自己的博客做测试,虽然结果并没有很成功- -,还是把代码放上来。 目标是抓取章节的标题。 博客页面:650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/84/80/wKiom1e
2016-08-28 13:48:44
988
原创 初识Hibernate框架
引、 之前在学校接触了Java的hibernate框架,觉得很强大。放假了,有时间好好看一看hibernate的相关技术。最近在imooc上看了相关的视频,写一篇博客总结一下。一、了解: Hibernate是一个ORM(Object Relational Mapping,对象关系映射)框架,对JDBC进行了轻量级的封装。使得程序员可以用面向对象的方法来进行数据库编程,使我们更容易用Ja
2016-08-28 13:48:41
523
redis for windows
2020-09-24
Gartner-3891569-top-10-strategic-technology-trends-for-2019.pdf
2019-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人