- 浏览: 468345 次
- 性别:
- 来自: 杭州
最新评论
-
chxiaowu:
nice!
Quartz实现固定执行次数 -
zxjlwt:
学习了。http://surenpi.com
自定义ClassLoader -
kadlly:
public static final Logger log ...
Hessian 权限认证 -
spring_springmvc:
java程序语言学习教程 地址http://www.zuida ...
Java-Final -
liushuiwuyan:
[img][/img]
设计模式-单例
文章列表
代码如下:
/*
* 0.0.0 ~99.9.0
* 执行次数 100*10*1=1000次
* 执行时间 812
*/
public void doThing(){
for(int i = 0;i<10000;i++) {
for(int j = 0;j<1000;j++) {
for(int k = 0;k<100;k++) {
function(i,j,k);
}
}
}
}
/*
* 0.0.0 ~ 0.9.99
* 执行次数 1*10*100=1000次
* 执行时间 703 ...
beckrabbit 写道受此文启发: 随想配置:更快的启动eclipse
性能优化从身边做起。
首先建立评估体系,将workspace里所有的项目close掉,关闭eclipse。优化的用例就是启动eclipse,open一个项目,eclipse会自动build这个项目,保证没有感觉到明显的卡,也就是没有full GC。
开始:
eclipse.ini里加入打印gc情况的参数:
-XX:+PrintGCTimeStamps-XX:+PrintGCDetails-verbose:gc-Xloggc:gc.log
这样eclipse在运行过程中会记录gc日志,显示详细的gc情况,并打印 ...
Hessian Token权限认证
- 博客分类:
- Hessian
添加Token验证,如何生成Token,计算方式如下,采用不可逆转的方式生成[MD5加密]:
服务器端存储Token,采用线程安全的Map
客户端在发送业务请求前,先去服务器端申请一个Token,然后发送请求时把token和业务类一起发送,这时会发送请求超时和权限验证,因为Token只有一次有效,废话不说,代码如下:
Token接口:
public interface TokenGenerator {
public String generatorToken(String userName);
public boolean validateToken(String tok ...
Hessian 权限认证
Hessian的一些基本简介已经在上一节已经全部介绍了,上一节还介绍了Hessian是把对象序列化为二进制流的形式在http信道中传输,那么对于安全性高的应用不应该采用hessian(比如网上支付等)、可以加一些权限验证,比如在服务器端加用户名,密码验证,然后在客户端提供用户名和密码,可如此一来用户名密码也会被捕获,毕竟用户名密码都在Http请求中,如果安全级别特别高的可以加Token,也就是加一层发送前的预备,如下图:
这样的话,既使请求被拦截,他们得到的也只不过是一个过期的Token,无法再一次发送到服务端,当然哪个程序都一样,安全级别一高就会添加很多的操作,就像 ...
Spring + Hessian
背景;
优点:【摘自网上】hessian类似于Webservice,但是它不使用soap协议,它把协议报文封装到http封包中,通过HTTP信道传输。是一种高效简洁的远程调用框架,它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。Hessian是通过servlet提供远程服务,完全使用动态代理来实现的,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。hessian已经支持Java,Flash/Flex,Python,C++,.NET C#,D,Erlang,PHP,Ru ...
聚合(Aggregation):
这是一种松散的对象间的关系.举个例子:计算机和他的外围设备就是一例.
用来表示拥有关系或者整体与部分的关系。
组合(Composition):
这是一种非常强的对象间的关系,举个例子,树和它的树叶之间的关 ...
1. 首先定义一个接口.
package proxy;
/**
* 操作接口
* version 1.0 Jul 15, 2010
*/
public interface ITarget {
/**
* 操作方法
*/
public void operator();
}
2. 再定义一个接口的实现类
package proxy.impl;
import proxy.ITarget;
public class ...
HashMap是知道怎么实现的了,哈哈,那么我们应该怎么使用HashMap才能达到最高的效率
HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使
用TreeMap(HashMap中元素的排列顺序是不固定的)。
使用HashMap,重写HashCode()的原则:
1.不必对每个不同的对象都产生一个唯一的hashcode,只要你的HashCode方法使get()能够得到put()放进去的内容就可以了。即"不为一原则"。
2.生成hashcode的算法尽量使hashcode的值分 ...
HashMap源码解析
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
HashMap是继承自AbstractMap<K,V>,那我们先来看一个AbstractMap<K,V>
public abstract class AbstractMap<K,V> implements Map<K,V> {
Abs ...
今天有人问我,Java的对象或者类型修改用Final.
Java中的final关键字通常的指的是“这是无法改变的”。它可能被做为三种的修饰词.------数据,方法,类。
一 final数据
1.在修饰基本类型时,表示它是一个常量,在定义时必须给予赋值.
特别的一个既是static又是final 的字段只占据一段不能改变的存储空间。
2.在修饰对象或者数组时,它表示对对象或数组的引用恒定不变,然而对象本身却是可以修改的.
空白final:声明为final但末给定初值的字段,但必须确保空白final在使用前被初始化,一般在构造方法完成。
final参数:在方法的参数列表以声明的方 ...
package com.tag2;
public class 单例模式 {
/**
* 应用场景:
* 1. 系统访问人数
* 2. 系统内部事件
* 3. 系统操作日志
* 4. 系统出错日志
* 5. 系统配置访问接口
* ...
* [单例主要应用于一个类只有一个实例]
* 单例模式发展.
* *. 经典的单例模式
public class Singleton {
private static Singlet ...