`
文章列表
代码如下: /* * 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情况,并打印 ...
添加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源码解析

    博客分类:
  • JDK
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 ...
Global site tag (gtag.js) - Google Analytics