1.什么是多线程? 多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。 2.了解多线程 了解多线程之前我们先搞清楚几个重要的概念! 如上图所示:对我们的项目有一个主内存,这个主内存里面存放了我们的共享变量、方法区、堆中的对象等。 3. ...
分类:
编程语言 时间:
2018-09-30 00:52:38
阅读次数:
231
Java虚拟机内存区域 Java虚拟机所管理的内存由以下五个运行时数据区域组成。 1.程序计数器 可以把程序计数器看作当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选择下一条需要执行的字节码指令。 由于JVM的多线程是通过线程轮流切换并分配处 ...
分类:
编程语言 时间:
2018-09-29 21:30:06
阅读次数:
136
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。 元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型 ...
分类:
编程语言 时间:
2018-09-27 18:01:05
阅读次数:
185
近期开始学习JVM,看的是周老师的《深入理解Java虚拟机》,打算先自己编译个JDK来提升对JVM的兴趣。本文分三部分来描述编译OpenJDK的过程,分别是编译前准备工作、构建编译环境、进行编译,在这三部分内容中顺带把趟的坑一起说明下。 一、编译前准备工作 1.1 安装Linux环境 编译OpenJ ...
分类:
系统相关 时间:
2018-09-24 18:26:20
阅读次数:
539
本文来自 唐大麦 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/soonfly/article/details/70147205?utm_source=copy 在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 ...
分类:
其他好文 时间:
2018-09-23 19:14:55
阅读次数:
168
解释了java中对象的在内存中的模型,学习了对象的内存模型后,对理解多态、参数传递等的理解都有帮助。 前言:这是一篇关于JVM内存区域的文章,由网上一些有关这方面的文章和《深入理解 Java虚拟机》整理而来,所以会有些类同的地方,也不能保证我自己写的比其他网上的和书本上的要好,也不可能会这样。写博客... ...
分类:
其他好文 时间:
2018-09-22 22:27:17
阅读次数:
235
最近开始肝第三次<深入理解Java虚拟机-JVM高级特性与最佳实践>, 每次都是看了就忘, 所以这次准备写点东西记录下来. 个人感觉这本书写的是真的不错, 不同的阶段看有不同的体验, 每次都有很多收获. 话不多说, 直接进入正题. 什么是JVM Java Vitual Machine, 是一个运行J ...
分类:
其他好文 时间:
2018-09-13 23:59:51
阅读次数:
301
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下 ...
分类:
编程语言 时间:
2018-09-13 22:39:43
阅读次数:
216
一、根搜索算法: (1)定义:通过一系列名为"GC Roots"的对象作为起点,从这些起点开始向下搜索,搜索走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连的时候,则证明此对象不可用 (2)GC Roots对象包括这几种:虚拟机栈中引用的对象;方法区中的类静态属性引用的对象;方法 ...
分类:
编程语言 时间:
2018-09-13 14:05:02
阅读次数:
179
1.JDK:java程序设计语言、java虚拟机、javaAPI 二、自动内存管理机制 1.运行时数据区域: (1)java虚拟机在执行java程序的过程中会把所管理的内存划分为若干个不同的数据区域。这些区域有着各自的用途,以及创建和销毁的时间,有些区域随着虚拟机的启动而存在,有些区域则是依赖用户线 ...
分类:
编程语言 时间:
2018-09-12 13:08:52
阅读次数:
140