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

微信网站是什么意思seo研究学院

微信网站是什么意思,seo研究学院,wordpress 页面 js,邯郸网站推广怎么做文章目录 初识jvm内存结构程序计数器(寄存器) 栈问题辨析内存溢出 线程诊断本地方法栈Heap堆内存溢出内存诊断 方法区内存溢出常量池 stringTable直接内存垃圾回收 初识jvm JRE JVM 基础类库 JDK JRE 编译工具 JavaSE JDK IDE工具 JavaEE JDK 应用服务器 IDE工具 jvm是…

文章目录

  • 初识jvm
  • 内存结构
    • 程序计数器(寄存器)
    • 问题辨析
    • 内存溢出
  • 线程诊断
  • 本地方法栈
  • Heap堆
    • 内存溢出
    • 内存诊断
  • 方法区
    • 内存溢出
    • 常量池
  • stringTable
  • 直接内存
  • 垃圾回收

初识jvm

JRE = JVM + 基础类库
JDK = JRE + 编译工具
JavaSE = JDK + IDE工具
JavaEE = JDK + 应用服务器 +IDE工具
jvm是java程序的运行环境
好处:

  • 一次编写,到处运行
  • 自动内存管理,垃圾回收功能
  • 数组下标越界检查
  • 多态
    学习路线:JVM内存结构–>垃圾回收GC–>Java Class–>ClassLoader–>JIT Compiler即时编译器

在这里插入片描述

内存结构

程序计数器(寄存器)

用来记住此线程下一条jvm指令的执行地址
特点:

  • 是线程私有的
  • 不会存在内存溢出(唯一不会内存溢出的jvm内存结构)

每个栈都是一个线程运行需要的内存空间
栈帧,每个方法运行时需要的内存
每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法
在调试里面可以看栈\栈帧\内存\开销等

问题辨析

垃圾回收是否涉及栈内存?
不需要,栈帧运行完,自动回收
栈内存定义分配越大越好嘛
不一定,栈内存定义越大,同时运行的线程越少
方法内的局部变量是否线程安全?

  • 如果方法局部变量没有逃离方法的作用访问,它是线程安全的
  • 如果是局部变量引用了对象,并逃离方法的作用方法(返回值),需要考虑线程安全
    是不是线程安全的,主要看是不是有变量线程共享,有变量线程共享就可能引发安全问题,也要看后续采取的解决措施

内存溢出

栈溢出异常:stackOverFlowError
一般一个栈为1024K大小

  • 栈帧过多导致栈内存溢出
  • 栈帧过大导致栈内存溢出

线程诊断

CPU占用过多

  • top定位哪个进程对cpu的占用过高
  • ps H -eo pid,tid,%cpu | grep 进程id(用ps命令进一步定位是哪个线程引起的cpu占用过高)
  • jstack 进程id,可以根据线程id找到有问题的线程,进一步定位到问题代码的源码行号
    程序运行很长时间没有结果
    比如,死锁
  • 还是用jstack 进程id排查

本地方法栈

存放一些不用java代码实现的代码,比如调用一些底层的C代码(比如系统函数,java实现不了的功能),提供内存空间

Heap堆

通过new关键字,创建对象都会使用堆内存
特点

  • 线程共享,堆中对象都需要考虑线程安全的问题
  • 有垃圾回收机制

内存溢出

堆溢出异常:OutOfMemoryError
堆空间大小同样可以设置

内存诊断

  • jps工具,查看当前系统中有哪些java进程
  • jmap工具,查看堆内存占用情况,jmap -heap 进程id
  • jconsole工具,图形界面的,多功能的检测工具,可以连续监测
  • jvisualvm,可视化虚拟机jconsole的加强工具

方法区

方法区的存储与堆的区别:
方法区内容,类名\字段\方法的字节码,静态变量
堆内容,new出来的对象

内存溢出

  • 1.8以前会导致永久代内存溢出
  • 1.8以后会导致元空间内存溢出
    在这里插入图片描述从图中可以看到,方法区一直是一个概念性的区域,1.6时,就是堆中的永久代,(其实图中不应该把堆和方法区分成两块)
    1.8以后从堆中分离,放入本地内存中

常量池

.class反编译后可以显示,类基本信息\常量池\类方法定义\包含了虚拟机指令
常量池会保存类的信息
常量池,就是一张表,虚拟机指令根据这张常量表找到要执行的类名\方法名\参数类型\字面量等信息
运行时常量池,常量池是*.class文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址

stringTable

底层原理还是要看反编译的class文件是怎么做的,因为java在语法上有语法糖等因素,不够清晰

直接内存

垃圾回收

http://www.ds6.com.cn/news/44007.html

相关文章:

  • 淮北公司做网站最近社会热点新闻事件
  • 江苏做网站的公司有哪些百度官网登录
  • 叫人做国外公司网站让老外做好还是国内人做好网络整合营销理论
  • 莒县网站制作百度一下你就知道了百度
  • 无锡知名网站推广女生学电子商务好吗
  • 织梦做信息类网站seo指导
  • 金融投资网站模板中国最新军事新闻直播
  • 男做基视频网站b2b电商平台有哪些
  • 潍坊高端网站设计上海seo培训中心
  • wordpress 公网seo搜索优化是什么
  • ecilpse做网站成都网站建设
  • 海南房产网站开发口碑营销的缺点
  • 高古楼网站找活做百度店面定位怎么申请
  • 加强心理咨询网站的建设方案互联网电商平台有哪些
  • 西安北郊网站建设企业邮箱
  • 制作网页模板素材网站性能优化的方法有哪些
  • 做的网站为什么图片看不了做搜索引擎优化的企业
  • 网站建设战略伙伴服务营销理论
  • 电商型网站建设价格qq引流推广平台
  • 十堰网站建设专家微信管理系统登录
  • 江门外贸网站建设如何用手机免费创建网站
  • 高中生自己做网站怎么提交百度收录
  • 怎样对一个网站做seoapp优化建议
  • 人与狗做的电影网站微信scrm
  • 专门做母婴的网站什么是网络销售
  • seo诊断站长成都网站推广
  • 大连 响应式网站制作手机优化大师官方免费下载
  • 沙田镇网站仿做上海排名优化seobwyseo
  • 微信公众号如何做网站seo关键词怎么优化
  • 彩票网站我想自己做哈尔滨seo关键词