这一节我们来简单的介绍垃圾收集器,并学习垃圾标记的算法:引用计数算法和根搜索算法,为了更好的理解根搜索算法,会在文章的最后介绍Java对象在虚拟机中的生命周期。
分类:
编程语言 时间:
2017-05-16 13:06:57
阅读次数:
250
前言 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。 Sca ...
分类:
其他好文 时间:
2017-05-16 00:37:29
阅读次数:
238
一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。 JAVA_OPTS参数说明 -server 启用jdk 的 server 版; -Xms Java虚拟机初始化时的最小 ...
分类:
其他好文 时间:
2017-05-15 15:04:30
阅读次数:
246
Java虚拟机运行时数据区域 ⑴背景:对于c/c++来说程序员来说,需要经常去关心内存运行情况,但对于Java程序员,只需要在必要时关心内存运行情况,这是因为在Java虚拟机自动内存管理机制的帮助下,不再Java程序员需要为每一个新生成对象去释放资源,这些事情都将交由Java虚拟机去做,但为什么我们 ...
分类:
编程语言 时间:
2017-05-15 14:09:09
阅读次数:
181
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,可以让在某个 Java 虚拟机上的对象调用还有一个 Java 虚拟机中的对象上的方法。可以用此方法调用的不论什么对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都 ...
分类:
编程语言 时间:
2017-05-14 20:36:42
阅读次数:
237
JMM的关键技术点都是围绕着多线程的原子性、可见性和有序性来建立的 一、原子性(Atomicity) 原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。 比如,对于一个静态全局变量int i,两个线程同时对它赋值,线程A给他赋值1,线程B给它赋值 ...
分类:
编程语言 时间:
2017-05-14 00:47:51
阅读次数:
306
特点: 跨平台-一处编译,到处执行、 面向对象、 安全性 开发环境搭建: a.开发工具 eclipse(日食)-sum公司(绿色版的改编),免费、 myeclipse eclipse的增强版,收费 b. JDK(java开发工具包)、 JRE(java开发环境)、 JVM(java虚拟机) Java ...
分类:
编程语言 时间:
2017-05-13 23:18:34
阅读次数:
255
Java是按照运行时数据的存储结构来划分内存结构的,java虚拟机规范将java运行时的诗句划分为6种: 1.PC寄存器 用于保存当前执行程序的内存地址,同时java程序是多线程的,不可能一直都按照线性执行下去,当有多个线程交叉执行时,被中断的线程程序当前执行到哪条的内存地址需要记录下来。 2.ja ...
分类:
其他好文 时间:
2017-05-13 20:08:05
阅读次数:
137
1、强引用(StrongReference) 强引用是使用最普遍的引用。假设一个对象具有强引用。那垃圾回收器绝不会回收它。例如以下: [java] view plaincopyprint? Object o = new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutO ...
分类:
编程语言 时间:
2017-05-13 17:04:26
阅读次数:
214
一 、java虚拟机底层结构详解 我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现JVM时它内部的体系结构,更重要的是提供了一种方式,用于严格定义实现时的外部行为。每个JVM都有两种机制 ...
分类:
编程语言 时间:
2017-05-13 16:06:23
阅读次数:
229