一:成员变量和局部变量的区别 1、范围: 员变量定义在类中,在整个类中都可以被访问。 局部变量定义在局部范围内,如:函数内,语句内等。 2、存储: 成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。 局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。 3、默认值 ...
分类:
其他好文 时间:
2017-07-20 00:54:19
阅读次数:
156
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类 ...
分类:
编程语言 时间:
2017-07-16 18:22:45
阅读次数:
148
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类 ...
分类:
编程语言 时间:
2017-07-15 22:54:55
阅读次数:
276
方法区:用于存放已被虚拟机加载的类信息、常量、静态变量、编译器编译后的代码等数据。 当方法区无法满足内存分配需求时,会抛出OutOfMemoryError异常。 方法区是线程共享的。堆:在虚拟机启动时创建,用于存放对象实例和数组元素。 如果堆中没有内存完成实例分配,并且堆也无法扩展时,会抛出OutO... ...
分类:
编程语言 时间:
2017-07-15 17:59:52
阅读次数:
205
在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表。 在过去(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收,因此类也可以被看成“永久的”。另外由于类作为JV ...
分类:
其他好文 时间:
2017-07-14 13:35:41
阅读次数:
1682
一 概述 1.垃圾 JVM垃圾收集针对的是主要是堆中的垃圾,因为线程启动时在栈中分配空间,线程结束,自动释放空间,不需要实时监控;方法区主要存储类信息以及静态变量与常量,通常在整个程序运行期间都有效,不存在需要回收的对象。 垃圾指的是无法被线程访问的对象,一个对象只有对线程可见,可被线程访问,才可用 ...
分类:
编程语言 时间:
2017-07-14 13:13:59
阅读次数:
188
1.JVM管理的内存包含下图所示的几个运行时数据区域,其中方法区和堆为线程共享的数据区域,程序计数器,虚拟机栈以及本地方法栈为线程私有的数据区域。 程序计数器:可以看做是当前线程所执行的字节码的行号指示器,告诉字节码解释器该读取哪条指令 虚拟机栈:生命周期和线程相同,每个方法在执行的同时都会创建一个 ...
分类:
编程语言 时间:
2017-07-14 00:31:59
阅读次数:
207
本条要点:(作者总结) 给私有方法的名称加上前缀,这样可以很容易地将其同公共方法区分开。 不要单用一个下划线做私有方法的前缀,因为这样做法是预留给苹果公司用的。 一个类所做的事情通常都要比从外面看到的更多。编写类的实现代码时,经常要写一些只在内部使用的方法。笔者建议,应该为这种方法的名称加上某些前缀 ...
分类:
其他好文 时间:
2017-07-12 10:28:23
阅读次数:
217
静态可以认为是缓存,在软件启动的时候,就给静态成员分配了存储空间,在整个软件生命期内存在,直到系统退出才被垃圾回收器回收销毁。对不经常发生变化又使用频繁的东东,比如配置词语,可以使用静态的,减少和数据库的频繁交互、提升系统性能某些比较昂贵的资源,比如数据库连接对象,声明成静态完全没有必要,这是因为即 ...
分类:
其他好文 时间:
2017-07-10 12:12:28
阅读次数:
158
在java中,有两种创建String类型变量的方式: 第一种方式创建String变量时,首先查找JVM方法区的字符串常量池是否存在存放"abc"的地址,如果存在,则将该变量指向这个地址,不存在,则在方法区创建一个存放字面值"abc"的地址。 第二种方式创建String变量时,在堆中创建一个存放"ab ...
分类:
其他好文 时间:
2017-07-09 23:54:06
阅读次数:
247