文章列表
JAVA HEAP内存溢出测试代码
- 博客分类:
- JVM
java命令行参数:
-verbose:gc -Xms20m -Xmx20m -Xmn10m -XX:+PrintGCDetails -XX:SurvivorRatio=8
import java.util.ArrayList;
import java.util.List;
public class HeapOOM {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<OOMObjec ...
Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。
一、查看参数列表:
虚拟机参数分为基本和扩展两类,在命令行中输入JAVA_HOME"bin"java 就可得到基本参数列表,
在命令行输入JAVA_HOME"bin"java –X 就可得到扩展参数列表。
...
JVM内存主要分为以下几部分:
1、PC:程序计数器,主要用来作为当前线程所执行字节码的行号指示器,属于线程私有。
2、Java Stack:java 栈,线程的生命周期相同,线程中每一个方法的调用建立一个栈帧,这个栈帧主要存储局部变量表,操作栈,动态链接,方法出口等,一个方法的执行,对应一个栈帧的入栈和出栈。线程私有。
3 native method Stack:本地方法栈,与虚拟机栈类似。
4、java heap:java堆,存储对象实例以及数组。线程共享区域。
5、Method Area:方法区,存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
6、Runtime ...
fedora root登录
- 博客分类:
- linux
fedora从10开始就禁止了以root来登录系统,这个可能是出于安全的考虑,毕竟root的权限太大了,出余增强系统安全性,而且普通的账号可以运行一般应该用户的应用程序来说足够了,如果需要用到root权限时,会自动提示输入密码,可以说在安全考虑上做到相当完美了.
想用root登录系统:
修改目录 /etc/pam.d/gdm与/etc/pam.d/gdm-password两个文件
一般修改方法:
在终端中输入su命令并输入root密码这样我在终端中就有了root的操权限接下来我们使用gdit命令对其进行修改
vi /etc/pam.d/gdm
在"auth required pam_s ...
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍 ...
RPM包的安装(转载)
- 博客分类:
- linux
RPM软件包的一个例子:
foo-1.0-1.i386.rpm
其中包括软件包的名称(foo),版本号(1.0),发行号(1),和硬件平台(i386)。
(1)安装
# rpm -ivh foo-1.0-1.i386.rpm
foo
#######################
A. 软件包已被安装
# rpm -ivh foo-1.0-1.i386.rpm
foo package foo-1.0-1 is already installed
error: foo-1.0-1.i386.rpm cannot be installed
如果你仍旧要安装该软件包,你可以 ...
Integer instance = new Integer(1)
Integer a = Integer.valueOf(1);
上述表达式主要区别:
两个都是得到一个Integer对象,但是Integer.valueOf的效率高。为什么呢?因为Integer.valueOf用到了缓存。
如Integer.valueOf()源代码:
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache ...
JDK 源代码- Hash 存储机制
- 博客分类:
- JDK源码阅读
通过 HashMap、HashSet 的源代码分析其 Hash 存储机制
集合和引用
就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量。
实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集合元素的存储位置,这样可以保证能快速存、取集合元素;对于 HashMap 而言,系统 key-value 当成一个整体进行处理,系统总是根据 Hash 算法来计算 key-value 的存储位置,这样可以保证能快速存、取 Map ...