美文网首页
17-String与Array

17-String与Array

作者: 二斤寂寞 | 来源:发表于2023-04-13 11:49 被阅读0次

关于String的思考

  • 1个String变量占用多少内存?

  • 下面2个String变量,底层存储有什么不同?

var str1 = "0123456789"
var str2 = "0123456789ABCDEF"
  • 如果对String进行拼接操作, String变量的存储会发生什么变化?
str1.append("ABCDE")
str1.append("F") 低 

str2.append("G")                                

ASCII码表:https://www.ascii-code.com/

image.png

汇编分析string本质:

  • 查看str1

    • 马哥小工具Mem可以查看内存地址。log之后是下图的

    • 进入汇编断点。log可以对照ASCII表进行查看 0-9 a-z对应ASCII

    • 前8个存储字符,后面存储长度。 (如果超过15个,怎么存储)

image.png
image.png
  • 查看str2

会进行长度比较。

image.png image.png

从编码到启动APP

image.png

生成的Mach-O文件,通过MachOView 软件查看 放在Section64( _TEXT,_cstring)

dyld_stub_binder

  • 符号的延迟绑定通过dyld_stub_binder完成

  • jmpq *0xb31(%rip)格式的汇编指令

占用6个字节

image.png
  • 字符串拼接
image.png image.png

关于Array的思考

  public struct Array<Element>
  var arr = [1, 2, 3, 4]
  • 1个Array变量占用多少内存?

  • 数组中的数据存放在哪里?

image.png

8个字节,存放的是一个地址值。堆空间。

相关文章

  • 数组基本操作

    Array 定义空Array Array赋值 元素判断与获取 遍历Array for in 与 forEach的区...

  • PHP数组复习

    1.array+array与array_marge的区别 array+array当两个数组的下标相同的时候返...

  • (七) [Swift]Swift中的有序集合

    1.Array的初始化 2.Array的长度与判空 3.Array的索引 4.Array添加与删除元素 5.Arr...

  • 2019-07-21日学习总结

    array与循环 array 数组是矩阵的集合array(data = NA, dim = length(dat...

  • 2020-06-04

    1.python的list与array的不同: 要使用array的话,需要:from array import a...

  • 17-String字符串

        在任何语言里面都没有提供所谓的字符串这种基本数据类型,但是从实际的使用上来讲各个编程语言为了方便程序的开发...

  • Array.of/Array

    Array.of是ES6新增的构造新数组的方法,与Array比较类似,弥补了Array的一些缺点 语法 Array...

  • JS基础数组与伪数组

    1.基本用法 window.Array是全局函数(也是函数) Array()与new Array()是一样的效果在...

  • js数组方法与属性详解

    Array的属性与方法

  • javascript的数组Array

    创建数组及修改 类型检测 转换方法 Array栈操作 Array队列操作 Array的反转和排序 数组的连接与截取...

网友评论

      本文标题:17-String与Array

      本文链接:https://www.haomeiwen.com/subject/qcabddtx.html