本文的主要目的是分析 类 & 类的结构,整篇都是围绕一个类展开的一些探索类 的分析类的分析 主要是分析 is
原创
2021-06-29 17:24:08
272阅读
文章目录一 集合1.1 Iterable与Iterator1.2 Collection接口1.2.1 ArrayList1.2.1.1 重要参数1.2.1.2 构造器1.2.1.3扩容过程1.2.1.4 增加方法1.2.1.5 总结1.2.2 Vector1.2.2.1 重要参数1.2.2.2 构造器1.2.2.3 扩容过程1.2.2.4 总结1.2.3 LinkedList1.2.3.1 重要
转载
2023-07-18 22:00:10
106阅读
iOS 底层原理 文章汇总本文的主要目的是分析 类 & 类的结构,整篇都是围绕一个类展开的一些探索类 的分析类的分析 主要是分析 isa的走向 以及 继承关系准备工作定义两个类继承自NSObject的类
原创
2021-09-01 17:39:49
370阅读
前两天,公司一个新来的实习生问我一个问题,什么是类,这个问题看似很好笑,但是要答全也确实不那么简单!!!回去翻看资料,查看以往的笔记,那么就说说我自己对类的本质看法!在OOP的设计的模式下,我们说万物皆对象,OC是一种面向对象的弱语法,但其实也是所有用到的东西也都是对象,包括成员变量!那么问题来了,对象从哪里来,这就要说到类!类的本质:类的本质其实也是一个对象,叫类对象。那么我们就来看看类和对象到
转载
2023-08-21 14:06:00
46阅读
String a = “abc”; ,说一下这个过程会创建什么,放在哪里?JVM会使用常量池来管理字符串直接量。在执行这句话时,JVM会先检查常量池中是否已经存有"abc",若没有则将"abc"存入常量池,否则就复用常量池中已有的"abc",将其引用赋值给变量a。new String(“abc”) 是去了哪里,仅仅是在堆里面吗?由于String本身的不可变性(后续分析),在执行这句话时,JVM会先
转载
2024-02-16 22:51:49
35阅读
最近开始学习ios编程,因为以前学习过c/c++等编程语言,所以初略过了一遍object c的语法基础。之后开始学习ios的控件,这里主要整理一下关于ios控件的api,加深自己的印象。学习书籍是ios编程第四版。首先是视图与视图层次结构,如下图。第一次使用的starUML建模软件,因为没接触过这个东西,故可能画法有错误,不过主要也就是表达一下视图层次结构的概念。UIWindow作为iOS程序的窗
转载
2024-06-08 23:36:17
68阅读
转载:iOS底层原理探索-类的加载
转载
2023-05-22 12:08:36
82阅读
1. Class 和 Object 的定义 /// An opaque type that represents an Objective-C class.
typedefstructobjc_class *Class;
/// Represents an instance of a class.
structobjc_objec
转载
2023-06-01 17:47:31
78阅读
1.在iOS中,类的结构是什么样的呢?main.m中首先有这样一段代码(objc源码中):我们cd到当前路径后输入命令行:clang -rewrite-objc main.m -o main.cpp获得c++文件,打开文件,我们拉到最下面的代码,就是oc经过编译后的代码:在上图中,pClass使用Class类型接收,说明pClass是Class类型的!我们找到Class的定义:typedef st
转载
2023-05-26 21:07:08
68阅读
iOS NSMutableArray的底层数据结构
在iOS开发过程中,NSMutableArray是一个非常常用的数据结构之一,广泛应用于各种场景。但很多开发者对其底层实现并不深入了解。本博文将从背景描述、技术原理、架构解析、源码分析、应用场景和案例分析六个方面来详细剖析iOS NSMutableArray的底层数据结构。
## 背景描述
NSMutableArray是一个动态数组,允许在
我们都知道,内存分配可以分为堆区(Heap)和栈区(Stack)。由于栈区内存是连续的,内存的分配和销毁是通过入栈和出栈操作进行的,速度要高于堆区。堆区存储高级数据类型,在数据初始化时,查找没有使用的内存,销毁时再从内存中清除,所以堆区的数据存储不一定是连续的。
转载
2023-07-14 10:38:32
392阅读
Mysql的结构ClientServer 连接器->解析器->优化器->执行器存储引擎:不同的存放位置,有不同的文件格式 1)innoDB: 聚簇索引,索引和数据放在一起 .frm 存放的是表结构 .lbd存放的数据文件和索引 mysql的innodb存储引擎默认情况下会把所有的数据文件放到表空间,不会为每个表保存单独的数据文件 2)MyISAM: 非聚簇索引,数据和索引单独存放
转载
2023-06-25 15:24:03
93阅读
类(class):具有相同属性和行为等同一类元素等总称,类是一个抽象的概念。区分是类还是对象,看它能否继续被细分。在OC中,类是表示对象类型的结构体,对象通过类来获取自身的各种信息。类由两个部分组成:*.h和*.m文件组成。*.m文件中 implemention部分是类的实现部分,内部包含类中的各种信息,包括各种实例方法或类方法。 类别( category):是为现有的类添加新方法的方式
转载
2023-07-22 20:22:50
46阅读
最近准备秋招面试,发现二叉树这种可以无限扩展知识点来虐别人的数据结构,很受面试官的青睐。如果掌握的不好,会直接死在一面哦。怕吗?当你原理、思想,内部结构通通明白,分分钟手撕代码的程度,还怕吗?本篇文章就从用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归前序遍历,非递归前序遍历,到最后的广度优先遍历
转载
2023-09-20 08:53:45
136阅读
点赞
//联系人:石虎 : 1224614774昵称:嗡嘛呢叭咪哄 objc_class结构体一、类在OC中是objc_class的结构体指针 typedef struct objc_class *Class;在objc/runtime.h中objc_class结构体的定义如下:struct objc_class {
;
#if !__OBJC2
结构体结构体的作用具有相同类型的数据的集合 结构体: 存储不同类型的数据项单一的数据类型无法满足特定的需求,数据类型的集合体:结构体 出现了结构体的定义和使用结构体的定义方式结构体是一种 自定义数据类型 struct用来定义一个类型 结构体的定义方式:struct 结构体名字
{
//成员变量
}; 定义结构体后再定义变量//例1:
struct
转载
2024-06-01 13:06:15
27阅读
一、类的数据结构 Class(指针) typedef struct objc_class *Class; /* 这是由编译器为每个类产生的数据结构,这个结构定义了一个类.这个结构是通过编译器在执行时产生,在运行时发送消息时使用.因此,一些成员改变了类型.编译器产生"char* const"类型的字符
转载
2016-03-01 10:59:00
87阅读
2评论
一、初识类与结构体首先,我们来看一下类的定义:class Person {
var age: Int
var name: String
init(age: Int, name: String) {
self.age = age
self.name = name
}
}以及结构体的定义:struct Person {
var
转载
2023-08-17 13:00:20
135阅读
Java基础20-Set系列集合的底层实现Set的底层实现是什么? 1、HashSet :底层是 HashMap new了一个hashmap2、TreeSet : 底层是TreeMap3、LinkedHashSet:底层是 LinkedHashMapSet添加元素时用add(元素),而Map添加元素put(key,value)。 发现添加到Set中的元素,是作为底层的Map的key,那么value
转载
2024-03-03 15:32:00
52阅读
一: MySQL为什么要选B+数作为底层的数据结构MySQL的底层算法有B数、红黑树、hash、B+树,为什么就选择了B+树作为数据库的底层物理结构二叉树的特点是左节点小于根节点、根节点小于右节点B树由于存在特殊情况,如左节点为空,节点全在右节点上,这样导致的结果会造成和没有索引一样,依次查找,效率很低,同时也会造成树的深度很深,IO次数太多导致查询效率很低。红黑树由于存在树的深度问题导致查数据I
转载
2023-09-04 12:42:04
79阅读