首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏IT当时语_青山师_JAVA技术栈

    字节码文件魔数0xCAFEBABE

    字节码文件魔数0xCAFEBABE 每一个java字节码文件(.class)都是以相同的4字节内容开始的——十六进制的CAFEBABE。 咖啡宝贝…因缺思厅。。。 ; } } 这个魔数用来在类装载阶段时检查该文件是不是标准的java字节码文件(当然这仅仅是第一关)。 0xCAFEBABE 的数值表示 3405691582 。如果我们对其所有的数字求和得到 43。 附录 参考资料: http://mishadoff.com/blog/java-magic-part-2-0xcafebabe/

    54710编辑于 2023-05-05
  • 来自专栏difcareer的技术笔记

    彻底弄懂dalvik字节码【三】0x01:0x02:0x03:0x04:0x05:

    我们只分析dalvik字节码,因此忽略so。 字节码在insns中。 0x03: 下面进入对字节码的分析,在【二】中分析方法执行时, dvmInterpretPortable的最后一个语句: FINISH(0); /* fetch and execute first instruction 这里直接说我看代码看明白的: 首先 6F 20 中的 6F表示操作码,20又分两个4位来解释,2表示寄存器的数量,0代表啥还没有看明白:(,随后的两个字节 47 2A 表示的是method id,47 0x04: 至此,我们分析完第一条指令的字节码解释过程了。在源码中,你可以看到,它不光是解释成smali这么简单,它真正的去寻找父类的onCreate方法,构造函数堆栈并进行调用。

    2.4K20发布于 2018-08-23
  • 来自专栏高效数据恢复

    u盘属性0字节怎么恢复数据?

    昨天下午,公司的会议正在紧张地进行着,突然间,电脑屏幕上跳出了一个对话框,显示着“无法读取U盘并且属性0字节”。下面将详细阐述U盘属性0字节可能由哪些原因引起,并列出其中的一些常见情况。 一些低质量的U盘可能在制造过程中存在问题,导致属性0字节。另外,如果U盘已经使用了很长时间,或者经常进行读写操作,也可能会出现这样的问题。其次,操作系统和驱动程序的问题也可能导致U盘属性0字节。 在选择软件时,请确保选择信誉良好且受信任的软件U盘属性0字节恢复步骤如下:U盘属性0字节恢复工具:数之寻软件【恢复步骤1】:下载并打开恢复软件,在软件中选择需要恢复的盘,再点《开始恢复》,软件会扫描这个盘的数据 方案2:将属性0字节的U盘交给专业的数据恢复团队在面对U盘属性0字节数据丢失的问题时,将U盘交给专业的数据恢复团队是一个值得考虑的解决方案。 U盘属性0字节,不需要保留U盘的文件,只要U盘能正常使用的解决方案如果你的U盘属性显示0字节,而且你不需要保留U盘中的文件,只希望U盘能够正常使用,那么你可以尝试以下解决方案:1.

    93110编辑于 2023-11-10
  • 来自专栏VBA 学习

    VBA数据类型Variant

    我以前一直好奇为什么能有什么数据都可以保存的类型,现在对内存知识有了一定了解才知道,其实说到底,Variant底层也是一种数据结构,16个字节分别会有不同的意义,对于一些VBA里的对象复制给Variant 所以想知道Variant的16个字节具体代表了什么,我们只需要让它保存不同的数据类型,然后查看16个字节的变化就可以了。 Variant16字节是如何分配的? 前8字节 b0:标识数据类型(也就是VarType返回的数字) b1:标识后8字节是数据还是指针 - 0x00 8-15数据类型的是数据本身,String是地址 - 0x40 8-11存的是数据地址 ,String是地址的地址 - 0x20 8-11存的是数组地址 - 0x60 8-11存的是数组地址的地址 后8字节8-15:数据或地址 Sub TestVariant() Dim 00 00 00 00, ptr = 0x19ef50, Value = 10 其他不多演示,注意Dim Value As语句下面的CopyMemory复制字节数和Value类型保持一致。

    2.3K30发布于 2020-07-28
  • 来自专栏VBA 学习

    VBA获取数组的维度

    GetArrayDimsByErr(v As Variant) As Long If Not VBA.IsArray(v) Then GetArrayDimsByErr = 0 On Error Resume Next Dim tmp As Long GetArrayDimsByErr = -1 Do Until Err.Number <> 0 SafeArray cDims As Integer ' // 数组的维度 fFeatures As Integer ' cbElements As Long ' // 数组元素的字节大小 ), VarPtr(v), 16 Dim ptr As Long CopyMemory VarPtr(ptr), VarPtr(b(8)), 4 ' - 0x20 8-11 存的是数组地址 ' - 0x60 8-11存的是数组地址的地址 If b(1) = &H60 Then CopyMemory VarPtr(ptr), ptr, 4

    3K11发布于 2021-06-22
  • 来自专栏VBA 学习

    VBA多维数组转一维数组

    SafeArray cDims As Integer ' // 数组的维度 fFeatures As Integer ' cbElements As Long ' // 数组元素的字节大小 To UBound(arr) For j = 0 To UBound(arr, 2) For k = 0 To UBound(arr, 3) arr(i, j, k) = VBA.Format(i, "x0") & VBA.Format(j, "\y0") & VBA.Format(j, "z0=") & VBA.Format(VBA.Rnd i = 1 To sa.cDims - 1 sa.rgsabound(0).cElements = sa.rgsabound(0).cElements * sa.rgsabound(i) (b(8)), 4 ' - 0x20 8-11存的是数组地址 ' - 0x60 8-11存的是数组地址的地址 If b(1) = &H60 Then CopyMemory

    3.9K20发布于 2021-06-22
  • 来自专栏JAVA

    UnicodeDecodeError: ‘utf-8‘ Codec Can‘t Decode Byte 0x80 in Position 0**:UTF-8编码无法解码字节0x80的完美解决方法

    UnicodeDecodeError: ‘utf-8’ Codec Can’t Decode Byte 0x80 in Position 0**:UTF-8编码无法解码字节0x80的完美解决方法 摘要 错误分析:为什么会出现0x80字节? 字节 0x80 通常在非UTF-8编码中出现,例如ISO-8859-1(Latin-1)或Windows-1252。 在这些编码中,0x80 可能代表某个特定字符,而在UTF-8中,0x80 是无效的起始字节。 3. 解决方法一:检测并转换文件编码 为了避免这个错误,首先应该检测文件的实际编码。 QA环节 ❓ Q1: 为什么会出现 0x80 这样的无效字节? A1: 这些字节通常源自非UTF-8编码的文本,例如ISO-8859-1 或 Windows-1252。 表格总结 错误原因 解决方案 字节 0x80 非UTF-8编码 使用 chardet 检测编码或 errors 参数处理错误字节 文件编码未知或不一致 统一将文件转换为UTF-8编码 大量非UTF-8

    5.5K10编辑于 2024-11-22
  • 来自专栏运维

    运维干货:MBR和GPT分区大揭秘

    它占据磁盘的第一个扇区(512字节),结构分为三部分:前446字节为引导程序,负责加载操作系统;中间64字节为分区表,最多记录4个主分区(或3个主分区+1个扩展分区,扩展分区内可划分逻辑分区);最后2字节为结束标志 0x55AA,用于校验完整性。 接着,输入 “select disk X”(X 是你要操作的磁盘编号) ,比如你要操作的是 0 号磁盘,就输入 “select disk 0”,这样就选中了目标磁盘。 硬盘容量:如果你的硬盘容量小于 2TB ,MBR 和 GPT 分区都可以选择。 如果你的硬盘容量大于 2TB ,那就只能选择 GPT 分区了。

    16.7K31编辑于 2025-07-26
  • 来自专栏HelloCode开发者学习平台

    iOS—OC内存对齐原理

    字符串8字节 age int类型 4字节 8+8+4=20 因为类的成员变量按照8字节对齐规则 20->24 malloc_size 为系统实际分配的大小,分配给对象的大小是按照16字节对齐,16字节对齐的算法 从位置0开始 0%1 == 0 0的位置存a 【2】b占8字节 从位置1开始 1%8 不等于0 移到8 8%8==0 8-15 存b 【3】c占4字节 从位置16开始 16%4 等于0 16-19 存 c 【4】d占2字节 从位置20开始 20%2 等于0 20-21 存d 【5】规则三,内存大小必须为结构体中最大成员8的整数倍,22 变成8的倍数 变成24 分析结构体myStruct2 【1】b占8 字节 从位置0开始 0%1 == 0 7的位置存b 【2】c占4字节 从位置8开始 8%4 等于0 8-11 存c 【3】d占2字节 从位置12开始 12%4 等于0 12-13 存d 【4】a占1字节 从位置0开始 0%1 == 0 7的位置存b 【2】c占4字节 从位置8开始 8%4 等于0 8-11 存c 【3】d占2字节 从位置12开始 12%4 等于0 12-13 存d 【4】a占1字节 从位置

    1K20编辑于 2022-01-11
  • 来自专栏愿天堂没有BUG(公众号同名)

    一文带你学明白java虚拟机:C1编译器,HIR代码优化

    比较运算:如果比较运算的两个操作数都是相同的值,则用常量0代替。 当C1解释执行基本块的字节码构造SSA指令时,如果遇到4条invoke字节码,它会调用GraphBuilder::try_inline()尝试内联。 局部值编号发生在C1解释执行基本块的字节码构造的SSA指令中,如代码清单8-11所示。 代码清单8-11中的ValueNumberingEffects就是用来计算这些可能“杀死”读操作的方法的。 当发现循环基本块B2中的两个不变量后,C1会将它移到循环外面的B0基本块中,B0基本块支配循环头基本块B1。

    1.5K30编辑于 2022-10-28
  • 来自专栏VBA 学习

    VBA实现自己的ArrayPtr取数组地址函数

    是的,我们只要把1个数组赋值给1个Variant,然后去读取Variant里面的b8-11位,那获取的就是数组的地址或者是地址的地址了: - 0x20 8-11存的是数组地址 - 0x60 8-11存的是数组地址的地址 实现代码: Sub TestMyArrayPtr() Dim Arr() As Byte ReDim Arr(3) As Byte Dim ptr %x, ptr = 0x%x", VarPtrArray(Arr), ptr Printf "MyArrayPtr(Arr) = 0x%x", MyArrayPtr(Arr) End (b(8)), 4 ' - 0x20 8-11存的是数组地址 ' - 0x60 8-11存的是数组地址的地址 If b(1) = &H60 Then CopyMemory , ptr = 0x169d7cb0 b = 0x11 60 00 00 00 00 00 00 90 eb 28 00 00 00 00 00 MyArrayPtr(Arr) = 0x169d7cb0

    2K20发布于 2020-07-28
  • 每日一个计算机小知识:Bit和Byte(比特和字节)

    也被称为“位”,指二进制数字中的一位,只能表示0或1这两种状态。 计算机的底层实际是由大量半导体电路所构成,而电路只有“通电”和“断电”两种稳定状态,所以就用0代表断电1代表通电,通过0和1的组合来传递和存储所有信息(我们电脑上的文字、图片、音频、视频等本质都是 Bit 但是单独的1 个 Bit 是无法表示任何有意义的信息(如字母a-z,数字0-9),它仅能表示最基础的逻辑信号,所以就引出下面我们要说的Byte字节。 Byte字节Byte字节是计算机中最小的、可直接操作的数据块,它固定由 8 个 Bit 组成,所以也就是我们常说的1Byte = 8Bit,总共能组合出 2^8 = 256 种状态(从 00000000 而Byte常用作储存单位,比如我们电脑上的硬盘容量、图片大小,常用大写的B。

    3K10编辑于 2025-10-19
  • 来自专栏入门小站

    收集linux中常用123个crontab表达式

    crontab 常用表达式 描述 表达式 每1分钟执行一次 * * * * * 每小时的第3和第15分钟执行 3,15 * * * * 在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * 每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * 每个星期一的上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 每晚的21:30执行 30 每天8-11点的第25分钟执行 25 8-11 * * * 每15分钟执行一次 */15 * * * * 每个月中,每隔10天6:30执行一次 30 6 */10 * * 每天早上8点30分执行 30 * * * 每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * 每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 每晚的21:30执行 30 每天8-11点的第25分钟执行命令 25 8-11 * * * 每15分钟执行一次命令 */15 * * * * 每个月中,每隔10天6:30执行一次命令 30 6 */10 * * 每天 02:00

    1.9K10编辑于 2022-06-02
  • 来自专栏FHADMIN

    Java中CMD命令来备份mysql数据库备份文件出来为0字节问题

    Java中CMD命令来备份mysql数据库备份文件出来为0字节问题 https://blog.csdn.net/qq_36936155/article/details/78978242 今天客户打电话来说我们的系统备份的 rt.exec("cmd /c c:\\mysqldump -hlocalhost -uroot -p123456 --opt databaseName>d:\\bk.sql"); 居然成功了,文件不再是0KB rt.exec("cmd /c c:\\mysqldump -hlocalhost -uroot -p123456 --opt databaseName>d:\\bk.sql"); 居然成功了,文件不再是0KB

    1.1K40编辑于 2022-02-08
  • 来自专栏若尘的技术专栏

    ios底层原理

    ,从 0 开始,此时min(0,1),第 0 位存储 a 变量 b,占 8 个字节,min(1,8),不能被整除,向后推, 8-15 位放 b 变量 c,占 4 个字节,min(16,4),16-19 的内存大小必须是 8 的倍数,向上取整到 24,所以 sizeof 的结果是 24 MyStruct2 内存大小计算 变量b,占 8 个字节,从 0 开始,此时 min(0,8),0-7 位存储 b 变量c,占 4 字节,min(8,4), 8-11 位存储 c 变量d,占2字节,min(12,2),12-13 位存储 d 变量a,占1字节,min(14,1),14 位存储 aundefined因此 ,从 0 开始,此时 min(0,8),0-7 位存储 b 变量c,占 4 字节,min(8,4), 8-11 位存储 c 变量d,占2字节,min(12,2),12-13 位存储 c; //2字节,从16开始,min(16,2) -- (16,17) }Mystruct5; }Mystruct4; 分析如下 变量a,占 4 个字节, 0-3 存储a 变量

    1.2K74发布于 2021-11-22
  • 来自专栏若尘的技术专栏

    IOS 内存对齐原理

    ,从 0 开始,此时min(0,1),第 0 位存储 a 变量 b,占 8 个字节,min(1,8),不能被整除,向后推, 8-15 位放 b 变量 c,占 4 个字节,min(16,4),16-19 的内存大小必须是 8 的倍数,向上取整到 24,所以 sizeof 的结果是 24 MyStruct2 内存大小计算 变量b,占 8 个字节,从 0 开始,此时 min(0,8),0-7 位存储 b 变量c,占 4 字节,min(8,4), 8-11 位存储 c 变量d,占2字节,min(12,2),12-13 位存储 d 变量a,占1字节,min(14,1),14 位存储 aundefined因此 ,从 0 开始,此时 min(0,8),0-7 位存储 b 变量c,占 4 字节,min(8,4), 8-11 位存储 c 变量d,占2字节,min(12,2),12-13 位存储 c; //2字节,从16开始,min(16,2) -- (16,17) }Mystruct5; }Mystruct4; 分析如下 变量a,占 4 个字节, 0-3 存储a 变量

    1.8K55编辑于 2021-12-15
  • 来自专栏编程技术沉思录

    linux实现shell脚本监控磁盘内存达到阈值时清理catalina.out日志

    * * cmd 3 4 实例2:每小时的第3和第15分钟执行 5 3,15 * * * * cmd 6 7 实例3:在上午8点到11点的第3和第15分钟执行 8 3,15 8- 11 * * * cmd 9 10 实例4:每隔两天的上午8点到11点的第3和第15分钟执行 11 3,15 8-11 */2 * * cmd 12 13 实例5:每周一上午8点到11 点的第3和第15分钟执行 14 3,15 8-11 * * 1 cmd 15 16 实例6:每晚的21:30执行 17 30 21 * * * cmd 18 19 实例7:每月1、10、 22日的4 : 45执行 20 45 4 1,10,22 * * cmd 21 22 实例8:每周六、周日的1 : 10执行 23 10 1 * * 6,0 cmd 24 25 实例9: cmd 30 31 实例11:每一小时执行 32 0 */1 * * * cmd 33 34 实例12:晚上11点到早上7点之间,每隔一小时执行 35 0 23-7 * * * cmd

    1.3K20发布于 2020-07-28
  • 来自专栏码农编程进阶笔记

    Linux Crontab 定时任务详解

    myCommand * * * * * myCommand 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3和第15分钟执行 3,15 8- 11 * * * myCommand 实例4:每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand 实例5:每周一上午8点到11点的第3和第15 分钟执行 3,15 8-11 * * 1 myCommand 实例6:每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart 实例7:每月1、10、22 11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart 实例11:每一小时重启smb 0 */1 * * * /etc/init.d/smb restart 实例12:晚上11点到早上7点之间,每隔一小时重启smb 0 23-7/1 * * * /etc/init.d/smb restart

    1K10编辑于 2022-05-24
  • 来自专栏网站知识

    Linux Crontab 定时任务执行命令方法

    myCommand * * * * * myCommand 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3和第15分钟执行 3,15 8- 11 * * * myCommand 实例4:每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand 实例5:每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand 实例6:每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart 实例7:每月1、10、22日的4 : 45 smb 0 23 * * 6 /etc/init.d/smb restart 实例11:每一小时重启smb 0 */1 * * * /etc/init.d/smb restart 实例12:晚上11点到早上 7点之间,每隔一小时重启smb 0 23-7/1 * * * /etc/init.d/smb restart

    3.1K20发布于 2021-08-25
  • 来自专栏C语言基础

    自定义类型之结构体,枚举,联合

    第一个元素是整形,占4个字节,默认对齐数是8字节,较少者是4字节,则对齐数就是4,故偏移量0-3分配给a变量. 第三个元素是int型,同理,默认对齐数是4,则偏移量5-7都不能使用,是的你没有听错,这三个字节都被浪费掉了,从偏移量为8开始,8-11偏移的地址分配给变量c. 图解: 将结构体改成如下结构,一样是占用16字节. struct S4 { double d;//0-7 char c;//8 int i;//12-15 }; 示例3:嵌套结构体的内存大小计算 s2在内存中: s3在内存中 练习2: struct S3 { int a;//0-3 char c1;//4 int i;//8-11 double b;//16-23 }; struct typedef struct S3 { int a;//0-3 char c1;//4 int i;//8-11 double b;//16-23 }s3; typedef struct S4

    1K60编辑于 2023-04-06
领券