自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 归并排序(java)

分组操作数量级减少//临时数组 以空间换时间private static int[] assist;//数据数组private static int[] datas;//初始化数据datas = new int[]{4, 3, 2, 10, 12, 1, 5, 6, 11, 7};System.out.println("原始数据:"+ Arrays.toString(datas));//开始排序sort(datas);System.out.println(Arrays.t

2020-12-25 17:01:12 137

原创 OC底层performSelector:@selector(test) withObject:nil afterDelay:

-(void)test{ NSLog(@"2");}-(void)test2{ NSLog(@"3");}- (void)viewDidLoad { [super viewDidLoad]; //并发队列 dispatch_queue_t queue = dispatch_queue_create("batac.com", DISPATCH_QUEUE_CONCURRENT); //异步处理任务 dispatch_async(q.

2020-12-21 19:34:40 581

原创 原创 OC底层 - runtime 结构体+位域

使用结构体位域:#import "Student.h"@interface Student(){ //一个字节 可以表示8个BOOL变量 /** 位域 */ struct{ char tial : 1; char rich : 1; char handsome : 1; } _tailRichHandsome;} @end@implementation Student-(

2020-12-07 14:29:03 172

原创 OC底层 - runtime 一个char变量按位保存多个BOOL变量值

在arm64之后, 优化了isa指针实现, 使用共同体实现isa, 可以节省内存:以下使用一个char变量保存多个BOOL变量的值,实现代码:///左移操作#define LPTail (1<<0)#define LPRich (1<<1)#define LPHandsome (1<<2)//// Person.m// demo007_runtime_isa_共用体//// Created by Batac on 2020/12/7..

2020-12-07 13:58:47 225

原创 希尔排序(java)

public static void shell(int[] array){ int h=array.length/2; while (h >= 1){ for (int i=h;i<array.length;i++){//分组 for (int j=i;j>=h;j-=h){//每组进行插入排序 if (array[j-h]>array[j]){ int.

2020-12-03 18:33:49 118

原创 OC底层 - block内修改变量

block的捕获问题block内部修改变量问题讲一下以上两个问题:对于捕获问题, 只有局部变量才能被捕获, 全局变量不需要捕获,直接拿着使用, 但是有一点, 当block在栈中时, block是不能捕获对象型变量, 直接拿着使用, 只有在堆中的block才能捕获对象型变量;对于block内部修改问题, 因为变量捕获有两种, 一种是值捕获, 一种是地址捕获, 对于这两种捕获, 第一种是不允许在block中修改其值, 第二种是不允许在block中修改其地址, 但是可以修改其值;对于对象型变.

2020-12-02 18:07:06 401

原创 OC底层 - block放入堆中

之前已经讲过, block有三个类型 NSStackBlock 、NSMallocBlock 、 NSGlobalBlockNSStackBlock是放在栈中, 访问了auto变量; NSGlobalBlock是放在数据区中, 没有访问auto变量; NSMallocBlock是放在堆中, 是NSStackBlock类型的block调用了copy方法后变换过来的;什么样的条件才会被放入堆中?block作为函数返回值时; 将block赋值给__strong指针时; block作为Cocoa

2020-12-02 10:31:36 155

原创 OC底层 - block类型

ARC无效block继承自NSBlock, NSBlock继承自NSObject;分为三种: NSGlobalBlock 放在数据区 NSMallocBLock 放在堆内存中 NSStackBlock 放在栈内存中怎么样创建三种block?如下图: 没有调用auto变量时, 会创建出NSGlobalBlock类型, 放在数据区中;-(void)test{ int age = 10; void(^block1)(...

2020-12-01 16:43:51 195

原创 OC底层 - block捕获变量

block是oc语言的一种代码块, 底层实现为oc对象, 代码块封装在一个函数中, 函数作为该oc对象的一个变量, 调用时, 直接调用该函数;什么情况下block会捕获变量呢?局部变量(自动变量)如果block中使用了方法中的局部变量, 如下:-(void)test{ int age = 10; void(^block1)(void) ^{ NSLog(@"%ld",age); };}因为局部变量(自动变量)在test方法结束的时候会被自动

2020-12-01 14:25:58 371

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除