编程语言

java中文件如何加密压缩?

目录 文件加密压缩 1.单个文件加密压缩 2.多文件加密压缩 @(终于等到你) 文件加密压缩 在现如今已经可以实现大部分功能的互联网需求中,安全成为了需要的非必需品,工作需求中会遇到对导出的 excel 报表 做加密压缩的问题,今天有时间总结一下,我这里简单列举功能代码,连带其它代码文末会一并给出. 1.单个文件加密压缩 单个文件加密方法,需传输 3 个参数:被压缩源文件,压缩目标文件和加密密钥,如下 /** * @Title: encrypt_zip * @Description:将指定路径下

Prim算法:最小生成树---贪心算法的实现

算法图解: http://baike.baidu.com/link?url=hGNkWIOLRJ_LDWMJRECxCPKUw7pI3s8AH5kj-944RwgeBSa9hGpTaIz5aWYsl_sTyBgjxW-CnXn9LEHcy4GJE6N71Z7guFriwOVGLjGOFeaI44gRVid1N8iL-li-7wOt5WoH4K9zOTNFeeTB31HBOq 实现代码: http://blog.csdn.net/tingting256/article/details/504710

HDU 6318 Swaps and Inversions 思路很巧妙!!!(转换为树状数组或者归并求解逆序数)

Swaps and Inversions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2315    Accepted Submission(s): 882 Problem Description Long long ago, there was an integer sequence a.Tonyfang think this se

C++中继承的性质

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类性质的基础上进行扩展,增加功能. 继承的定义的格式: class 派生类名:继承类型 基类名 继承类型包括有:public(公有继承) private(私有继承) protected(保护继承) 继承关系 基类的public成员 基类的private成员 基    类    的protected成员 继承引起的访问控制变化 public public成员 不可见 protected成员 非私有成员在子类中的访问属性不

c++中 二义性

#include <iostream> using namespace std; class Base{     public:         Base(){             cout << "Base called..." << endl;         }         void print() {             cout << "Base ::print()" << endl;

《day15---多线程安全问题_JDK1.5的锁机制》

1 //15同步问题的分析案例以及解决思路 2 3 //两个客户到一个银行去存钱,每个客户一次存100,存3次. 4 //问题,该程序是否有安全问题,如果有,写出分析过程,并定于解决方案. 5 6 /* 7 发现运行结果: 8 sum=200 9 sum=200 10 sum=300 11 sum=400 12 sum=600 13 sum=500 14 15 打印错乱,不关心,但是发现数值错误,没有100. 16 运行了几次,发现有对的. 17 18 19 20 说明多线程的随机性造成了安全问

编程之美5:求数组中最长递增子序列

最近楼楼被男朋友带着玩dota,有点上瘾,终于在昨天晚上作出了一个重大的决定,shift+delete删掉warIII文件夹,从此退出dota的明争暗斗.不过最近看男票已经将战场从11转到了topcoder,嗯,这是个好现象,希望楼楼也能跟着玩儿起来. 理想是美好的,唉,可是楼主还在编程之美的初级阶段啊.话不多说了,希望自己加油加油再加油!!(^o^)/~ 今天要看的一道题目是求数组中最长递增子序列. 题目简介: 写一个时间复杂度尽可能低的程序,求一个一维数组(N)个元素中的最长递增子序列的长度

编程之美---求数组中最长递增子序列

写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中最长递增子序列的长度. 解法一:用动态规划,找出以当前元素结尾的最大递增子序列长度.dp[i+1] = max{1, dp[i]+1} ,array[i+1]>array[k] ,k<=i; 复杂度为o(n*n + n). 解法二:另外开一个数组保存长度为i的递增子序列的长度最大的最后一个元素最小的值,然后当处理数组中第i个元素时,从当前最大子序列的长度开始递减,依次寻找直到arrary[i]大于当前最大子序列长度的末尾元素值,然后更

springmvc与struts2的不同

1.springmv的入口是一个servlet,即前端控制器.而struts2入口是一个fliter过滤器. 2.springmvc是基于开发方法(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例).struts是基于类开发,传递参数是通过类的属性,只能设计为多例. 3.struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器将request请求内容解析,并给方法形参赋值,将数据和试图封装成ModelAndView对象,最

【c语言】输出以下4*5的矩阵

// 输出以下4*5的矩阵 // 1 2 3 4 5 // 2 4 6 8 10 // 3 6 9 12 15 // 4 8 12 16 20 #include <stdio.h> int main() { int i,j,k,l; for( i = 1; i <= 5; i++ ) printf("%d\t",i); printf("\n"); for( j = 2; j <= 10; j = j + 2 ) printf("%d

OpenGL ES着色器语言之操作数(官方文档第五章)

OpenGL ES着色器语言之操作数(官方文档第五章) 5.1操作数 OpenGL ES着色器语言包含如下操作符. 5.2数组下标 数组元素通过数组下标操作符([ ])进行访问.这是操作数组的唯一操作符,举个访问数组元素的例子: diffuseColor += lightIntensity[3] * NdotL; 5.3函数调用 如果一个函数有返回值,那么通常这个函数调用会用在表达式中. 5.4构造器 构造器使用函数调用语法,函数名是一个基本类型的关键字或者结构体名字,在初始化器或表达式中使用.

python中各种数据类型

数字类型 整型int 作用:年纪,等级,身份证号,qq号等与整型数字有关 定义: age=10 #本质age=int(10) 浮点型float 作用:薪资,身高,体重等与浮点数相关 salary=3.1#本质salary=float(3.1) 该类型总结 只能存一个值 不可变类型 x=10.3 print(id(x)) x=10.4 print(id(x)) 字符串类型 1.用途:记录描述性的状态,比如人的名字.地址.性别 2.定义方式:在"",'',"""

Python基础:字符串的常见操作

# 切片 # 切片 获取对象中一部分数据 [起始位置:结束位置(不包含):步长] qpstr = "山东张学友" result = qpstr[1: 3: 1] # 东张 print(result) # 快速取前两个 result = qpstr[:2] print(result) # 快速取后两个 result = qpstr[-2:] print(result) # 快速获取整个字符串 result = qpstr[:] # 快速获取字符串反转后的字符串 result = qpst

Python 约束 , 自定义异常 , 加密 , 日志

约束 约束 , 约束其派生类:  保证派生类中必须编写send方法 , 不然执行可能就会报错 Python中  语法: 1 class BaseMessage(object): 2 def send(self): 3 """" 4 必须继承BaseMessage,然后其中必须编写send方法, 用于完成具体业务 5 """ 6 raise NotImplementedError(".send()必须被重新写") 7

C语言 &#183; 复数求和

算法提高 复数求和 时间限制:1.0s   内存限制:512.0MB 从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出. 样例输入: 3 3 45 21 3样例输出:9+9i 样例输入: 71 23 42 51 86 47 93 7样例输出:23+39i 水题. 1 #include<stdio.h> 2 main(){ 3 int n; 4 scanf("%d",&n); 5 int a[n],b[n]; 6 int suma=0

LeetCode算法编程之连载四(二分法)

1.题目 – Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 题目意思很简单,就是求出x的平方根. 分析: 一看这题目,感觉很简单,很容易想到的是二分法,我最开始的解法是从1.2.4.8 … 2 * n,计算出n < x < 2n,然后再在 n 和 2n间,用二分法,找到平方根结果. 这种方法比较麻烦的一点是,乘积是有可能越界的,要处理乘积越界的情况,代码可读性不强. class Solut

Java web ch03_11_userReceive.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServ

搭建Python开发环境(Mac)

准备 Python官网: https://www.python.org/ Python官方文档: https://docs.python.org/ 环境搭建 简介 pipenv是Python官方推荐的包管理工具.可以说,它集成了virtualenv, pip和pyenv三者的功能.其目的旨在集合了所有的包管理工具的长处,如: npm, yarn, composer等的优点. 它能够自动为项目创建和管理虚拟环境,从Pipfile文件添加或删除安装的包,同时生成Pipfile.lock来锁定安装包的

代码解说多线程互斥与同步通信问题

参考 张孝详系列 场景 编写一个程序:子线程连说 3 次  " 你愿意吗?" ,接着主线程连续回答 10次 "我愿意" ,然后子线程再说3次"你愿意吗?",主 线程回答"我愿意" 10次 ... 轮流如此往复执行 10次. 分析 "连说 3 次","连续回答" 意味着互斥-主线程执行的时候,子线程不能执行;子线程执行的时候,主线程不能执行. "轮流往复"意味着同步-主

多线程互斥--mutex(二)

不知道大家对多线程或多进程间的同步互斥的控制机制了解的怎么样,其实有很多种方法可以实现这个目的,但是这些方法其实由4种最基本的方法实现.这4种最基本的方法具体定义如下:在这有讲得不对的地方欢迎各位扔砖,希望不会误导大家. 1.临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问. 2.互斥量:为协调共同对一个共享资源的单独访问而设计的. 3.信号量:为控制一个具有有限数量用户资源而设计. 4.事  件:用来通知线程有一些事件已发生,从而启动后继任务的开始. 临界区(Cr