一、前言 讲这3个方法区别的文章太多了,但是大部分写的都很绕。本文试图从实践角度去讲这3个方法。 二、escape和它们不是同一类 简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。编码之后的效果是%XX或者%uXXXX这种形式。其中 A ...
分类:
Web程序 时间:
2017-08-09 19:11:02
阅读次数:
237
加载是类加载的一个阶段。不要弄混淆了 这一阶段主要做了下面三件事。1.通过一个类的全限定名获取此类的二进制流 2.将这个二进制流代表的静态存储结构转化为方法区的运行时数据结构 3.在内存中生成java.lang.Class对象,作为访问入口 .通过一个类的全限定名获取此类的二进制流:这一步说的不明确 ...
分类:
编程语言 时间:
2017-08-06 23:00:33
阅读次数:
200
1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向 ...
分类:
编程语言 时间:
2017-08-06 19:43:07
阅读次数:
146
一:线程的基本概念 线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢? 每个进程是一个应用程序,都有独立的内存空间 同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的栈。) 1.什么是进程? 一个进程对应一个应用程序。例如 ...
分类:
编程语言 时间:
2017-08-05 09:51:19
阅读次数:
139
一、JVM主要的结构如下: 二、各个区域功能介绍 1)、方法区(Method Area): (1)用于存储虚拟机加载的类信息、常量、静态变量等,是各个线程共享的内存区域; (2)默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法 ...
分类:
编程语言 时间:
2017-08-03 21:48:16
阅读次数:
178
范围:要回收哪些区域在JVM五种内存模型中,有三个是不须要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。由于它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自己主动释放。所以仅仅有方法区和堆须要进行GC。前提:如何推断对象已死全部的垃圾收集算法都面临同一个问题。那就是找出应用程序不 ...
分类:
其他好文 时间:
2017-08-03 13:42:22
阅读次数:
224
2017-08-03 JAVAse 1:静态变量和成员变量的区别: 所属不同:静态变量属于类,所以也称为类变量 成员变量属于对象,也称为实例变量 内存中位置不同:静态变量存储余方法区的静态区 成员变量存储于堆内存 内存出现时间不同:静态变量随着累的加载而加载,随着累的消失而消失 成员变量随着对象的创 ...
分类:
其他好文 时间:
2017-08-03 10:05:16
阅读次数:
169
转自:http://blog.csdn.net/heyutao007/article/details/38151581 1、JVM内存组成结构 JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示: 1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来 ...
分类:
编程语言 时间:
2017-08-02 16:01:19
阅读次数:
264
java数据类型 java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。 一、JVM对内存的管理 1.栈内存 调用方法名,在方法中声明的一些基本数据类型 2.堆内存 new关键字new出来的对象,引用数据类型 3.方法区 静态变量,常量,类的信息 注意 ...
分类:
编程语言 时间:
2017-08-01 19:21:21
阅读次数:
127
根据《深入理解java虚拟机》这本书总结 书中有一段话,大体的意思是:java和c之间有一堵墙,墙里的人想出来,墙外的人想进去,这堵墙就是垃圾回收机制了。 一、为什么要理解垃圾回收机制? java的垃圾回收,是自动完成的,一般情况下并不需要去关注,但是当遇到一些并发量、数据量比较大的时候,可能就会出 ...
分类:
其他好文 时间:
2017-07-31 17:24:04
阅读次数:
122