- 博客(37)
- 问答 (2)
- 收藏
- 关注
转载 Ubuntu安装FFmpeg
//日前需要用到ffmpeg 然后找到这篇教程,特转载一番 便于以后再次查看//文章转自 http://www.56cto.com/499 这个教程适用于Ubuntu, Debian, 或者 Linux Mint。本次安装包含一些外部FFMPEG编码和解码器1.安装FFMPEG需要的所有组件sudo apt-get updatesudo apt-get -y install autoconf a...
2018-04-05 11:21:37
424
原创 Protobuf简单安装使用(Java)
一、protobuf安装 (ubuntu 翻墙条件下)$ sudo su$ sudo apt-get install autoconf automake libtool curl$ git clone https://github.com/google/protobuf$ cd protobuf$ ./autogen$ ./configure --prefix=/usr$ make$...
2018-03-24 11:10:18
1049
原创 Jackson实现Java对象与JSON的相互转换
一、POJOtoString @Test public void toStr(){ TObj one=new TObj(); one.setKey("myKey"); one.setValue(3330L); ObjectMapper mapper = new ObjectMapper(); try {...
2018-03-02 20:42:26
440
原创 Redis学习日志(三)
16.类型检查与命令多态redis操作键的命令分两种①可对任意类型的键执行:DEL EXPIRE RENAME TYPE OBJECT②只对特定类型键执行:字符串键:SET GET APPEND STRLEN哈希键:HDEL HSET HGET HLEN列表键:RPUSH LPOP LINSERT LLEN集合键:SADD SPOP SINTER SCARD有序集合键:ZADD ZCA
2017-10-03 19:30:47
563
原创 Redis学习日志(二)
10. 对象Redis对象系统结构 string(字符串),hash(哈希),list(列表),set(集合)及zset(有序集合)。 五种类型对象的构建用到了以上的主要数据结构:简单动态字符串、双端链表、字典、压缩列表、整数集合。 Redis中的键值对,键总是一个字符串对象,值可以是五种对象中的一种。 “字符串键”指key-value 中的value
2017-10-03 19:08:11
334
原创 Redis学习日志(一)
底层数据结构:sds、list、dict、ziplist、intset、skiplist1.StringRedis构建了简单动态字符串SDS来作为默认字符串表示,属于可修改字符串的值。 当一些如打印日志等不需被修改的字符串则用C语言传统字符串表示。 sds用于存储字符串、AOF缓冲区、客户端状态中的输入缓冲区等。 sds实际是char型指针,即C语言的字符串表述形式 sdshdr是redis
2017-10-03 18:42:31
464
原创 [编程珠玑]-第十一章:快速排序及第k小元素
源于编程珠玑-第二版这几天在通过编程珠玑回顾复习一些算法相关的基础知识,虽说做不到像一些算法高手深入剖析各式优化的特点,但通过一些问题和例子看看也是能够温故知新的。重在学习、收获,不积跬步无以至千里。先前通过算法导论的一些相关章节学习,写了点笔记,不过由于现在并没有在身边,这篇文章就简单记录一下编程珠玑中提到的快速排序内容。另外还有一个关于“O(n)时间内从数组中查找第k小元素”问题。
2017-07-18 14:21:04
457
原创 [编程珠玑]-第八章:连续子向量的最大和
源于编程珠玑-第二版问题描述:一维模式识别,输入n个数值向量x,输出连续子向量的最大和。题目很简单,即求最大子数组。1.平方算法:O(n^2)需要对所有连续组合进行对比,选择出累积和最大的值,算法的优化在于减少反复计算对比。对于X[i...j]的总和,与前X[i...j-1]的总和密切相关, 省去反复计算i~j的值max=0for i=[0,n) sum=0
2017-07-17 17:01:41
439
原创 [编程珠玑]-第二章:二分及标识
源于编程珠玑-第二版问题描述:A.给定一个最多包含40亿个(2^32)随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(缺少这样一个整数)1.足够内存情况下:可采用位向量方式,2^32/8 bit =536870912 B 内存空间来表示整数数据,由于位向量表示获得的数据已是有序排列,然后可通过二分查找得到缺少的那位整数。2.内存有限,可利用外部临时文件空间:从另外的
2017-07-16 17:18:20
547
原创 [编程珠玑]-第一章:位图/位向量排序
源于编程珠玑-第二版问题描述:(第一章1.2节)输入:一个最多包含n个正整数的文件,每个数都小于n, n=10^7, 输入文件中整数不重复,且无其他数据与该整数相关联。输出:按升序排列的整数的列表。约束:最多有大约1MB的内存空间可用,有充足的磁盘存储空间,运行时间最多几分钟程序设计:若每个数都使用32位整数来表示,1MB存储空间约可存250000个整数(10^
2017-07-15 21:44:08
679
原创 Spring注入及装配
Spring装配:创建应用对象之间协作关系的行为1.隐式自动装配:@component 组件 @componentScan 扫描组件 @Autowired自动装配---》具有多项匹配时会有歧义性需要消除当bean中需要参数传值时,不能使用自动装配2.显示Java装配:使用一个javaconfig类,在类中声明方法返回需要的组件对象 使用@Bean Bean
2017-07-10 16:48:42
497
原创 Ubuntu下安装Redis
1.获取到Redis可在 www.redis.cn/ 或者 redis.io/ 上获得最新版本的Redis也可以通过在终端中 使用命令获取wget http://redis.googlecode.com/files/redis-3.0.4.tar.gz2.使用tar命令 解压(我是解压到了/opt)sudo tar -zxf redis-3.0.4.tar.gz -C
2017-05-07 18:09:37
329
原创 Java单例模式的几种实现方式
一、"饿汉模式"public class 饿汉模式 { public static void main(String[] args) { mySingleton theObject=mySingleton.getInstance(); mySingleton theObject2=mySingleton.getInstance(); System.out.println(t
2017-04-03 18:02:53
496
原创 石子合并 动态规划(直线型)
问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。输入格式 输入第一行包含一个整数n,表示石子的堆数。 接下来一行,包含n个整数,按顺序给出每堆石子的大小 。输出格式 输出一个整数,表示合并的最小花费。样例输入51 2 3 4 5样
2017-03-05 18:17:32
13679
1
原创 猴子分桃解题原理
类型①.五只猴子分一堆桃子,准备第二天分。夜里一只猴子偷偷爬起来,先吃掉一个桃子,然后将其分为5等份,藏起自己的一份就去睡觉了;第二只猴子又爬起来,吃掉一个桃子后,也将桃子分成5等份,藏起自己的一份睡觉去了;以后的3只猴子都先后照此办理。问最初至少有多少个桃子?○ ○ ○ ○ ○ -->> 五只猴子处理完后,剩下的桃子为整数。类型②.n只猴子采摘了一大堆苹
2017-02-26 21:27:18
2112
1
原创 Vigenere密码
Vigenere密码技术:在单字符单表替换密码中,明文中的字符与密文中字符是一一对应的(在明文表中的字符也存在于在密文表中),明文中字符的统计特性在密文中没有得到改变。单字符多表替换密码技术是用一系列(两个以上)替换表依次对明文的字符进行替换。假设明文字符表为Zq,替换表序列为L=L1L2L3...., 明文字符序列为m=m1m2m3...,则相应的密文序列C=L(m)
2017-01-30 22:03:55
20952
1
原创 栅栏密码
栅栏密码技术:把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。2栏栅栏密码:比如明文:THERE IS A CIPHER去掉空格后变为:THEREISACIPHER两个一组,得到:TH ER EI SA CI PH ER先取出每行第一个字母:TEESCPE再取出每行第二个字母:HRIAIHR连在一起就是:TEESCPE
2017-01-30 22:01:34
2943
1
原创 密钥字密码
密钥字密码技术:利用一个密钥字来构造替换作为密钥,先将密钥字作为首段密文,然后将之后未在字母表中出现过的字母依次写在此密钥字之后,构造出一个字母替换表当密文为英文单词时,最多可以有26!个不同的替换表(包括恒等变换)如,当密钥字为cipher时,明文字母 a b c d e f g h i j k l m n o p q r s
2017-01-30 21:59:22
3825
原创 仿射密码(加法密码+乘法密码)
仿射密码技术:(加法密码+乘法密码)(可先参见加法密码与乘法密码原理)C= Ek(m)=(k1 m+k2) mod n , K1,K2∈Zn ,gcd(k1,n)=1M= Dk(c)=k3(c- k2) mod n(其中k3为k1逆元)(1)0(2)k1与n互素,即要满足gcd(k1, n)=1,否则不存在模逆元,不能正确解密所以即满足乘法密码技术的要求,又
2017-01-30 21:57:05
6100
原创 乘法密码
乘法密码技术:属于替换密码技术的一种乘法密码技术的加密变换: Ek(Ai)=Aj j=ik(mod n) ,gcd(k,n)=1(1)0(2)k与n互素,即要满足gcd(k, n)=1,否则不存在模逆元,不能正确解密设明文消息为M,消息元素为m 元素下标为 i;则密文消息为C,密文元素为c 元素下标为 j; c=i*k mod n;乘法密码的密
2017-01-30 21:53:41
18976
原创 移位替换密码
移位替换密码技术:(加法密码)加密变换:Ek(Ai)=Aj, j=(i+k)(mod n) ,0解密变换:Dk(Aj)=Ai, i=(j-k)(mod n)=(j+(n-k))(mod n)加密与解密是可逆的,D(k)=E(n-k)移位替换密码技术密钥为k,唯一地确定了明文空间到密文空间的映射,密钥空间元素个数为n-1凯撒密码:一种最为古老的对称加密
2017-01-30 21:49:51
6137
原创 java项目导出jar时图片等资源无法加载问题
在做客户端程序时,若将项目导出为可执行jar文件,而项目中包含图片等资源时,可能会遇到无法正确加载显示。①.图片等若是在项目下的image文件夹中,即如下图 而java代码若是这样写的: ImageIcon icon =new ImageIcon("images/Lock.png"); 则在打包出jar文件时,将项目中的images文件夹 同时复制到与jar
2017-01-11 00:08:47
7546
2
原创 银行家算法简述解析
背景简介:在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系
2016-11-28 17:38:54
53171
3
原创 Java线程(CountDownLatch、CyclicBarrier、Semaphore)并发控制工具类
尽管线程是比较的神秘且具有一定的不可控性,但我们依然可以尽可能地对其进行管理和“控制”运用CountDownLatch、CyclicBarrier、Semaphore等 在很大程度上可以帮我们对线程的一些执行顺序等进行管理线程等待的另一种形式:java线程中除了使用 Object的wait()与notify()等来进行等待与唤醒外,CountDownLatch在一定程度上能够更方便
2016-11-05 19:06:46
467
原创 java线程(线程池工作示例)
本示例旨于介绍利用线程池去处理相应的频繁工作(以预先分配的一定量固定线程服务于不断添加的工作需求,减少因反复创建、消亡线程造成的系统资源浪费)工作者线程worker:用于向任务队列申请调取任务,对其进行工作处理、执行相应的操作(线程同步)任务线程Job:具体任务类,具有自己的处理步骤,交由工作者进行调用线程池ThreadPool: 生成一定量的工作者线程 及拥有一个Job任务队列存放待
2016-11-02 15:09:55
958
原创 java线程(超时等待+简单数据库连接池)
超时等待模式在一般的等待/通知机制上添加超时控制,使得方法执行时间过长也不会一直造成阻塞,而是在一段时间后返回。通常java连接数据库时会将其执行过程交由一个线程进行处理,使得在一些I/O操作或需要一定时间运行的行为在后台运行而客户端能立刻对当前的动作做出下一个反应。例如客户端的文件下载上传等往往另开一个线程,而主程序继续监听将要发生的动作,在与数据库交互时,每个用户获得一个专属的线程对其需要
2016-10-30 18:05:17
5041
原创 java线程等待/通知机制及中断
一、等待/通知机制 在线程交互中经常需要对其进行一些控制,希望人为地能够让线程按理想路线发展,在满足某条件时进行执行操作而发生变化时,停止等待。1、 使用sleep 在 if ( ) { } else { } 中使用sleep 对线程进行停止等待一段时间。 弊端:正常情况下 无法客观预知需要等待的时间,在刻意睡眠一段时间后 很可能发现 依旧不适合由此线程执行之后的操作,或者睡眠过
2016-10-30 15:21:06
5045
原创 java线程(暂停、恢复、结束)前引
一、suspend、resume、stop (过期的暂停、恢复、结束)线程得益于它的run方法,在其中不断地循环来达到预期的目的,而很多时候,经常需要对这略过机械化的“小东西 ”进行一些控制。在线程Thread方法中,原先存在着很方便、很人性化的控制,让其可以乖乖 暂停、恢复、结束,不过是一句话的事而已。如下:import java.text.DateFormat;impo
2016-10-30 13:43:30
1141
转载 Java堆内存理解
JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代(Young
2016-10-07 21:34:10
573
转载 【转】Java SwingWorker(三)
前言:------------------------------程序难免会使用到线程,在可视化Swing界面中大多数为客户端形式体现,其中界面流畅度就成了用户体验的影响之一,除了相应代码整洁减少冗余性及优化其中的算法和减少内存开销等方式,将一些处理过程耗时的命令交由一个新的线程去处理,使Swing组件可以继续接收用户操作即变相提高流畅性(耗时操作应该尽量不在EDT中进行)。博主找了几篇较
2016-08-14 19:26:07
434
转载 【转】Java SwingWorker(二)
前言:------------------------------程序难免会使用到线程,在可视化Swing界面中大多数为客户端形式体现,其中界面流畅度就成了用户体验的影响之一,除了相应代码整洁减少冗余性及优化其中的算法和减少内存开销等方式,将一些处理过程耗时的命令交由一个新的线程去处理,使Swing组件可以继续接收用户操作即变相提高流畅性(耗时操作应该尽量不在EDT中进行)。博主找了几篇较
2016-08-14 17:46:19
588
转载 【转】Java SwingWorker(一)
前言:------------------------------程序难免会使用到线程,在可视化Swing界面中大多数为客户端形式体现,其中界面流畅度就成了用户体验的影响之一,除了相应代码整洁减少冗余性及优化其中的算法和减少内存开销等方式,将一些处理过程耗时的命令交由一个新的线程去处理,使Swing组件可以继续接收用户操作即变相提高流畅性(耗时操作应该尽量不在EDT中进行)。博主找了几篇较
2016-08-14 17:37:47
822
转载 【转】Java Swing事件分发线程
前言:------------------------------程序难免会使用到线程,在可视化Swing界面中大多数为客户端形式体现,其中界面流畅度就成了用户体验的影响之一,除了相应代码整洁减少冗余性及优化其中的算法和减少内存开销等方式,将一些处理过程耗时的命令交由一个新的线程去处理,使Swing组件可以继续接收用户操作即变相提高流畅性(耗时操作应该尽量不在EDT中进行)。博主找了几篇较
2016-08-14 16:51:34
902
原创 java证书加解密过程
前提铺垫: 本机上构造两个数字证书用作测试,一个 Server 端 与一个Client 端使用java keytool 生成自签名证书。过程如下:参数如下: -genkeypair 生成密钥对-keyalg 指定密钥算法-keysize 指定密钥长度-sigalg 指定签名算法-validity 证书有效期-alias 别名-keystore 密
2016-08-01 23:39:55
4123
原创 Java非证书下的加密解密过程小解析
当某两方需要进行加密传输消息时,大致经过如下步骤。 /*规定所有要发送的文件及加密后的文件均存于D:\FileBox\. 密钥存于D:\ */ /*发送方A:* 1.对文件进行摘要计算,预防内容被修改* 2.对消息摘要进行数字签名(A私钥),预防文件内容与摘要同时被修改* 3.对文件采用密码流对称加密,预防文件被捕获*
2016-07-24 16:40:40
544
原创 FileChannel、ByteBuffer对文件操作过程对比
#内存映射文件#文章背景:对文件进行MD5操作时获取到文件的途径多样及处理方式略有不同,博主经过对比希望得出较为合理的方式。FileChannel:用于读取、写入、映射和操作文件的通道。 (以下解释源自JavaAPI文档)文件通道在其文件中有一个当前 position,可对其进行查询和修改。该文件本身包含一个可读写的长度可变的字节序列,并且可以查询该文件的当前大小。写入的字节超出文
2016-07-22 15:36:14
5244
1
空空如也
关于Socket文件传输后删除失败
2016-08-25
Java 密码框明文查看显示
2016-08-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人