在java内存运行时区域的各个部分中:程序计数器,虚拟机栈,本地方法栈随线程生和灭,对于java中的堆和方法区,、只能在程序运行期间才知道会创建哪些对象,这部分内存的分配和回收是动态的,垃圾收集器所关注的主要是这部分内存。哪些内存需要回收?什么时候回收?如何回收?垃圾收集器对堆进行回收前需先确定哪些...
分类:
其他好文 时间:
2015-07-09 00:43:23
阅读次数:
102
【根搜索算法】这个算法的基本思路是:对任何“活”的对象,一定能最终追溯到其存活在堆栈或静态存储区之中的引用。可以作为根的对象-虚拟机栈(栈桢中的本地变量表)中的引用的对象。-方法区中的类静态属性引用的对象。-方法区中的常量引用的对象。-本地方法栈中JNI的引用的对象。方法区是jvm的一块内存区域,用...
分类:
编程语言 时间:
2015-07-08 22:15:25
阅读次数:
261
方法区永久代,共享。类信息,常量,static变量,JIT编译后的代码。运行时常量池:字面量,符号引用。堆所有对象(新生代,老年代)虚拟机栈线程私有。表示方法执行的内存模型。【局部变量表】本地方法栈程序计数器字节码行号。线程私有。【Objectobj=newObject();】——Objectobj...
分类:
其他好文 时间:
2015-07-08 22:13:07
阅读次数:
138
Java虚拟机具有一个堆,是运行时的数据区域,所有类实例和数组内存均从此处分配。堆是在java虚拟机启动时创建的。堆是留给开发人员用的内存区域。非堆就是JVM留给自己用的(方法区,JVM内部处理或优化所需的内存,运行时的常量池,字段方法数据等)。JVM初始分配的内存由-Xms指定,默认为物理内存的1...
分类:
编程语言 时间:
2015-07-06 21:40:24
阅读次数:
138
Class,Method,Field间接调用引入方法。java.lang.invoke包,方法句柄,反射的现代化,去掉套路化代码。【MethodHandler】保存类信息的永久代内存:方法区。方法句柄适用于任何方法签名,而Callable接口只用于无参方法。【MethodType】方法签名类型,不可...
分类:
其他好文 时间:
2015-07-03 23:17:08
阅读次数:
226
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类...
分类:
编程语言 时间:
2015-07-03 15:31:36
阅读次数:
114
Class对象杂记 1、Class的获取方法区别 获取Class对象途径:1、Class clazz = Class.forName("xx.xx.A"); ???????????????????????????? 2、Class clazz = A.class; 这俩区别 第一方...
分类:
编程语言 时间:
2015-07-02 19:42:49
阅读次数:
120
Java中变量分为静态变量,实例变量,临时变量。他们在JVM中存储的位置如下:静态变量位于方法区实例变量作为对象的一部分,保存在堆中。临时变量保存于栈中,栈随线程的创建而被分配。附JVM结构图
分类:
其他好文 时间:
2015-06-29 23:44:40
阅读次数:
192
我们知道,在存储方式上,成员变量在JVM中是存储在堆里边的,而静态变量则位于JVM中的方法区,两者的主要区别在于,成员变量不再受引用常常会导致被回收,而方法区对垃圾回收的限制相当严苛,除非是整个应用被卸载,否则静态变量会一直存在。在android应用中使用成员变量,在退出应用之后,所有的成员变量肯定...
分类:
编程语言 时间:
2015-06-29 16:32:25
阅读次数:
124
转载请注明:http://blog.csdn.net/uniquewonderq
在上一次的案例中,通过get或者load方法得到的结果一样。
既然得到的结果一样,
那么 get和load方法查询记录的区别是什么呢?
区别一:
在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句,发出selelct语句,去查找这个记录或者说对象,返回本身的持久化对象。
load...
分类:
Web程序 时间:
2015-06-25 17:35:38
阅读次数:
145