中间件一开始是为了解决一个很头疼的问题: Java 无法直接操纵内存,内存访问必须经过 JVM ( Java 虚拟机)。因此,直接操纵内存的部分最好由 C/C++来完成,再由 Java 调用 C/C++的函数。这样一来,就有了专门用 C/C++开发的中间件,供 Java 调用。后来,在数据库的不断发 ...
分类:
其他好文 时间:
2018-10-16 19:22:35
阅读次数:
226
内存区域总的分为:方法区、堆、虚拟机栈、本地方法区和程序计数器: 1,程序计数器(program counter register):看作当前线程所执行的字节码计数器,通过改变计数器的值来确定下一条需执行的字节码指令。由于java多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,对于但处理 ...
分类:
编程语言 时间:
2018-10-16 18:45:29
阅读次数:
181
1、进程、线程、服务和任务的区别 进程(process),是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。同样,每次执行JDK的java.exe程序,就启动了一个独立的Java虚拟机进程 ...
分类:
编程语言 时间:
2018-10-16 15:52:24
阅读次数:
142
运行时数据区域: 1、程序计数器:线程执行时的字节码行号指示器。 2、java虚拟机栈(Stack):java方法执行的内存模型。调用方法的时候,就会创建一个虚拟机栈,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。 3、本地方法栈:存放需要调用到的Native方法的相应数据。 以上三者是线 ...
分类:
编程语言 时间:
2018-10-16 01:38:00
阅读次数:
216
JVM 内部原理(一)— 概述 JVM 内部原理(二)— 基本概念之字节码 JVM 内部原理(三)— 基本概念之类文件格式 JVM 内部原理(四)— 基本概念之 JVM 结构 JVM 内部原理(五)— 基本概念之 Java 虚拟机官方规范文档,第 7 版 JVM 内部原理(六)— Java 字节码基 ...
分类:
其他好文 时间:
2018-10-15 20:50:41
阅读次数:
163
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈 ...
分类:
其他好文 时间:
2018-10-15 20:50:23
阅读次数:
272
Java运行详解 一、从机器语言到高级语言 计算机只认识0、1,对应于电路中低电平和高电平。因此,早期程序员使用特定的0、1串操控计算机,从而达到想要的目标效果。这些0、1串就称作指令,也叫机器码(比如0000代加载,000代表寄存器A,000000000000 代表地址为0的存储器,所以0000, ...
分类:
编程语言 时间:
2018-10-15 00:41:23
阅读次数:
229
作为一名Java使用者,掌握JVM的体系结构也是必须的。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示: 运行期环境代表着Java平台 ...
分类:
编程语言 时间:
2018-10-14 16:58:04
阅读次数:
137
一、Java 异常继承框架 Error: Error类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。 对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。 Exception: 在Exception分支中有一个重要的子类Runti ...
分类:
编程语言 时间:
2018-10-14 13:42:39
阅读次数:
180
一、虚拟机的类加载机制 我们先看看类加载机制的定义,再来说法这一个加载流程。《深入理解JVM虚拟机》第二版中是这么解释的:虚拟机吧描述类的数据从Class问价加载到内存并对数据进行校验/转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 另外要注意的是,Java ...
分类:
编程语言 时间:
2018-10-13 02:42:39
阅读次数:
111