被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static ...
分类:
编程语言 时间:
2017-12-30 00:25:11
阅读次数:
205
【转载】Java的JVM原理 转自:http://blog.csdn.net/witsmakemen/article/details/28600127/ 一、Java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行, ...
分类:
编程语言 时间:
2017-12-30 00:24:34
阅读次数:
226
一、内存管理 二、线程独占区之程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理 ...
分类:
编程语言 时间:
2017-12-30 00:23:52
阅读次数:
1097
本来刚开始应该介绍一下Java的,标题都想好了——Java的前世今生,但是为了节省是时间,就直接切入主题了,感兴趣的可以上网查一下。 要进行Java开发,首先要安装JDK(Java Development Kit)【Java开发工具包】。 JDK 是编译Java源码、运行Java程序所必需的,例如J ...
分类:
编程语言 时间:
2017-12-29 21:46:55
阅读次数:
138
一、内存溢出程序 当程序运行起来后一段时间内存就会溢出。 二、查看内存溢出情况 2.1 安装内存分析工具 2.2 运行参数配置 Run as-->Run Configurations-->Arguments-->VM arguments:-Xms20m -Xmx20m -XX:+HeapDumpOn ...
分类:
编程语言 时间:
2017-12-28 23:27:08
阅读次数:
192
JAVA中的异常类都继承自Throwable类,也就是说,这是异常类的根。Throwable类扩展了两个类Error类和Exception类,Exception类又扩展了一个RuntimeException类。如下图: Error:称为错误,由Java虚拟机生成并抛出,这类错误一般是运行时系统内部的 ...
分类:
编程语言 时间:
2017-12-28 11:41:38
阅读次数:
200
在《深入理解Java虚拟机》(第二版,周志明著)中,作者介绍了JVM必须初始化类(或接口)的五种情况,但是是针对JDK7而言的。 那么,在JDK8中,这几种情况有没有变化呢?(我猜测应该会有扩展) 接下来我们探讨一下JDK8中JVM类的初始化这一部分内容。 官方文档为The Java® Virtua ...
分类:
其他好文 时间:
2017-12-27 14:17:46
阅读次数:
220
一、java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返 ...
分类:
编程语言 时间:
2017-12-27 11:48:19
阅读次数:
181
1.Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 也相当与 注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。 如上图所示,首先Java源代码文件 ...
分类:
其他好文 时间:
2017-12-25 20:54:36
阅读次数:
110
最近开始看《深入Java虚拟机》这本书了,刚好看到这篇文章,所以分享给大家,其实就是一些书本中重要的要点分条例写出来了,让人看书对整体结构的把控更加的清晰! 在C里面我们想执行一段自己编写的机器指令的方法大概如下: typedef void(*FUNC)(int); char* str = "you ...
分类:
编程语言 时间:
2017-12-25 18:20:08
阅读次数:
166