首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Unity3D学习笔记

    JVM学习笔记(二)- class文件解读

    根据JVM规范得到class 文件结构定义如下: ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class ; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count -1]:对应的常量池数组 u2 access_flags:访问修饰符,如:public,private,protected,violated, u2 this_class:当前类的类名 u2 super_class :当前类的父类 u2 interfaces_count:当前类实现的接口数 u2 interfaces[interfaces_count]:当前类实现的接口列表 u2 fields_count:当前类的字段数量

    48110发布于 2021-02-01
  • 来自专栏JavaNew

    从字节码层面看“HelloWorld”

    字节码文件的格式固定如下: type descriptor u4 magic u2 minor_version u2 major_version u2 constant_pool_count cp_info constant_pool[cosntant_pool_count – 1] u2 access_flags u2 this_class u2 super_class u2 interfaces_count u2 interfaces[interfaces_count] u2 fields_count field_info fields[fields_count minor_version(u2):00 00,小版本号,因为我这里采用的1.7,所以小版本号为0. major_version(u2):00 33,大版本号,x033转换为十进制为51,下表是jdk method_info:方法表,其结构如下: Type Descriptor u2 access_flag u2 name_index u2 descriptor_index u2

    50310编辑于 2022-05-09
  • 来自专栏爱可生开源社区

    OB 运维| OB Oracle 系统视图权限导致的故障一例

    SQL> create user u2 identified by u2; User created. SQL> grant execute on proc_case1 to u2; Grant succeeded. -- 创建存储过程同义词 SQL> conn u2/u2 Connected. SQL> conn u2/u2 Connected. : U2 SYS[U2]> create synonym proc_case1 for u1.proc_case1; Query OK, 0 rows affected (0.05 sec) SYS[U2 U2[U2]> set serveroutput on; Query OK, 0 rows affected (0.44 sec) U2[U2]> call proc_case1(); Query

    87120编辑于 2023-10-23
  • 来自专栏程序猿讲故事

    了解一下Java字节码

    类型 数量 名称 中文含义 u4 1 magic 魔数 u2 1 minor_version 小版本号 u2 1 major_version 大版本号 u2 1 constant_pool_count 常量数 cp_info constant_pool_count - 1 constant_pool 常量池 u2 1 access_flags 访问标记 u2 1 this_class 当前类 u2 1 super_class 父类 u2 1 interfaces_count 实现的接口数 u2 interfaces_count interfaces 接口列表 u2 1 fields_count 字段个数 { u2 : start_pc; (字节码的开始偏移量) u2 : end_pc; (字节码的结束偏移量) u2 : handler_pc; (catch异常的处理代码偏移量) u2 ) u2 : length; (变量声明周期的结束量) u2 : name_index; (常量池引用) u2 : decriptor_index; (描述引用) u2 : index

    1.7K30发布于 2020-02-10
  • 来自专栏noteless

    [一]class 文件浅析 .class文件格式详解 字段方法属性常量池字段 class文件属性表 数据类型 数据结构

    ; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count     {   u2 start_pc;         u2 end_pc;         u2 handler_pc;         u2 catch_type start_pc;         u2 end_pc;         u2 handler_pc;         u2 catch_type; ?     {  u2 start_pc;         u2 length;         u2 name_index;         u2 descriptor_index ;     {  u2 start_pc;         u2 length;         u2 name_index;         u2

    1.6K20发布于 2018-09-11
  • 来自专栏正则

    Java 虚拟机字节码指令

    无符号数属于基本的数据类型,以 u1、u2、u4、u8 分别代表1个字节、2个字节、4个字节、8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或 utf-8 编码构成的字符串值。 每一个 class 文件对应于一个如下所示的 ClassFile 结构体: ClassFile { u4 magic;//魔数 u2 minor_version;//副版本号 u2 major_version ;//主版本号 u2 constant_pool_count;//常量池计数器, cp_info constant_pool[constant_pool_count-1];//常量池列表 u2 access_flags ;//访问标志 u2 this_class;//类索引,表示这个Class文件所定义的类或接口 u2 super_class;//父类索引 u2 interfaces_count;//接口计数器 u2 ];//字段表 u2 methods_count;//方法计数器 method_info methods[methods_count];//方法表 u2 attributes_count;//属性计数器

    51320编辑于 2021-12-06
  • 来自专栏GoUpUp

    Go 每日一库之 go-cmp

    , u1 == u2) fmt.Println("u1 equals u2?" , u1 == u2) fmt.Println("u1 equals u2 with same pointer?" , u1 == u2) fmt.Println("u1 equals u2 with different pointer?" , cmp.Equal(u1, u2)) } 上面的例子中,我们将==与cmp.Equal放在一起做个比较: 在指针类型的字段Contact未设置时,u1 == u2和cmp.Equal(u1, u2 而cmp.Equal(u1, u2)可以比较指针指向的内容,从而返回true。 以下是运行结果: u1 == u2? true u1 equals u2?

    2.3K30发布于 2020-09-08
  • 来自专栏全栈程序员必看

    类文件介绍

    类文件的格式如下: ClassFile { u4 magic; u2 minor_version; u2 -1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 is created: bool _synthetic_flag; int _sde_length; char* _sde_buffer; u2 instanceKlassHandle _super_klass; ConstantPool* _cp; Array<u2>* _fields; Array<Method*

    61330发布于 2021-04-07
  • 来自专栏刘君君

    JVM ClassFile Structure

    其结构在 Java虚拟机规范中有如下定义: ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool [constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count ]; u2 fields_count; field_info fields[fields_count]; u2

    49630发布于 2019-12-11
  • 来自专栏做个开发者

    写了那么多 Java 代码,却不一定见过它的真面目

    u2 major_version; u2 constant_pool_count; cp_info constant_pool [constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count 无符号数是基本类型,u1、 u2、 u4、 u8 分别表示 1 个字节、 2 个字节、 4 个字节和 8 个字节的无符号数。

    33220编辑于 2022-07-29
  • 来自专栏波波烤鸭

    Class文件结构介绍[属性表集合]

    名称 类型 数量 attribute_name_index u2 1 attribute_length u4 1 max_stack u2 1 max_locals u2 1 code_length u4 名称 类型 数量 attribute_name_index u2 1 attribute_length u4 1 number_of_exceptions u2 1 exception_index_table 名称 类型 数量 attribute_name_index u2 1 attribute_length u4 1 line_number_table_length u2 1 line_number_table u2 1 name_indec u2 1 descriptor_index u2 1 index u2 1 ?    u2 1 inner_class_access_flags u2 1 参考《深入理解Java虚拟机》

    2.1K21发布于 2019-04-02
  • 来自专栏全栈程序员必看

    java class类文件「建议收藏」

    minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 u2 access_flags;//Class 的访问标记 u2 this_class;//当前类 u2 super_class;//父类 u2 interfaces_count;//接口 u2 interfaces[interfaces_count];//一个类可以实现多个接口 2.2 Class 文件版本 u2 minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 紧接着魔数的四个字节存储的是 Class 文件的版本号 查看类的访问标志 2.5 当前类索引,父类索引与接口索引集合 u2 this_class;//当前类 u2 super_class;//父类 u2 interfaces_count;//接口 u2

    56030编辑于 2022-09-22
  • 来自专栏波波烤鸭

    Class文件结构介绍[常量池]

    值为9 index u2 指向声明字段的类或接口描述符CONSTANT_Class_info的索引项 index u2 指向字段描述符CONSTANT_NameAndType的索引项 CONSTANT_Methodref_info tag u1 值为10 index u2 指向声明方法的类描述符CONSTANT_Class_info的索引项 index u2 指向名称及类型描述符CONSTANT_NameAndType的索引项 u2 指向名称及类型描述符CONSTANT_NameAndType的索引项 CONSTANT_NameAndType_info tag u1 值为12 index u2 指向该字段或方法名称常量项的索引 index u2 指向该字段或方法描述的索引 CONSTANT_MethodHandle_info tag u1 值为15 reference_kind u2 值必须在[1,9]之间,它决定了方法句柄的类型 u2 值必须是对当前常量池的有效索引,常量池在该处的索引必须是CONSTANT_NameAndType_info结构,表示方法名和方法描述符 参考《深入理解Java虚拟机》

    1.6K30发布于 2019-04-02
  • 来自专栏cloudskyme

    总结一下Class 文件结构

    minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 u2 constant_pool_count ;//Class 的访问标记 u2 this_class;//当前类 u2 super_class;//父类 u2 interfaces_count;//接口 u2 interfaces[interfaces_count];//一个类可以实现多个接口 u2 2.2 Class 文件版本 u2 minor_version;//Class 的小版本号 u2 major_version;//Class 2.5 当前类索引,父类索引与接口索引集合 u2 this_class;//当前类 u2 super_class;//父类 u2

    54920发布于 2020-06-16
  • 来自专栏shysh95

    Class文件字段表

    在经历过了魔数(u4)、文件版本(u2+u2)、常量池(u2(常量池元素的数量)+具体字节数)、类访问标记(u2)、类索引(u2)、父类索引(u2)、接口(u2(接口的数量) + 具体的字节数)之后,我们便进入了类的内部 字段表主要由以下属性构成: u2的访问标志 u2的简单名称索引 u2的描述符 u2的字段属性数量 具体的属性信息 access_flags 作为一个熟悉Java开发的同学来说,对于的类中的字段的修饰符必定不会陌生

    1.3K10发布于 2021-01-03
  • 来自专栏图形学与OpenGL

    第3章代码-光栅化与裁剪

    = 1, dx = x2 – x1, dy; //u1为始点参数,初值0;u2为终点参数,初值1 if (clipTest(-dx, x1-XL, &u1, &u2)) //计算左边界交点参数 ,更新u1,u2 if (clipTest(dx, XR-x1, &u1, &u2)) //计算右边界交点参数,更新u1,u2 { dy=y2-y1 ; if(clipTest(-dy, y1-YB, &u1, &u2)) //计算下边界交点参数,更新u1,u2 if (clipTest(dy, YT-y1, &u1, &u2))//计算上边界交点参数,更新u1,u2 { if(u2 < 1){ ) *u2 = r; } else if (q < 0) retVal = 0; return retVal; }

    90041发布于 2020-09-18
  • 来自专栏Java学习网

    java原理之Java 解析 Class 文件过程学习

    u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count -1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info u2 start_pc; u2 end_pc; u2 handler_pc; u2 catch_type; } exception_table[exception_table_length

    77320发布于 2018-12-07
  • 来自专栏后端技术学习

    JVM学习三

    jvm规范,类文件的结构如下: classFile{ u4 magic; #魔数,表示其是否是类文件,0-3字节,ca fe ba be u2 minor_version; #版本,4-7字节,类的版本,其中34表示java8 u2 major_version; #主版本, u2 access_flags; #访问标记 u2 super_class; #父类信息 u2 interfaces_count;#接口信息 u2 interfaces[interfaces_count]; u2 fields_count; #字段信息,成员变量信息 field_info ]; u2 attributes_count; #属性信息 attribute_info attributes[attributes_count

    42710发布于 2020-07-16
  • 来自专栏全栈程序员必看

    php静态延迟方法,phpstatic延迟静态绑定_PHP教程

    abstract class U{ } class u1 extends U{ public static function create(){ return new u1(); } } class u2 extends U{ public static function create(){ return new u2(); } } 这段代码正常工作是没问题,但大量重复的代码会很烦人 我不想在每个子类中添加 public static function create(){ return new self(); } } class u1 extends U{ function a(){} } class u2 class U{ public static function create(){ return new static(); } } class u1 extends U{ } class u2 extends U{ static function getGroup(){ return ‘u2’; } } class u3 extends u2{ } print_r(u1::create

    1.6K10编辑于 2022-11-03
  • 来自专栏Oracle数据库技术

    交流群讨论精选1

    U2:实时同步可以做到吗 U2:或者准实时也行 U1:据说现在 goldengate 也支持 oracle到 pg 的同步,但我没用过 U3:navicat里面有同步的功能,不知道是不是可以直接同步到PG U2:开源的吗Dts U6:不开源 云服务 U2:亚马逊云上有同类产品吗 U6:也有 讨论话题2: 有没有大神知道怎么静默按照19c rac的呢? :静默安装官方不支持的 U2:不过RAC on docker的官方方法里有步骤 U3:Oracle在容器里运行? 不应该返回一行吗 讨论精选: U1:没错,系统就是设计的 U2:为啥?有一个就应该看到一个呀,不然会以为没有gap呢? U2:你现在是 real time apply 吗?146的 日志,在备库 用 rman 的 list archivelog all 能显示出来吗?

    1.4K40编辑于 2022-08-19
领券