当前位置: 首页 > wzjs >正文

上海网络平台网站建设seo排名诊断

上海网络平台网站建设,seo排名诊断,网站程序安装,各网站特点根据Java虚拟机的规范,JVM的内存区域可以细分为程序计数器、虚拟机栈、本地方法栈、堆和方法区。 其中方法区和线程是共享的,虚拟机栈、本地方法区和程序计数器是线程私有的。 介绍一下程序计数器? 程序计数器也被称为PC寄存器。是一块较小…

根据Java虚拟机的规范,JVM的内存区域可以细分为程序计数器、虚拟机栈、本地方法栈、堆和方法区。

其中方法区和线程是共享的,虚拟机栈、本地方法区和程序计数器是线程私有的。

介绍一下程序计数器?

程序计数器也被称为PC寄存器。是一块较小的内存空间。他可以看作是当前线程所执行的字节码文件指示器。

介绍一下Java虚拟机栈?

Java 虚拟机栈的⽣命周期与线程相同。

当线程执⾏⼀个⽅法时,会创建⼀个对应的栈帧,⽤于存储局部变量表、操作数栈、动态链接、⽅法出⼝等信息,然后栈帧会被压⼊虚拟机栈中。当⽅法执⾏完毕后,栈帧会从虚拟机栈中移除。

⼀个什么都没有的空⽅法,空的参数都没有,那局部变量表⾥有没有变量?

对于静态⽅法,由于不需要访问实例对象 this,因此在局部变量表中不会有任何变量。

对于⾮静态⽅法,即使是⼀个完全空的⽅法,局部变量表中也会有⼀个⽤于存储 this 引⽤的变量。this 引⽤指向当前实例对象,在⽅法调⽤时被隐式传⼊。

详细解释⼀下:

⽐如说有这样⼀段代码:

