iOS开发者都知道,当一个对象被释放时,所有对这个对象弱引用的指针都会释放并置为nil,那么系统是如何存储这些弱引用对象的呢?又是如何在一个对象释放时,将这些指向即将释放对象的弱引用的指针置为nil的呢?下面我们通过分析SideTable的结构来进一步了解内存管理的弱引用存储细节。weak结构在runtime中,有四个数据结构非常重要,分别是SideTables,SideTable,weak_ta
转载
2024-10-23 19:38:59
57阅读
# 实现iOS底层是什么语言
## 概述
在iOS开发领域,底层语言主要是Objective-C和Swift。Objective-C是较为传统的iOS开发语言,而Swift是苹果公司在2014年推出的新一代编程语言。两者的底层实现并不完全相同,但都是基于C语言的。
### 流程
以下是实现“iOS底层是什么语言”的流程:
| 步骤 | 描述 |
| --- | --- |
| 1 | 打开X
原创
2024-03-10 06:01:19
90阅读
写在前面: iOS底层原理探究是本人在平时的开发和学习中不断积累的一段进阶之
路的。 记录我的不断探索之旅,希望能有帮助到各位读者朋友。目录如下:iOS 底层原理探索之 allociOS 底层原理探究 之 结构体内存对齐写在前面之前我们分析了alloc底层流程和结构体的内存对齐原理。那么,今天我们来分析下对象的本质是什么。我们都知道,OC语言是基于C和C++语言增加了一层面向对象,那么,我们就从O
转载
2024-01-04 23:19:24
54阅读
一、Objective-C 的本质Objective-C 代码的底层都是通过 C/C++ 实现,所以 Objective-C 面向对象是基于 C/C++ 数据结构实现。 下图为OC语言转换成机器语言的几个过程。二、Objective-C 对象本质通过终端指令:(注:如果需要链接其他框架,使用 -framework 参数。)xcrun -sdk iphoneos clang -arch arm64
转载
2023-07-20 15:30:09
184阅读
苹果官方文档The Objective-C language defers as many decisions as it can from compile time and link time to runtime. Whenever possible, it does things dynamically. This means that the language requires not j
转载
2023-11-12 11:33:03
80阅读
Objective-C(简称OC)是iOS开发的核心语言,在开发过程中也会配合着使用C语言、C++,OC主要负责UI界面,C语言、C++可用于图形处理。Objective-C是C语言的面向对象的一个超集,Objective-C 是ANSI C的超集,扩展了C 语言使它具备面向对象设计的能力,例如类、继承C语言是一门面向过程的语言,OC是在C语言的基础上,增加了一层最小的面向对象语法。(OC把一些比
转载
2024-01-14 21:38:06
27阅读
写在前面: iOS底层原理探究是本人在平时的开发和学习中不断积累的一段进阶之
路的。 记录我的不断探索之旅,希望能有帮助到各位读者朋友。目录如下:iOS 底层原理探索之 alloc以上内容的总结专栏iOS 底层原理探索 之 阶段总结准备Objective-C ,通常写作ObjC或OC,是扩充C的面向对象编程语言。它主要适用于Mac OS X 和 GNUstep者两个使用OpenStep标准的系统,
转载
2023-10-29 15:02:26
100阅读
Java-底层原理-javac源码笔记摘要本文只是简单记录下javac的源码阅读笔记未完待续0x01 简介1.1 解释执行和编译执行可以参考文章Java-JVM-编译原理 Java程序一般是将.java文件编译为.class文件,然后再运行时由JVM的解释器(如templateInterpreter_x86_64.cpp,bytecodeInterpreter_x86.cpp等)解释运行字节码文件
转载
2023-07-19 15:18:33
76阅读
说在前面我们平时写的代码Objective-C,底层实现其实都是C/C++的代码实现的,高级语言经过编译器编译,最终转化为机器语言。 所以,我们的Objective-C的面向对象,其实都是基于C/C++的数据结构实现的。那么Objective-C的对象、类主要是基于C/C++的什么数据结构实现的呢?1.对象的本质那到底是什么样的数据结构结构?是数组吗?我们都知道数组只能存储同一种类型的数据,而对象
转载
2023-07-25 10:25:34
189阅读
Java把源代码(SourceCode)翻译成字节码(ByteCode):javac MyClass.java,再在Java虚拟机(JVM)上执行字节码:java MyClass。Java是基于面向对象编程(OOP)的,OOP的三原则是封装(Encapsulation)、继承(Inheritance)和多态(polymorphism),封装是为了捆绑数据和代码,继承是为了层次化分类,多态是为了“一
转载
2024-04-15 10:30:19
23阅读
为什么大家经常听到python、java的底层是用c、c++实现的,却没有听过别人说js是用什么语言写的? java、python是用c、c++写的。为什么这么说,因为执行java的java虚拟机和执行python的python解析器都是用c、c++写的。而不是说.java文件和.py文件是用什么语言实现的。以python为例,.py文件只是开发人员编写的代码合集,这些只是python解释
转载
2023-06-06 17:47:18
239阅读
第一章 纲要1.初始JAVAJAVA语言底层是C++是实现的。JVM(JAVA虚拟机)是由C++开发的。2.JAVA的加载和执行两个过程:编译+运行(1)编译阶段检查源程序是否符合java语法.java,然后生成一个或多个字节码文件.class(被最终执行,删除.java源文件也不会影响执行,但是最好不删除,以便于修改)字节码文件中不是存粹的二进制,无法在操作系统中直接执行编译后的形成一个.jav
转载
2023-06-19 20:42:48
103阅读
一、引言
面向接口(抽象)编程,是为了降低程序的耦合度,符合依赖倒置原则。因此典型的三层架构[vb.net教程](https://www.xin3721.com/eschool/VBNetxin3721/)UI、BLL、DAL基于接口设计后,会拓展成UI、IBLL、BLL、IDAL、DAL。在上一篇《C# IoC学习笔记》中我们可以了解到,控制反转(IoC)使对象的创建交给了第三方IoC容器如Un
文章目录1. iOS中多线程方案2. GCD 同步,异步,串行,并行2.1 从一到面试题入手认识下GCD:2.2 多线程易混淆的名词2.3 面试题解析3 多人线程与runloop3.1 面试题13.2 面试题24 队列组5 线程安全问题5.1 异常例子5.2 异常例子 解决方法:5.2.1 自旋锁 `OSSpinLock`5.2.2 pthread_mutex_t 互斥锁5.2.2 NSCond
转载
2023-10-09 08:54:40
119阅读
文章目录GoLang之map的底层实现原理是什么(1)1.什么是 map2.map 的底层如何实现2.1map内存模型2.2创建 map2.3哈希函数2.4key 定位过程 GoLang之map的底层实现原理是什么(1)1.什么是 map维基百科里这样定义 map:In computer science, an associative array, map, symbol table, or d
转载
2024-06-11 14:40:48
33阅读
HarmonyOS底层是什么代码
随着智能设备的普及,操作系统的底层代码逐渐成为关注的焦点。HarmonyOS是华为公司推出的一款新型操作系统,旨在实现设备之间的智能互联。在这篇博文中,我们将深入探讨HarmonyOS底层是什么代码、其技术架构、源码以及对该项目的展望。
### 背景描述
1. **2019年8月**:HarmonyOS首次发布,面向IoT设备。
2. **2020年9月**
超详细 c 语言回顾前言c 语言是一种底层语言,是一种系统底层级的语言,例如Windows、Linux、Unix等操作系统就是使用c语言编写的。所以由此看来,不论是火爆了25年的Java,还是近年来愈来愈流行的Python,它们虽外表光鲜亮丽,但c语言就是内在的灵魂,朴实无华。c 语言特性c 语言既然这么重要,但是它有什么值得我们去学的地方呢?难道我们就因为听到别人说它重要我们才去学习吗?我想我们
转载
2023-07-21 21:02:01
434阅读
前言Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis
转载
2023-10-10 21:55:59
38阅读
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发
转载
2023-08-30 20:55:22
262阅读
前言:建议学习shader之前一定要了解可编程渲染管线以及GPU硬件结构;一、GPU编程与三大着色语言介绍GPU编程:我们所提到的shader程序,它是在GPU上运行的,它的运行原理和GPU的硬件结构是息息相关的,我们需要能够在GPU上能够运行的语言,也就是着色语言;GLSL(OpenGL Shading Language):由OpenGL提供;它的优点在于跨平台性,主要是因为OpenGL并没有提