tips(java always to be continue...)

  • auto-boxing and cache problem  http://blog.csdn.net/xad707348125/article/details/47017633

自动装箱时调用valueof使一定范围int值在cache中,而若要修改真实值需要reflect里的set,必须要获得access权限。

IntegerCache的low和high

Integer i1 = Integer.valueOf(1)

setIntValue(intvalue)   但是  private final int value;

AccessibleObject.setAccessible(boolean flag) 之后再setInt

 

Field f = Integer.class.getDeclaredField("value")
f.setAccessible(true);

int tmp = integer1.intValue()
f.setInt(integer1,integer2.intValue());
f.setInt(integer2,tmp)

 

由于装箱的cache问题导致。

  • why "string" special?  https://www.zhihu.com/question/31345592

安全。hashcode 的collision问题 

 

posted on 2017-09-28 07:35  satyrs  阅读(94)  评论(0)    收藏  举报

导航