Java中对HashMap的深度分析

当存入HashMap的对象超过这个容量时,HashMap就会重新构造存取表。put的源码如下publicObjectput{Objectk=maskNull;这个就是判断键值是否为空,并不很深奥,其实如果为空,它会返回一个staticObject作为键值,这就是为什么HashMap允许空键值的原因。inthash=hash;inti=indexFor;这连续的两步就是HashMap最牛的地方!不要惊讶,其实HashMap也神不到哪里去,它就是用table来放的。到这里,HashMap的结构,大家也十分明白

GD输出汉字的函数的分析

很早以前找到一个把GB码转化为UTF-8的函数,配合一个GB到UNICODE的对照表,用于在GD中输出汉字。现将两个函数做一对比分析如下。这是修改前的GB转化为UTF-8编码的函数,其中调用了上面的u2utf8函数。所以,如果欲输出的内容中不论是开始时出现西文字符,或是汉字当中穿插西文字符,转化为UTF-8后,都会被按照“每三个字节截取”的方式截开,导致乱码。

Hibernate的JNDI绑定分析

最后在addInstance方法可以看到如下代码:Contextctx=NamingHelper.getInitialContext;NamingHelper.bind;instance就是SessionFactory的实例,通过读源代码,可以清楚的看到Hibernate是在conf.buildSessionFactory()的时候通过一系列类方法调用,把创建的SessionFactory实例绑定到配置文件中hibernate.session_factory_name属性指定的名称上的,因此可见Hiber