摘要:一、Class类文件结构 Class类文件严格按照顺序紧凑的排列,由无符号数和表构成,表是由多个无符号数或其他数据项构成的符合数据结构。 Class类文件格式按如下顺序排列:类型名称数量u4magic(魔术)1u2minor_version(次版本号)1u2major_version(主版本号)1u2constant_pool_count(常量个数)1cp_infoconstant_pool(常量池表)constant_pool_count-1u2access_flags(类的访问控制权限)1u2this_class(类名)1u2super_class(父类名)1u2interface...
阅读全文
摘要:最近客户那边报了一个问题上来,问题:门店反馈JPOS界面查询“分类销售报表”,查询一个月的数据一直卡在查询界面,查询一天的数据,至少要3分钟,据了解门店之前是没有问题的。 我拿到客户现场的数据以及日志,把现场数据安装到我的开发环境中,查看下日志,日志没有任何报错,收银员的操作也没有任何不规范之处,然后就果断不管日志了,重现了问题,发现没有报错,进度条一直显示“正在加载数据”,所以想到用visualVm中的线程监测工具对他进行监测,监测结果显示,线程没有死锁,一直处在Runnable状态,入下图:线程监测没得到什么头绪,然后想看看堆的情况,然后打开visualVM对内存进行监控,监控了一段...
阅读全文
摘要:JDK中的bin目录下有很多工具,这些工具可以用来检测虚拟机运行情况以及cpu,内存,线程等的监控,比如jps、jstat、jinfo、jmap、jhat、jstatck等。 jps:可以用于查看虚拟机进程的LVMID,可以有三个参数,分别为:q为只输出LVMID,省略主类的名称;m为输出输出虚拟机启动书输出的main函数;l为主类全面,如果执行的是jar包,那么输出jar的路径;v为虚拟机启动时候的jvm参数 jstat:可以显示本地或者远程虚拟机中的类装载,内存,垃圾收集,JIT编译等的运行数据,这将是运行期定位虚拟机性能问题的首选工具。命令格式:jstat [ option vm...
阅读全文
摘要:WeakHashMap实现了Map接口,是HashMap的一种实现,他使用弱引用作为内部数据的存储方案,WeakHashMap可以作为简单缓存表的解决方案,当系统内存不够的时候,垃圾收集器会自动的清除没有在其他任何地方被引用的键值对。 如果需要用一张很大的HashMap作为缓存表,那么可以考虑使用WeakHashMap,当键值不存在的时候添加到表中,存在即取出其值。 WeakHashMap weakMap = new WeakHashMap(); for(int i = 0; i (); for (int i = 0; i weakMap1 = new WeakH...
阅读全文
摘要:java虚拟机在执行java程序的过程中会把他所管理的内存划分为若干个不同的数据区域,运行时数据区分别为:程序计数器,java虚拟机栈,本地方法栈,java堆,方法区。还有一个非运行时数据区:直接内存(Direct Memory)。1)程序计数器每个线程创建的时候会有一个独立的程序计数器,可以看成是线程执行的字节码的行号指示器,不同线程之间的程序计数器互不影响,存储于程序计数器所在的内存中,这块内存很小。线程私有2)java虚拟机栈每个方法被执行的时候虚拟机都会创建一个栈帧,用于存储局部变量表, 操作数栈,动态链接,方法出口等信息,一个方法被调用至结束,就对应着栈帧在虚拟机栈中从入栈到出栈的过
阅读全文
摘要:眨眼,大学毕业已经1年,但是回顾过去的一年,我收获了什么?细细数来,好像什么都没有!! 从今天开始,看书,写博客,慢慢的积累 我就不信,智商为负的人成不了大神 对于男人来说,辛苦一年真的不算长 我已做好了辛苦三年的准备 希望通过努力我可以配得上绝影之名 blog:http://www.cnblogs.com/God-froest 读书:http://book.douban.com/people/froest2012/
阅读全文