1.JRE和JDK JRE(Java Runtime Environment),顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK(Java Development Kit),是提供 ...
分类:
编程语言 时间:
2017-07-22 20:00:19
阅读次数:
165
图解 Java 内存区域及内存溢出异常 在阅读 《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 》后,为了加深对 Java 内存区域的印象及理解,特意做成了思维导图。 名词解释 线程共享数据区域 直接内存 并不是虚拟机运行时数据区的一部分,也不是 Java 虚拟机规范中定义的内存区。N ...
分类:
编程语言 时间:
2017-07-22 18:11:10
阅读次数:
164
之前在学Java的时候对于Java虚拟机中的内存分布有一定的了解,但是最近在看一些C,发现居然自己对于C语言的内存分配了解的太少。 问题不能拖,我这就来学习一下吧,争取一次搞定。 在任何程序设计环境及语言中,内存管理都十分重要。 这篇学习博客主要分为三个部分: 第一部分主要介绍内存管理基本概念,重点 ...
分类:
编程语言 时间:
2017-07-22 14:42:25
阅读次数:
290
1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte、short、int、lon ...
分类:
其他好文 时间:
2017-07-21 17:13:49
阅读次数:
134
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。 进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Ja ...
分类:
编程语言 时间:
2017-07-21 10:37:34
阅读次数:
153
Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。为什么要分代?堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。..
分类:
编程语言 时间:
2017-07-20 14:17:02
阅读次数:
175
Java 源文件(.java) 使用 Java编译器(javac.exe)编译 生成 java字节码文件(.class) 使用 解释执行器(java.exe) 将字节码文件加载到java虚拟机(jvm) Java虚拟机执行字节码文件(jvm实现跨平台的功能) ...
分类:
编程语言 时间:
2017-07-20 00:46:09
阅读次数:
223
JVM中的JIT 介绍Java虚拟机的文章或者书籍总会提到Java虚拟机中的JIT编译器,可是JIT编译器到底是什么?为什么需要JIT编译呢? JIT编译器,是Just In Time编译的意思,又称即时编译。 Java程序是先从源代码编译到字节码,然后由Java虚拟机来解释执行字节码。当Java虚 ...
分类:
其他好文 时间:
2017-07-19 20:24:48
阅读次数:
177
一、JVM和jdk概念说明:1.JVM是Java虚拟机,所有的Java程序都在Java虚拟机中运。2.JDK是Java开发工具包,用来开发Java程序,是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库3.jdk中有一个编译器,可以把你的java源代码编译成可以在虚拟机(jvm)上运行的字节码..
分类:
编程语言 时间:
2017-07-19 20:24:23
阅读次数:
187
class是关键字 Class是类,在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个 Class对象,用于表示这个类的类型信息。Class类不是我们认为创建的,是由java虚拟机,在我们生成.class文件的时 ...
分类:
其他好文 时间:
2017-07-19 18:27:16
阅读次数:
197