底层原理 - 对象的本质一、Objective-C的本质1、OC的本质OC代码的底层实现其实都是C/C++代码,编译器先把OC代码转换成C/C++代码,接着转成汇编语言,最后转成机器语言最终运行在手机上; 所以OC代码的本质其实就是c/c++代码;OC对象转换过程2、Objective-C的对象、类主要是基于C/C++的什么数据结构实现的?Objective-C的面向对象都是基于C/C++的数据结
转载
2024-09-05 12:46:26
78阅读
1. Block 本质block 本质上也是一个 OC 对象,它内部也有个 isa 指针 block 是封装了函数调用以及函数调用环境的 OC 对象 block 的底层结构如下图所示 源码解析:struct __GSBlock__load_block_impl_0 {
struct __block_impl impl;____①____
struct __GSBlock__load_blo
转载
2023-11-25 14:56:01
45阅读
1、先说一下源码解析的过程:JDK-->JRE-->JVM(以openJDK代替)注意:这里要了解jdk和jre和jvm他们分别是什么?以及他们的关系才可以继续。这里先上一章从网上下载的关系图方便理解2、笔者本地的jdk是oraclejdk,jvm所在位置就是安装的jdk。jdk下jre下bin下server下的jvm.dll。也就是F:\Java\jdk\jdk1.7.0_60\jr
转载
2023-07-20 23:44:05
196阅读
文章目录综述1 一个oc对象的内存大小2. OC对象内存2.1 NSObject 的对象2.2 自定义对象2.3 复杂继承3. OC中操作系分配的内存都是16的倍数4. oc 对象的分类4.1 实例对象(instance)4.2 类对象(class)4.3 元类对象(meta-class)5. sizeof 综述objective-c 的代码(clang -rewrite-objc mian.m
转载
2023-08-09 23:03:51
238阅读
首先,从最熟悉的入手 - 对象,看看这三个对象的内容,内存地址和指针地址。 LGPerson *p1 = [LGPerson alloc]; LGPerson *p2 = [p1 init]; LGPerson *p3 = [p1 init]; LGNSLog(@"%@ - %p - %p",p1, ...
转载
2021-10-15 19:29:00
45阅读
2评论
误解一:安卓是iOS的后辈 不知不觉,安卓已经成为了世界上最流行的移动智能系统,就市场占有率来看,安卓甚至要高于引领了智能机和平板电脑革命的iOS。安卓的红火深远地影响了IT行业,全球最大的社交网络Facebook甚至倡议员工弃用iOS改换安卓手机以更深入地了解用户体验 但是,流行总伴随着流言,安卓席卷世界的同时也让一些关于安卓的误解深深地植根在了人们的脑海中。很多人每天都在用安卓
转载
2024-06-26 20:37:30
34阅读
深入理解synchronized底层源码 前言 这篇文章从JVM源码分析synchronized的实现逻辑,这样才能更加对synchronized深度的认识。 进程:操作系统资源分配的基本单位。线程:cpu调度的基本单位(真实执行) 一、synchronized的使用场景 synchronized一
转载
2022-06-01 11:19:52
106阅读
JDK1.7和1.8 LinkedList的源码是一样的 public class LinkedList<E> {//e是一个反选,具体的类型要在实例化的时候确定}transient int size = 0;//集合中元素的数量 private static class Node<E> { E ...
转载
2021-08-15 21:47:00
180阅读
2评论
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
//外部操作数
protected transient int modCount = 0;//0
}
public abstract class AbstractSequ
原创
2023-06-21 18:22:11
149阅读
# JavaScript底层源码探秘
JavaScript是一种广泛使用的编程语言,最初被设计用于浏览器中的小脚本,但随着Web的发展,它已经发展成为一种通用编程语言。为了更好地理解JavaScript的魅力,我们可以探索其底层源码的基本工作原理,尤其是在引擎层面的实现。
## JavaScript引擎的概念
JavaScript引擎是一个将JavaScript代码转化为机器代码并执行的程序
1.HashMap在创建对象的时候值k v 就确定了 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //重要属性 static final int D ...
转载
2021-08-22 21:31:00
252阅读
2评论
# 如何实现“Python 底层源码”
在学习Python底层源码的过程中,您将会发现许多Python的核心功能都是由一些底层结构和算法实现的。对于初学者而言,从理解整个流程开始会是一个有效的起点。本文的目标是引导您通过几个步骤,了解如何研究和实现Python的底层源码,并帮助您上手实际的实现。
## 整体流程
以下是实现“Python底层源码”的基本流程:
| 步骤 | 描述
原创
2024-09-16 04:31:35
55阅读
本文内容适合刚接触spring security的新手,大神请跳过。spring security是一个用来保护spring应用程序的框架,它在用户访问web程序的时候会进行身份的认证(判断当前用户是谁)和授权(当前用户能访问哪些uri,不能访问哪些uri)。我们经常见到场景:1.访问某些网站时需要先登录用户名和密码;2.当你用自己的用户名密码登录某电商网站后,你只能浏览自己的订单,不能看别人的,
一、Redis数据结构1.1 Redis数据结构-动态字符串我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:获取字符串长度的需要通过运算非二进制安全不可修改Redis构建了一种新的字符串结构,称为简单动态字符串(Simple Dynamic S
# Redisson底层源码实现教程
## 1. 整体流程
为了帮助你理解Redisson底层源码的实现,下面是一个整体流程的表格,展示了实现的步骤和需要做的事情。
| 步骤 | 描述 |
| --- | --- |
| 1 | 导入Redisson库和相关依赖 |
| 2 | 创建Redisson客户端连接 |
| 3 | 选择数据结构(如Map或Set) |
| 4 | 对数据结构进行操
原创
2023-10-03 13:13:46
72阅读
在本篇博文中,我们将深入探讨“MySQL底层源码”相关的问题,涵盖从它的背景到技术原理、架构解析、源码分析、案例分析,以及扩展讨论的整体过程。准备好了吗?让我们开始吧!
## 背景描述
在数据库系统中,MySQL作为一种流行的关系型数据库管理系统 (RDBMS),被广泛用于Web应用程序以及数据存储。理解其底层源码,无疑能帮助我们更深入地掌握这一技术,并更好地进行性能优化及故障排查。
四象限
iOS 底层探索篇 —— KVC 底层原理1. Method Swizzling的坑与应用1.1 method-swizzling 是什么?1.2 坑点坑点1:method-swizzling使用过程中的确保执行一次解决方案坑点2:子类没有实现,父类实现了解决方案坑点3:父类子类都没有实现解决方案class_replaceMethod, addMethod, method_exchangeImp
转载
2023-08-03 23:21:56
71阅读
IOS操作系统的层次架构:系统包含~层~层包含~框架~框架包含接口~接口~提供方法,功能 1)最底层的核心操作系统层(Core OS)该层包含6个框架:1)Accelerate 加速框架、2)Core Bluetooth Framework(核心蓝牙框架)、3)External Accessory Framework(外部附件框架)、4)Generic Security Service
转载
2023-08-27 13:52:10
122阅读
Python中dict和set实现原理Jolly • 2017 年 11 月 05 日python的dict和set设计上是很巧妙的,底层是用c语言编写,哈希表实现,这样确保了高效的数据处理。1、dict的性能远高于list2、list的查询消耗随着查询数量的增大而增大3、dict的查询消耗并不会随着查询数量的增大而增大dict内部实现是根据哈西表来实现的:1、当申明dict变量的时候,就会在内存
转载
2023-08-21 15:10:56
67阅读
什么是JSJavaScript是一种基于对象的动态、弱类型脚本语言(简称JS),是一种解释型语言,和其他的编程语言不同,如java/C++等编译型语言,这些语言在代码执行前会进行通篇编译,先编译成字节码(机器码)。然后在执行。而JS不是这样做的,JS是不需要编译成中间码,而是可以直接在浏览器中运行,JS运行过程可分为两个阶段,编译和执行。(可参考你不知道的JS这本书),当JS控制器转到一段可执行的
转载
2023-06-08 10:21:37
0阅读