面向对象编程OOP 01 方法__repr__()和__str__() __repr__()方法类似java中的toString方法,用于反馈类的相关信息且可以自己定义,一般用于开发人员控制台调试 __rept__()和__str__()方法区别 在控制台交互测试时: 输入b返回__rept__() ...
分类:
编程语言 时间:
2019-07-05 21:08:49
阅读次数:
170
JVM的内存结构根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。1.Java虚拟机栈:线程私有;每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态连接,方法返回地址等;每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。2.堆:线程共享;被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例。3.方法区:线程共享;被所
分类:
数据库 时间:
2019-07-04 17:18:32
阅读次数:
144
栈 主要用于计算的,计算都在方法中的而方法调用在栈。栈的东西使用完成就赶紧清除的,所以栈不会产生垃圾,会立即清除 方法区 存储类的信息 也没有垃圾 堆 无用的对象(垃圾) 我们程序员干预和参与不了垃圾处理机制的整个过程,我们只是能通知 java针对所有的数据类型的内存从一开始就确定了,整个内存的开辟 ...
分类:
其他好文 时间:
2019-07-02 21:21:25
阅读次数:
121
Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”。 根据“Java中的变量与数据类型”中的介绍,“变量是在内存中分配的保留区域的名称。换句话说,它是一个内存位置的名称 ...
分类:
编程语言 时间:
2019-07-02 00:21:46
阅读次数:
169
JVM 的内存划分 JVM 将内存主要划分为:方法区、栈、本地方法栈、堆、程序计数器。 方法区存:又叫静态区,存放所有的class和static变量;方法区中包含的都是在程序中永远的唯一的元素。 虚拟机栈:执行引擎每调用一个函数时,就为这个函数创建一个栈帧,并加入虚拟机栈。换个角度理解,每个函数从调 ...
分类:
其他好文 时间:
2019-07-01 18:38:07
阅读次数:
127
1.JVM内存模型 线程独占:栈,本地方法栈,程序计数器线程共享:堆,方法区 回答以上问题是需回答两个要点:1. 各部分功能2. 是否是线程共享 2.JMM与内存可见性JMM是定义程序中变量的访问规则,线程对于变量的操作只能在自己的工作内存中进行,而不能直接对主内存操作.由于指令重排序,读写的顺序会 ...
分类:
编程语言 时间:
2019-06-29 10:49:37
阅读次数:
120
一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优 Java对象模型 oop-klass、对象头 ...
分类:
编程语言 时间:
2019-06-28 21:04:23
阅读次数:
179
一.如何判断对象已经死亡 1.引用计数 无法处理循环引用的情况 2.可达性分析 目前主流实现方式。 原理: 从GC Roots对象作为起点开始查询,如果有引用链说明对象存活,反之就是已经死亡。 GC Roots对象: (1)栈(栈帧)中引用的对象。 (2) 方法区中类静态变量引用的对象。 (3)方法 ...
分类:
其他好文 时间:
2019-06-23 20:42:11
阅读次数:
106
本文主要是介绍jvm内存模型 废话不多说,这里直接上图 首先上一个粗略草图,大体可以了解清楚 1.jvm大概是有三大部分组成,分别为类装载子系统,运行时数据区和执行引擎组成 2.运行时数据区大概分为5大部分,分别为:堆,栈,本地方法栈,方法区,程序计数器 3.栈,本地方法栈,程序计数器线程是共享的, ...
分类:
其他好文 时间:
2019-06-23 14:09:06
阅读次数:
95
1.JVM(java virtual mechinal) 2.JVM虚拟机主要有堆、栈、本地方法栈、方法区组成 (1)堆 (2)栈 (3)本地方法栈 (4)方法区 1)一个普通的java对象A出生在新生代的Eden区,当Eden区新生对象太多时,对象A会被调去Survivor区。 2)Survivo ...
分类:
其他好文 时间:
2019-06-20 14:11:24
阅读次数:
78