首页 > 其他分享 >1/31JVM虚拟机 类加载

1/31JVM虚拟机 类加载

时间:2024-01-31 22:34:48浏览次数:27  
标签:初始化 Java 31JVM 虚拟机 线程 引用 加载

  1. loading加载

     

     JAVA。lang包底下的reflect。反编译从应用破解源码,盗版!

  2. 加载已经在内存中有大的class文件

     验证

     准备阶段静态变量都初始化为0,常量都已经初始化好

  3. 符号引用  一个字节码文件不可能全装下各种需要用到的类,而是用一个符号代指,解析就是把符号引用变成指针或偏移量

     

  4. 初始化

     方法中自动有 

     

     按先后顺序初始化,有一个常量

  5. 一个特殊,可以先定义声明后改变值

     初始化之前已经有准备阶段

  6. 这是类的构造器方法 如果没有类变量,就不会自动生成

     类变量的加载只加载一次

  7. 类加载器的分类

     

     

     

     

  8. 核心类库 由引导类加载

     

     

     

     

  9. 自定义类加载器  隔离各个容器

     

     

  10. 双亲委派机制

     引导类 Java底下的包都归它管,比如Java.lang

     为了保护

     知道报错原因,因为核心String类库没有main方法

  11.  

    双亲委派机制的优势

     

     

     

  12.  

    沙箱安全机制 

     放在你用引导类加载器加载自己的恶意攻击

     

     

     动态链接需要这个信息

  13.  

    类的被动使用

     主动?被动使用的区别就在于clinit()方法会不会使用

  14.  

    运行时数据区

     

     

  15.  

    原来Java线程和本地线程是一一印射的

     

     守护线程

     

     

     

  16. 程序计数器  北京烤鸭的钩子,勾住代码  软件层面是一种模拟

     既没有GC也没有OOM

     

     

     

  17.  

    虚拟机栈

     

     

     

     

  18. 为什么不需要GC,只能进站出站,没有复杂的算法

     

     

     

     

     

     

     

  19. 局部变量表

     

     

     

     

     

     

     

     字节码行长度

     15是idea中的行号,一一对应,8是字节码文件的行号

     start PC+length是作用域范围,16就是代码范围长度

  20. 槽slot

     

     

     

     引用类型占据一个slot,普通方法第一个就是this

     

     

     

     

  21. 操作数栈 结合执行引擎

     

     

     

  22. 栈顶缓存

     

     

     

  23. 动态链接

     

     

     常量池里啥都有 将符号引用转换为直接地址引用

     

     为什么不直接放

     因为Java全是引用

     

     标志位Final就不能被重写,就确定了

  24. 非虚方法和虚函数

     

标签:初始化,Java,31JVM,虚拟机,线程,引用,加载
From: https://www.cnblogs.com/lvshy/p/18000275

相关文章

  • 解决hive-cli客户端on spark 不能正常加载本地的native库
    问题现象CDH版本:6.3.21)使用hive-clionspark运行的时候,出现如下错误:FAILED:ExecutionError,returncode3fromorg.apache.hadoop.hive.ql.exec.spark.SparkTask.Sparkjobfaileddueto:Jobabortedduetostagefailure:AbortingTaskSet0.0becausetask0(par......
  • easyui-datagrid 加载数据 方法二 ( 自定义返回值 json方式)
    效果图 html部分<tableclass="my_table"><tr><tdclass='my_dt_label'>主叫号码:</td><tdclass='my_dt_field'><inputtype='text'id='select_callerid&......
  • easyui-datagrid 加载数据 方法一( 数据绑定方式 )
     效果图 html 部分<divstyle='padding:0px0px7px12px;'><tableclass="my_table"><tr><tdclass='my_dt_label'>姓名:</td><tdclass='......
  • element实现大图预览和图片动态加载
    element的el-image组件支持大图预览模式,但需要和小图模式配合使用,项目中刚好有需求需要直接使用大图预览并且需要支持图片的动态加载,研究了一下el-image组件的源码发现el-image组件是通过引用image-viewer组件实现的大图预览的,刚好可以利用一下!image-viewer属性urlList:图......
  • (二)VS2022启动项目调试显示“正在加载......的符号”的解决方法
    之前重来没有遇到过的问题,自从安装了VS2022后,每次调试都会显示“正在加载......”的弹框,虽然对程序没有多大影响,但是这种体验非常不友好,于是找了许多方法,下面是亲测有效的方法:一、检查“工具”》“选项”》“调试”》“符号”是否去√。二、检查“工具”》“选项”》“调试”......
  • Android的ListView分页功能(上滑加载更多)
    Android的ListView分页功能(上滑加载更多)首先要定义一个footer.xml作为进度条和提示加载中的底部布局,代码如下:<LinearLayoutandroid:id="@+id/load_layout"android:layout_width="match_parent"android:layout_height="wrap_content"......
  • 在@KafkaListener启动之前需要做数据的预加载,该在Spring生命周期的哪个阶段做这个事情
    背景说明1、在Spring中消费Kafka数据时,最便捷的方法就是给方法加@KafkaListener注解。在数据消费逻辑中,需要先把一些配置信息预加载到内存中。有同事就提了一个问题:如果保证在消费者执行前,预加载数据的代码一定能执行完?也就是说,要等待数据预加载完成之后,再执行消费逻辑。大部分......
  • [转]解决Visual Studio 调试时加载符号慢的问题 - zhaotianff - 博客园
    什么是调试符号编译程序时生成的一组特殊字符,并包含有关变量和函数在生成的二进制文件中的位置以及其他服务信息的信息。该数据集可用于逐步调试程序或检查第三方代码。调试符号可以添加到可执行文件或库中,但是大多数现代编译器将它们存储为单独的对象。例如,VisualStudio将调......
  • Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--加载字体
    项目地址:Pdfium.Net:https://github.com/1000374/Pdfium.NetPdfiumViewer:https://github.com/1000374/PdfiumViewerPdfium.Net加载字体:1.加载ttf字体文件using(vardoc=PdfDocument.CreateNew()){varfontPath=@"c:\Windows\fonts\simhei.ttf";......
  • 未能加载文件或程序集或它的某一个依赖项
    https://jingyan.baidu.com/article/9f63fb916591e7c8400f0efe.html1、输入win+r,在弹出的输入框中输入inetmgr,快速打开iis2、点击应用程序池,可查看所有程序池 3、选中本项目使用的程序池,右键选择高级设置 4、看到启用32位应用程序位置为false 5、修改为true,保存。 ......