public class VarDemo1 {public void emptyMethod() {
// 什么都没有}
public static void staticEmptyMethod() {
// 什么都没有}
}

⽤ javap -v VarDemo1 命令查看编译后的字节码,就可以在 emptyMethod 中看到这样的内容:

这⾥的 locals=1 表示局部变量表有⼀个变量,即 this,Slot 0 位置存储了 this 引⽤。

⽽在静态⽅法 staticEmptyMethod 中,你会看到这样的内容:

这⾥的 locals=0 表示局部变量表为空,因为静态⽅法属于类级别⽅法,不需要 this 引⽤,也就没有局部变量。


介绍一下本地方法栈?

本地⽅法栈与虚拟机栈相似,区别在于虚拟机栈是为 JVM 执⾏ Java 编写的⽅法服务的,⽽本地⽅法栈是为 Java 调⽤本地 native ⽅法服务的,通常由 C/C++ 编写。

在本地⽅法栈中,主要存放了 native ⽅法的局部变量、动态链接和⽅法出⼝等信息。当⼀个 Java 程序调⽤⼀个native ⽅法时,JVM 会切换到本地⽅法栈来执⾏这个⽅法。

介绍一下本地方法栈的运行场景?

当 Java 应⽤需要与操作系统底层或硬件交互时,通常会⽤到本地⽅法栈。

⽐如调⽤操作系统的特定功能,如内存管理、⽂件操作、系统时间、系统调⽤等

详细说明⼀下:

⽐如说获取系统时间的 System.currentTimeMillis() ⽅法就是调⽤本地⽅法,来获取操作系统当前时间的。

再⽐如 JVM ⾃身的⼀些底层功能也需要通过本地⽅法来实现。像 Object 类中的 hashCode() ⽅法、 clone() ⽅法等。

native ⽅法解释⼀下?

native ⽅法是在 Java 中通过** native 关键字**声明的,⽤于调⽤⾮ Java 语⾔,如 C/C++ 编写的代码。Java 可以通过JNI,也就是 Java Native Interface 与底层系统、硬件设备、或者本地库进⾏交互。

介绍一下Java堆?

堆是 JVM 中最⼤的⼀块内存区域,被所有线程共享,在** JVM 启动时创建**,主要⽤来存储 new 出来的对象

Java 中“⼏乎”所有的对象都会在堆中分配,堆也是垃圾收集器管理的⽬标区域。

从内存回收的⻆度来看,由于垃圾收集器⼤部分都是基于分代收集理论设计的,所以堆⼜被细分为 新⽣代 、 ⽼年代 、 Eden空间 、 From Survivor空间 、 To Survivor空间 等。

随着 JIT 编译器的发展和逃逸技术的逐渐成熟,“所有的对象都会分配到堆上”就不再那么绝对了。

从 JDK 7 开始,JVM 默认开启了逃逸分析,意味着如果某些⽅法中的对象引⽤没有被返回或者没有在⽅法体外使⽤,也就是未逃逸出去,那么对象可以直接在栈上分配内存。


堆和栈的区别是什么?

堆属于线程共享的内存区域,⼏乎所有 new 出来的对象都会堆上分配,⽣命周期不由单个⽅法调⽤所决定,可以在⽅法调⽤结束后继续存在,直到不再被任何变量引⽤,最后被垃圾收集器回收。

栈属于线程私有的内存区域,主要存储局部变量、⽅法参数、对象引⽤等,通常随着⽅法调⽤的结束⽽⾃动释放,不需要垃圾收集器处理。


介绍一下方法区?

⽅法区并不真实存在,属于 Java 虚拟机规范中的⼀个逻辑概念,⽤于存储已被 JVM 加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等。

在 HotSpot 虚拟机中,⽅法区的实现称为永久代 PermGen,但在 Java 8 及之后的版本中,已经被元空间Metaspace 所替代。


变量存在堆栈的什么位置?

对于局部变量,它存储在当前⽅法栈帧中的局部变量表中。当⽅法执⾏完毕,栈帧被回收,局部变量也会被释放。

public void method() {int localVar = 100; // 局部变量,存储在栈帧中的局部变量表⾥
}

对于静态变量来说,它存储在 Java 虚拟机规范中的⽅法区中,在 Java 7 中是永久带,在 Java8 及以后 是元空间。

public class StaticVarDemo {public static int staticVar = 100; // 静态变量,存储在⽅法区中
}
http://www.dtcms.com/wzjs/319790.html

相关文章:

  • 简约大方网站百度网站收录查询
  • 简单的企业网站的主页seo关键词查询
  • 网站页面建议百度经验官网
  • 公安局网站建设方案淄博网站优化
  • 做营销型网站用什么技术关键词诊断优化全部关键词
  • 自己做的网站怎么置顶哈尔滨百度推广联系人
  • 去除wordpress版权信息吉林seo管理平台
  • php网站开发实例视频网站友情链接出售
  • 郑州高端网站深圳网络优化seo
  • 做外汇的官方网站成人企业管理培训课程
  • 深度网站建设系统优化大师免费版
  • 律师手机网站模板互联网电商平台
  • 建设第三方公众号平台网站教程宁波seo教程行业推广
  • 营销型网站建设哪家专业西安百度关键词包年
  • 中国水运建设行业协会网站线上渠道推广怎么做
  • 珠海建设工程信息网站搜索引擎营销的6种方式
  • 移动开发网站开发区别郑州品牌网站建设
  • 音乐类网站建设选题背景爱站网官网查询域名
  • 云南网站排名培训机构排名全国十大教育机构排名
  • 网站流量怎么挣钱网络营销买什么好
  • 佛山网站建设公司电话文件外链生成网站
  • 制作网站团队营销技巧和营销方法心得
  • 现在网站的外部链接怎么做百度推广哪种效果好
  • 平台类网站建设价格表seo优化方式
  • 网站做滚动图seo引擎搜索
  • 太仓网站优化今日头条新闻最全新消息
  • 云计算 网站建设网络推广竞价
  • 公益网站建设的意义网站建设培训机构
  • 广西金水建设开发有限公司网站参考消息今天新闻
  • 网站建设流程 费用网站 推广