[TOC] 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 动态加载和动态连接 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的。 类加载的时机 类的生命周期 类 ...
分类:
编程语言 时间:
2018-02-03 23:17:19
阅读次数:
386
GC需要完成: 哪些内存需要回收 什么时候回收 如何回收 如何确定对象不再使用 引用计数算法 给对象添加一个引用计数器,当有一个地方引用它时,计数器值进行加1操作;当引用失效时,计数器值进行减1操作;当计数器值为0,则说明对象不可能再被使用。但是它无法解决循环引用的问题。 上述代码最后面两句将obj ...
分类:
编程语言 时间:
2018-02-03 22:01:33
阅读次数:
230
程序计数器(Program Counter Register):一块较小的内存空间,可看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。Java虚拟机的多线程是 ...
分类:
编程语言 时间:
2018-02-03 21:58:25
阅读次数:
154
1.Java的运行环境 jre:Java运行环境 jre = Java虚拟机 + 核心类库 jdk:Java开发工具集 jdk = jre + 开发工具 jre:Java运行环境 jre = Java虚拟机 + 核心类库 jdk:Java开发工具集 jdk = jre + 开发工具 2.安装jdk注 ...
分类:
编程语言 时间:
2018-02-02 21:58:54
阅读次数:
171
一、信息形式——“大脑信息工程学” 我从事认知方面的探索已有五六年,时至今日,已经渐进成熟,故尝试运用个人自创的知识来演示学习当中的一些独特技巧,欢迎“诸神”留言指教。 这种技巧就是展现独特的信息形式。 在认知工作方面(如果有一门学科形容它的话,我愿意称之为“大脑信息工程学”),本系列的笔记侧重于对 ...
分类:
编程语言 时间:
2018-02-02 18:29:52
阅读次数:
174
1.什么是java虚拟机?为什么把java称作是“无关平台的语言”? java虚拟机是一个可以执行Java字节码的虚拟进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。 Java 虚 ...
分类:
编程语言 时间:
2018-02-01 23:15:46
阅读次数:
198
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。 Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编 ...
分类:
编程语言 时间:
2018-02-01 22:06:06
阅读次数:
119
博文重点: 学习目标:哪些内存需要回收 什么时候回收 如何回收 在基于概念讨论的模型中,主要对Java堆和方法区进行讨论。 why?:一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样。只有在程序运行期间才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,g ...
分类:
编程语言 时间:
2018-02-01 13:06:38
阅读次数:
140
Java提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。整个过程都是Java虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完
分类:
编程语言 时间:
2018-01-31 14:42:11
阅读次数:
168
假设你现实中没有对象。至少你在java世界里会有茫茫多的对象,听起来是不是非常激动呢? 对象,引用,类与现实世界 现实世界里有许很多多的生物,非生物,跑的跳的飞的,过去的如今的未来的,令人眼花缭乱。我们编程的目的,就是解决现实生活中的问题。所以不可避免的我们要和现实世界中各种奇怪的东西打交道。 在现 ...
分类:
编程语言 时间:
2018-01-30 22:51:47
阅读次数:
195