一、认识Thread的 start() 和 run()1。start():我们先来看看API中对于该方法的介绍: 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。 多次启动一个线...
分类:
编程语言 时间:
2015-05-11 23:54:19
阅读次数:
146
Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提。
简单通俗的讲,一个完整的Java程序运行过程会涉及以下内存区域:
寄存器:JVM内部虚拟...
分类:
编程语言 时间:
2015-05-11 22:08:32
阅读次数:
169
1.Java运行原理 编译+解释型语言: 程序代码经编译后转换为一种称为java字节码(.class文件)的中间语言 file.java---》Class.class java虚拟机JVM将字节码解释为机器码,然后在计算机上运行。编译只进行一次,而解释在每次运行程序时都会进行。2.定义常...
分类:
编程语言 时间:
2015-05-11 19:36:36
阅读次数:
143
引言 这一章讲的是Java虚拟机的内存区域可以分为几个部分,书中讲到可以分为五个部分:分别是堆、栈、程序计数器、方法区、本地方法栈 其中堆里存放了对象的实例 而常说的基本数据类型,以及对象的引用就是存放在栈中的,其实更确切的说是存放在虚拟机栈的局部变量表中,虚拟机栈除了局部变量表之外,还担任了描述的...
分类:
编程语言 时间:
2015-05-10 16:57:22
阅读次数:
207
引言 对于Java中的垃圾回收机制,我们需要了解几个方面,本文也是从这几个方面通过回答这些问题而弄明白Java中的垃圾是如何回收的 首先我们要知道哪些内存需要回收,这一部分涉及到的算法有引用计数算法,根搜算法,但引用计数算法无法解决对象之间相互循环引用的问题。 知道了哪些内存需要回收之后,我们还需要...
分类:
编程语言 时间:
2015-05-10 16:54:38
阅读次数:
295
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名...
分类:
编程语言 时间:
2015-05-10 14:08:13
阅读次数:
101
异常处理异常类类Throwable有两个直接子类:Error和Exception。RuntimeException和IOException等继承ExceptionError类对象(错误),由Java虚拟机生成并抛弃(通常,Java程序不对这类异常进行处理);Exception类对象是Java程序处理...
分类:
编程语言 时间:
2015-05-10 14:06:09
阅读次数:
260
1.Serial收集器优点,是简单而高效,单线程避免了线程交互的开销.缺点,进行垃圾回收时需要Stop the world(暂停所有用户线程).2.ParNew收集器它是Serial收集器的多线程版本,新生代才有多线程并行收集.是CMS收集器(下文会介绍)的默认新生代收集器.ParNew在单CPU的...
分类:
编程语言 时间:
2015-05-10 11:23:40
阅读次数:
157
众所周知,Java程序员写的代码是没有办法控制Java对象的内存释放的,完全有JVM暗箱操作.虽然程序员把内存的释放的任务都交给了Java虚拟机,但是并不代表Java程序就不存在内存泄漏.反而,某程度上,当出现内存泄漏,Debug会变得难度更大.所以,Java程序员,有必要去了解Java虚拟机对于内...
分类:
编程语言 时间:
2015-05-10 00:46:45
阅读次数:
214
##5.1 Java虚拟机内存模型## Java虚拟机内存模型是Java程序运行的基础。JVM将其内存数据分为程序计数器,虚拟机栈,本地方法栈,Java堆和方法区等部分。 **程序计数器**:用于存放下一条运行的指令; **虚拟机栈和...
分类:
其他好文 时间:
2015-05-09 23:44:50
阅读次数:
288