![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 75
anlovejing
热爱钻研热爱生活喜欢创新
展开
-
Java实现通用组合算法
Java实现通用组合算法,存在一个类似{31311133,33113330}这样的集合,经过8取5组合,其他位置用非字母数字字符替代,比如使用*号,得到类似{3***1133,***13330,... ...}这样的集合; 现在有这样的需求: 存在一个类似{31311133,33113330}这样的集合,经过8取5组合,其他位置用非字母数字字符替代,比如使用*号,得到类似{3***11原创 2013-03-06 11:37:32 · 389 阅读 · 0 评论 -
谈谈Java加密技术(五)
DH Diffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对(公钥、私钥)。以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥原创 2013-03-06 13:39:19 · 489 阅读 · 0 评论 -
java的volatile与多线程
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 下面是个例子:恢复注释的任何一原创 2013-03-06 13:05:22 · 335 阅读 · 0 评论 -
多线程中使用Java集合类
Java集合类中,某个线程在 Collection 上进行迭代时,通常不允许另一个线性修改该 Collection。通常在这些情况下,迭代的结果是不确定的。如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collection 实现)可能选择抛出此异常。执行该操作的迭代器称为快速失败 迭代器,因为迭代器很快就完全失败,而不会冒着在将来某个时间任意发生不确定行为的风险。 因原创 2013-03-06 13:10:03 · 463 阅读 · 0 评论 -
Java免受逆向工程攻击的措施
针对Java易遭受逆向工程攻击的原因,今天我将向大家介绍目前市场上关于防止Java免受逆向工程攻击的集中措施,同时指出这几种措施在防范逆向工程攻击的时候存在的不足之处。 首先是板载措施,它并不足以防止逆向工程。大多数虚拟机都包含一些使逆向工程复杂化的功能。Java允许用户在JAR存档中提供的每个类上设置一个数字证书,以确保原始文件没有被更改。虽然这样做并无害处,但该功能相当容易清除,并且仅针原创 2013-03-06 13:20:50 · 556 阅读 · 0 评论 -
谈谈Java加密技术(六)
接下来我们介绍DSA数字签名,非对称加密的另一种实现。 DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签原创 2013-03-06 13:41:20 · 651 阅读 · 0 评论 -
tomcat启动不了
放TOMCAT的服务端许多人使用 本来启动一直正常 某日突然 startup启动TOMCAT一闪而过 通过cmd启动矣是如此,启动失败 最后通过改shutdown port解决问题 改成了8015 其他网上找到的问题及解决方案: 1. 重要网站 2. Tomcat服务器的配置文件(server.xml) E:\tomcat6\co原创 2013-03-07 11:17:49 · 672 阅读 · 0 评论 -
Java序列化的作用
最近在阅读Core J2EE Patterns 的时候发现例子里用于在各个层次里进行传输的TO(Data Transfer Object)都实现了java.io.Serializable接口,看到这些偶突然感到茅塞顿开~困扰了很久的关于Serializable的疑问渐渐解开了,查找相关资料并总结如下: 序列化是什么: 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再原创 2013-03-07 11:19:12 · 333 阅读 · 0 评论 -
Hibernate初学之优缺点
首先比较一下JDBC的优缺点: JDBC的优点 直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。 JDBC的缺点 1.因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。 2.操作比较繁琐,很多代码需要重复写很多次。 3.如果遇原创 2013-03-11 11:21:23 · 446 阅读 · 0 评论 -
Java枚举的七种常见用法
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK,原创 2013-03-11 11:42:33 · 290 阅读 · 0 评论 -
java 实现最小二叉堆排序
写在前面: 一觉醒来,我就突然有灵感了...... 最小二叉堆定义: 二叉堆是完全二元树或者是近似完全二元树,最小二叉堆是父结点的键值总是小于或等于任何一个子节点的键值的堆堆。 存储: 二叉堆一般用数组来表示。 根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2; 位置k的叶子的父节点位置为(k-1)/2; 实现: Java原创 2013-03-11 08:56:56 · 842 阅读 · 0 评论 -
Hibernate原理与应用
1、初始化代码(只做一次) Configuration cfg = newConfiguration(); cfg.configure("config.cfg.xml"); 也可以通过cfg.setProperty设置属性。 SessionFactory sessionFactory = cfg.buildSessionFactory() 2、模板原创 2013-03-11 11:30:50 · 444 阅读 · 0 评论 -
漫谈Java加密技术(一)
加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书。 如基本的单向加密算法: ● BASE64 严格地说,属于编码格式,而非加密算法 ● MD5(Message Digest algorithm 5,信息摘要算法)原创 2013-03-06 13:24:23 · 381 阅读 · 0 评论 -
Java设置与读取Cookie属性 央邦0首付,低押金先就业后付款
除了对数据的保存和读取,对Cookie的操作还包括设置Cookie的有关属性。 以设置变量的有效周期为例。 语法:Cookie 变量名称.setMaxAge(有效周期); 有效周期的时间以秒为单位,时间设置越大,表示Cookie对象的有效时间越长,如果把有效周期设置为0,则表示此Cookie对象存放在浏览器后将立即失效,如果把有效周期设置为任意一个负数,则当浏览器关闭后,此Coo原创 2013-03-06 13:03:06 · 448 阅读 · 0 评论 -
缓冲器(Buffer)的细节
从上面继承图层来看,了解Buffer很重要。 Buffer=数据+四个索引 正是四个索引才是的数据可以高效访问,这四个索引是:mark(标记),position(位置),limit(界限),capacity(容量)。 不变式 标记、位置、限制和容量值遵守以下不变式: 0 以下是设置和复位索引以及查询的方法: capacity() :返回此缓冲区的容量。原创 2013-03-06 12:52:38 · 694 阅读 · 0 评论 -
使用java JDBC方式操作oracle blob类型数据
[java] /** * * @param query 表示sql语句 * @param idForQuery 标识主键 * @param value 表示需要写入的字符串数据 * @throws Exception */ public static void writeBlobGBKBinaryStream(String query, in原创 2013-03-06 11:53:25 · 481 阅读 · 0 评论 -
JUnit测试框架简介
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 junit特性: JUnit是一个原创 2013-03-06 12:49:40 · 564 阅读 · 0 评论 -
巧用C#做中间语言 实现Java调用.net DLL的方法
环境与工具: ◆.net framework 3.5 C# ◆java jdk1.5, Tomcat 5.5 ◆jacob-1.15-M3 实现例子: 一、C# 制作Com组件 新建一个Class 项目,取名TestCom 代码 1.using System; 2.using System.Collections.Generic;原创 2013-03-06 13:01:50 · 596 阅读 · 0 评论 -
漫谈Java加密技术(四)
RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman.这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了。RSA同时有两把钥匙,公钥与私钥。同时支持数原创 2013-03-06 13:37:07 · 1033 阅读 · 0 评论 -
Java实现HTTP协议的请求
做web开发有一段时间了,但对于HTTP协议却没有深入的理解学习过。做了一小小的测试终于彻底明白了HTTP协议。自己的服务器上已经安装了Apache服务并且已经启动。Apache服务监听在80端口。 import java.io.*; import java.net.*; public class HttpRequest { public static void ma原创 2013-03-06 11:50:22 · 443 阅读 · 0 评论 -
java创建对象的四种方法
Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法。 (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的原创 2013-03-06 12:55:07 · 423 阅读 · 0 评论 -
Java多线程中所有方法的解析
一、run()和start() 这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由Java的内存机制规定的。并且run()方法必须是public访问权限,返回值类型为void。 二、关键字Synchronized 这个关键字用于保护共享数据,当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志,当原创 2013-03-06 12:59:26 · 424 阅读 · 0 评论 -
Hibernate优化方法
Hibernate优化方法一:批量修改和删除 在Hibernate 2中,如果需要对任何数据进行修改和删除操作,都需要先执行查询操作,在得到要修改或者删除的数据后,再对该数据进行相应的操作处理。在数据量少的情况下采用这种处理方式没有问题,但需要处理大量数据的时候就可能存在以下的问题: ◆占用大量的内存。 ◆需要多次执行update/delete语句,而每次执行只能处理一条数据。 以原创 2013-03-06 13:17:02 · 449 阅读 · 0 评论 -
漫谈Java加密技术(二)
接下来我们介绍对称加密算法,最常用的莫过于DES数据加密算法。 DES DES-Data Encryption Standard,即数据加密算法。是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode.其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作原创 2013-03-06 13:27:17 · 442 阅读 · 0 评论 -
漫谈Java加密技术(三)
除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE PBE PBE——Password-based encryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂原创 2013-03-06 13:31:08 · 403 阅读 · 0 评论 -
JAVA注解示例
Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以'@注解名'在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或原创 2013-03-11 09:47:08 · 429 阅读 · 0 评论