Java中this、static关键字的内存图解
Java中的关键字有很多,abstract default goto* null switch boolean do if package nchronzed break double implements private this byte else import protected throw throws case extends instanceof public transient catch false int return true char final interface short try class finally long static void const* float native strictfp volatile continue for new super while assert enum ( 注:带*好的关键字现在已不使用。)
Java中goto 和 const 没有任何意义。assert是在JDK1.4之后增加进来的,enum是在JDK1.5之后增加进来的。
java中的两个保留关键组:
const n. 常量,常数 用于修改字段或局部变量的声明。它指定字段或局部变量的是常数,不能被修改。
goto vi. 转到 指定跳转标签,找到标签后,程序将处理从下一行开始的命令。
先说明一下Java中重中之重的几个概念吧!JVM、Java编译器、Java解释器
注意:
1、JVM负责运行字节码:JVM把每一条要执行的字节码交给解释器,翻译成对应的机器码,然后由解释器执行。
2、JVM解释执行字节码文件就是JVM操作Java解释器进行解释执行字节码文件的过程。
再说一下程序运行的一般步骤:
(1)Java编译器将.java文件编译成 .class文件
(2)JVM将字节码文件交给解释器,翻译成对应的机器码,由解释器执行
Java解释器:是JVM的一部分。Java解释器用来解释执行Java编译器编译后的程序。java.exe可以简单看成是Java解释器。
Java编译器:将Java源文件(.java文件)编译成字节码文件(.class文件,是特殊的二进制文件,二进制字节码文件),这种字节码就是JVM的“机器语言”。javac.exe可以简单看成是Java编译器。
JVM(够运行Java字节码(Java bytecode)的虚拟机)中把内存分为直接内存、方法区、Java栈、Java堆、本地方法栈、PC寄存器等。
直接内存:就是原始的内存区
方法区:用于存放类、接口的元数据信息,加载进来的字节码数据都存储在方法区
Java栈:执行引擎运行字节码时的运行时内存区,采用栈帧的形式保存每个方法的调用运行数据
本地方法栈:执行引擎调用本地方法时的运行时内存区
Java堆:运行时数据区,各种对象一般都存储在堆上
PC寄存器:功能如同CPU中的PC寄存器,指示要执行的字节码指令。
JVM的功能模块主要包括类加载器、执行引擎和垃圾回收系统。
一、this关键字在内存中的图解
this关键字其实本身没有什么难度的,但是在工作中,其实本身也用不到这些,但是这些最基础的东西往往才是最具有生命力的,要想长远发展,这些基础的东西一定是烂熟于心的,对问题的深入理解,有很大好处,还是传智播客的视频中讲到的this关键字内存图解:
这里面需要注意的是,在程序运行的时候,Java编译器将java文件编译成class文件,JVM操作Java解释器执行字节码文件
具体来说就是首先会在方法区创建class文件区(这里还有静态区的初始化),之后main方法进栈,在栈中进行对象的创建,在堆中进行实例化,栈中的对象通过内存中的位置标识指向堆中的new出来的对象的实例,对象中的方法的执行在栈中,执行完之后就会销毁!

二、static关键字的内存图解
这里需要注意的是相同对象其实是共用一个静态区中的静态static属性或者方法的

Java中this、static关键字的内存图解的更多相关文章
- (转)Java中的static关键字解析
转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: &q ...
- 关于Java中的static关键字
Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较 ...
- Java中的static关键字解析
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...
- (转)Java中的static关键字解析
转自http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “sta ...
- Java中的static关键字解析 转载
原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到 ...
- Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...
- Java中的static关键字
写在前面: 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰 ...
- java中的static关键字详解
static对于我们这些初学者在编写代码和阅读代码是一个难以理解的关键字,也是大量公司面试题最喜欢考的之一.下面我就来就先讲述一下static关键字的用法和我们初学者容易误解的地方. static关键 ...
- 【Java学习笔记之十五】Java中的static关键字解析
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...
随机推荐
- bzoj4289 PA2012 Tax——点边转化
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4289 好巧妙的转化!感觉自己难以想出来... 参考了博客:https://blog.csdn ...
- css 实现元素四角图片样式,元素的大小不定
demo 效果 css body { margin:; } .popup p{ margin-bottom:20px; margin-left:200px; } .popup p span{ disp ...
- 表单中的readOnly 和disabled
readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: disabled也可以禁用按钮和链接: <butt ...
- bzoj 4827: [Hnoi2017]礼物【FFT】
记得FFT要开大数组!!开到快MLE的那种!!我这个就是例子TAT,5e5都RE了 在这题上花的时间太多了,还是FFT不太熟练. 首先看70分的n方做法:从0下标开始存,先n--,把a数组倍增,然后枚 ...
- 洛谷P3211 [HNOI2011]XOR和路径(期望dp+高斯消元)
传送门 高斯消元还是一如既往的难打……板子都背不来……Kelin大佬太强啦 不知道大佬们是怎么发现可以按位考虑贡献,求出每一位是$1$的概率 然后设$f[u]$表示$u->n$的路径上这一位为$ ...
- 洛谷P3239 [HNOI2015]亚瑟王(期望dp)
传送门 stdcall大佬好强 期望的姿势不是很高……据大佬说期望有一个线性性质,也就是说可以把每一张牌的期望伤害算出来然后再加起来就是总的期望伤害 因为每一张牌只能用一次,我们设$dp[i]$表示第 ...
- Luogu P1396 营救【最小生成树/二分答案/最短路】 By celur925
题目描述 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门…… 妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小 ...
- Luogu P1233 木棍加工 【贪心/LIS】
题目描述 一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的.棍子可以被一台机器一个接一个地加工.机器处理一根棍子之前需要准备时间.准备时间是这样定义的: 第一根棍子的准备时间为1分钟: 如果刚处理 ...
- poj 3164 Command Network (朱刘算法)
题目链接: http://poj.org/problem?id=3164 题目大意: 有n个点(用坐标表示)各点编号分别为1—>n,m条单向路,问能否存在一个花费价值最小的网络,能使从1点到达任 ...
- ACboy needs your help HDU - 1712
ACboy needs your help HDU - 1712 ans[i][j]表示前i门课共花j时间最大收益.对于第i门课,可以花k(0<=k<=j)时间,那么之前i-1门课共花j- ...