死锁的总结
死锁的定义:
死锁一般是指两个(或两个以上)线程同时竞争两个(或者多个)资源,从而产生同时等待的现象,使得系统僵持不动。
顺便复习一下线程与进程的定义以及他们之间的区别。
进程:一个有独立功能的程序利用某些数据资源的一次远行过程。
线程:一个进程里面的一条执行路径(或者执行过程),同一条进程下的n多条线程之间可以互相通信(共享数据)。
区别:...
分类:
其他好文 时间:
2014-07-29 14:30:28
阅读次数:
314
Java语言是一种编译后再经过解释器执行的过程, 解释器主要就是如何处理解释Class文件的二进制字节流。JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎。 虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化,最终就会形成可以被虚拟机使用的J...
分类:
编程语言 时间:
2014-07-26 14:11:05
阅读次数:
279
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机的进程的启动而存在,有些区域则是依赖用户的线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括一下几个运行..
分类:
其他好文 时间:
2014-07-23 21:27:36
阅读次数:
221
条件格式,顾名思义就是某个单元格满足某个条件就应用某种格式。可利用其在一个数据区域内,将小于60的单元格标红,隐藏,加粗等等操作。数据如下图我现在要将不及格的分数标出来,步骤如下。setp1选中要应用条件格式的单元格,然后选中home标签,点击conditionalformatting---..
分类:
其他好文 时间:
2014-07-23 21:23:06
阅读次数:
254
上一回对JVM运行时数据区域的组织结构进行了概述,这一回将对各个组成进行详解。程序计数器【ProgramCounterRegister】程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数..
分类:
其他好文 时间:
2014-07-23 21:16:16
阅读次数:
233
直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是这部分内存也被频繁的使用,而且也可能导致OutOfMemoryError异常出现,在JDK1.4中新加入了NIO类,引入了一种基于通道与缓冲区的I/O方式,它可以使用Native函数库直接分配堆外内存,然后..
分类:
其他好文 时间:
2014-07-23 21:15:26
阅读次数:
228
介绍完Java虚拟机的运行时数据区后,我们就可以探讨在Java语言中,对象访问是如何进行的?如下面这句代码:Objectobj=newObject();假设这句代码出现在方法体中,那“Objectobj”这部分的语义将会反映到Java栈的本地变量表中,作为一个reference类型数据出现。而“newObject()”..
分类:
其他好文 时间:
2014-07-23 21:12:56
阅读次数:
281
static为静态变量,其数据存储在静态存储区,也叫全局数据区。很多文章上都把他分为“面向过程的static”和“面向函数的static”来进行讲解。我们这里仅仅从“面向过程的static”也就是静态全局变量和静态局部变量方面来进行阐述。 1、 未被初始化的静态变量自动初始化为0int mai...
分类:
其他好文 时间:
2014-07-22 00:04:36
阅读次数:
280
Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时 动态分配...
分类:
编程语言 时间:
2014-07-19 12:25:30
阅读次数:
223
JVM运行时数据区的内存模型由五部分组成:【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈对于String s = "haha" ,它的虚拟机指令:0: ldc #16; //String haha2: astore_13: return对于上面虚拟机指令,其各自的指令流程在《深...
分类:
编程语言 时间:
2014-07-16 18:48:18
阅读次数:
217