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

微信网站是什么意思百度广告推广电话

微信网站是什么意思,百度广告推广电话,网站建设 提成,网络营销的八大职能有哪些文章目录 初识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.dt0577.cn/news/44472.html

相关文章:

  • 网站被入侵别人是怎么做跳转的域名购买哪个网站好
  • 不属于网站架构浙江专业网站seo
  • 门户网站安全建设重庆网站建设推广
  • 用织梦模板怎么做动态网站友情链接发布
  • 如何衡量网站的价值纹身网站设计
  • 怎么做阿里国际网站的数据分析百度关键词推广可以自己做吗
  • 做的网站怎么样才能再网上看到优化seo招聘
  • 网站防止被采集百度24小时人工电话
  • 长沙营销网站建设公司成人职业技术培训学校
  • 广州网站建设八爪鱼同城发广告的平台有哪些
  • wordpress用什么服务seoul怎么读
  • 做网站的公司如何推广网络推广怎么做方案
  • 营销型网站建设知识如何制作视频网站
  • 温州网站建设哪家专业广州百度推广排名优化
  • 淄赌博做网站腾讯域名
  • 广州网站服务国外推广网站
  • 哈尔滨信息网seo网络排名优化技巧
  • 在wordpress主题后台安装了多说插件但网站上显示不出评论模块江苏短视频seo搜索
  • 做一个团购网站的成本百度账号批发网
  • 建立网站站点的过程windows优化大师官方下载
  • 医疗网站建设公司市场调研报告怎么写
  • 专业微网站建设公司首选公司零基础学什么技术好
  • 常德规划建设局网站百度问一问在线咨询客服
  • 织梦cms做视频网站百度seo营销公司
  • 小清新网站源码百度公司怎么样
  • 做网站得花多钱长沙seo工作室
  • 外贸网站每天多少ipseo团队管理系统
  • 专业做物业网站的公司成都seo推广
  • 银川网站开发培训网站搜索优化技巧
  • 网站运营目标微博指数