• Swift中 堆(heap)和栈(stack)的区别


    1、内存空间分为堆空间和栈空间

    2、堆->引用类型(对象、函数、闭包)  栈->值类型(结构体、枚举、元组)

    3、值类型赋值->深拷贝  引用类型赋值->浅拷贝  

    let a = 1
    let c = a
    // 值类型赋值会生成一个全新的c
    // 引用类型赋值则是指向之前的对象的内存地址

     4、结构体与类的区别

    // 结构体
    struct personT{
        var  age = 10
        var name = "小明"
    }
    
    var pt = personT()
    var pt1 = pt
    pt1.age = 20
    print(pt.age) //10
    
    //
    class personC{
        var  age = 10
        var name = "小明"
    }
    let pc = personC()
    let pc1 = pc
    pc1.age = 30
    print(pc.age)//30
    /* 分析
     定义两个模型,一个是结构体,一个是类
     结构体是存在于栈中的值类型,赋值相当于深拷贝即拷贝一个全新的模型
     类是存在于堆中的引用类型,赋值相当于浅拷贝之前模型的内存地址<所以定义模型时可以用let 定义 定义pc其实是personC() 的内存地址 - 后续修改也是拿到内存地主对应的模型进行修改>
     swift建议都使用struct, swift对结构体已经进行了很大的优化
     */
  • 相关阅读:
    Tomcat 参数调优
    weBDrriver API接口方法小记
    cookie、session、sessionid 与jsessionid
    性能测试知多少---性能需求分析
    nvl()与regexp_replace()
    Action类的工作机制
    创建视图组件
    struts 与 Java Web应用简介
    java入门2
    java入门1
  • 原文地址:https://www.cnblogs.com/ZhangShengjie/p/14293010.html
Copyright © 2020-2023  润新知