Java小强个人技术博客站点    手机版
当前位置: 首页 >>

Java内存报错简单分类与分析

92130 理论 | 2015-8-3 11:50
在运行时的内存区域有5个部分,Method Area(方法区),Java stack(java 虚拟机栈),Native MethodStack(本地方法栈),Heap(堆),Program Counter Regster(程序计数器)。从图中看出方法区和堆用黄色标记,和其他三个区域的不同点就是,方法区和堆是线程共享的,所有的运行在jvm上的程序都能访问这两......查看详细

Java HashMap的工作原理(2)

96890 理论 | 2015-8-2 22:04
分析HashMap之前先介绍下什么Hashcode(散列码)。它是一个int,每个对象都会有一个hashcode,它在内存的存放位置是放在对象的头部(对象头部存放的信息有hashcode,指向Class的引用,和一些有关垃圾回收信息)。具体如何生成hashcode,这个相当复杂,这里不深入探讨。有个问题需要讲的是,如果在你的类中覆盖了Object的equal......查看详细

Java HashMap的工作原理(1)

97910 理论 | 2015-8-2 21:48
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。HashMap实现了Map接口,继承AbstractMap。其中......查看详细

Java代码中获取运行时内存情况

195940 理论 | 2015-8-2 18:08
在此之前,还是先看下JVM内存结构和JVM参数调优,网上太多不说也罢。另外提醒的是方法反映的都是java这个进程的内存情况,跟操作系统的内存根本没有关系。 阅读全文>>...查看详细

JDK工具-jmap命令

102430 理论 | 2015-8-1 8:48
可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024可以将30......查看详细

JDK工具-jrunscript命令

120080 理论 | 2015-7-31 21:23
jrunscript是一个命令行脚本外壳。jrunscript支持交互模式(read-eval-print)和批处理模式(-f选项)的脚本执行。这是一个脚本语言的独立外壳。默认情况下,使用JavaScript,但是我们可以使用-l选项来指定不同的语言。通过Java与脚本语言的通讯,jrunscript支持"探索性编程"风格。阅读全文>......查看详细

JDK工具-Keytool命令

103240 理论 | 2015-7-31 17:32
Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries......查看详细

JDK工具-JPS命令

94710 理论 | 2015-7-31 16:11
用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是......查看详细