在看java虚拟机字节码执行引擎的时候,里面提到了java虚拟机里调用方法的字节码指令有5种: 前4种很容易理解,但是第5种笔者本人从这段描述上无法理解这个invokedynamic到底是什么东西,于是决定从实践入手来剖析一下。 invokedynamic本身是字节码命令,我们想直接调用这个命令只能 ...
分类:
编程语言 时间:
2017-01-23 17:24:21
阅读次数:
169
类加载器基本概念 顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责 ...
分类:
其他好文 时间:
2017-01-18 12:00:17
阅读次数:
203
服务器性能监控:是指针对服务器系统的运行状态以及各项指标的监控,具体的监控指标请参考:可以监控到服务器的哪些性能指标?通过自定义监控,您能随心所欲的监控您想监控的数据,如Memcached、Java虚拟机、论坛在线人数等等。对各种监控项目支持自定义告警设置,这样您可以更..
分类:
其他好文 时间:
2017-01-17 21:58:01
阅读次数:
125
JDK(JavaDevelopmentKit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JavaRuntimeEnvironment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是JavaVirtualMachine(Java虚拟机)的缩写,是整..
分类:
其他好文 时间:
2017-01-17 21:57:32
阅读次数:
143
Java代码编译后生成一种与平台无关的字节码(也就是class文件)。当然,这种字节码不是可执行的,必须使用Java解释器来解释执行。 负责解释执行字节码文件的是Java虚拟机,即JVM。JVM是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚 ...
分类:
其他好文 时间:
2017-01-16 19:53:37
阅读次数:
150
由于在编译阶段,只是检查参数的引用类型。然而在运行时,Java虚拟机(JVM)指定对象的类型并且运行该对象的方法。因此在下面的例子中,b.move()之所以能编译成功,是因为Animal类中存在move方法,所以编译成功,然而运行时,运行的是特定对象的方法,即运行的是Dog类的move方法。而对Do ...
分类:
编程语言 时间:
2017-01-15 22:47:21
阅读次数:
434
Runtime类描述了虚拟机一些信息。该类采用了单例设计模式,可以通过静态方法 getRuntime()获取Runtime类实例。下面演示了获取虚拟机的内存信息: 输出结果: Runtime类提供gc()方法,用于释放Java虚拟机的一些无用空间。gc是garbage collection的缩写,就 ...
分类:
编程语言 时间:
2017-01-15 18:06:22
阅读次数:
180
JVM中的异常发生 Java虚拟机规范中除了程序计数器外,其他几个运行时区域都有发生OutOfMemoryError异常的可能。 本章笔记通过代码来验证Java虚拟机规范中描述的各个运行时区域存储的内容、以及在以后遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域出现的内存溢出、怎样的代码 ...
分类:
编程语言 时间:
2017-01-14 21:00:28
阅读次数:
263
Java虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,有各自的创建时间和销毁时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束进行建立或销毁。Java虚拟机第二版规定,虚拟机管理的内存包含以下几个运行时数据区域 ...
分类:
编程语言 时间:
2017-01-14 20:08:23
阅读次数:
283
1、java中的四种引用类型(级别由高到低为:强引用,软引用,弱引用和虚引用) 1.1 强引用:默认创建的变量都是强引用,垃圾回收机制不会将其回收,当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止 1.2 软引用(SoftReference):内存不足时, ...
分类:
编程语言 时间:
2017-01-13 20:44:29
阅读次数:
276