首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谈谈对drawRect的理解

也正是因为这一点,我们可能会忽略UIView一些特有方法的理解和使用。今天,笔者主要整理一下对drawRect方法的理解和使用。 默认情况下,该方法在视图加载过程中不做任何人处理。...当子类使用Core Graphics和UIKit绘制视图内容时就需要在该方法中添加绘制的代码。 drawRect简介 drawRect方法在UIView的使用上起着十分关键的作用。...不知道大家注意过没有,每一次创建UIView子类文件时候,会有自动带有已注释的drawRect方法,也许从这一点就能看出这个方法的重要性。...重绘作用:重写该方法以实现自定义的绘制内容 drawRect调用场景 视图第一次显示的时候会调用。...在其他方法中获取的contextRef都是不生效的; drawRect:方法不能手动调用,需要调用实例方法setNeedsDisplay或者setNeedsDisplayInRect,让系统自动调用该方法

1.8K20

谈谈你对volatile的理解

因为在多线程中,ABC 3个线程拿到主内存的数据s后,可能出现,A改了s的值正要刷回主内存的时候线程被挂起,这时候B线程改了s的值,当A线程再次开启时候还没来得及被通知就已经把自己改后的数据注入了,这时候就存在一个数据的丢失问题...,一般而言,这个指令序列是会输出确定的结果;以确保每一次的执行都有确定的结果。...但是,一般情况下,CPU和编译器为了提升程序执行的效率,会按照一定的规则允许进行指令优化,在某些情况下,这种优化会带来一些执行的逻辑问题,主要的原因是代码逻辑之间是存在一定的先后顺序,在并发执行情况下,...关于 JMM指令集 read (读取) 作用于主内存的变量,它把一个变量的值从主内存传输到线程的工作内存中,以便随后的load动作使用。...write (写入) 作用于主内存的变量,它把store操作从工作内存中得到的变量的值放入主内存的变量中。

44630
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    谈谈我对投影的理解

    为了简化问题,限定在某一范围内,就要进行必要的降维(消元),如果因此导致问题无解,通过合适的投影矩阵P找到解。 投影的现实意义 各种原因吧,很多时候我们都需要抽象到二维空间,方便理解,降低成本。...投影的硬件加速 通过上面的介绍,虽然投影要理解的内容很多,但操作上非常简单,每个点只需要乘以投影矩阵P,就可以得到投影后的点。...比如墨卡托投影转WGS,可以错误的理解为把图片1高度不变,长度拉伸2倍的过程。我们完全把投影转换的计算放到着色器中,通过GPU顶点和片元着色器实现。...从CPU到GPU的转移,看上去很完美的,但动态投影有一个效果上的问题,毕竟是对纹理的操作,难免会有一些位置上偏移缩放等。如果用肉眼仔细看,你还是会发现不如以前的纹理清晰。...Cesium在这个问题上有一个很精妙的办法,还是要进行动态投影的,只是转换的对象不是Texture,保证纹理信息不变,而是对Texture Coordinate进行转换。 如下是动态投影的效果对比。

    1.1K60

    谈谈对Web Service的理解

    1:从WebService的工作模式上理解的话,它跟普通的Web程序(比如ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。...2:WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。...3.Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序...比如调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的一段代码而已...通过 Web Service,您的会计部门的 Win 2k 服务器可以与 IT 供应商的 UNIX 服务器相连接。 基本的 Web Service 平台是 XML+HTTP。

    82740

    谈谈你对NoSQL的理解

    有粉丝给我留言说,希望我更新一期关于NoSQ的视频,那今天,咱们就来聊一聊我对NoSQL的理解。如果你也有想要我分享的面试题,请在评论区告诉我,后续安排。...ENTER TITLE 随着互联网的发展,NoSQL数据库的产生就是为了解决超大规模和高并发系统中多重数据种类带来的挑战,特别是大数据应用的难题。...ENTER TITLE 下面我把四种分类的NoSQL数据库整理成了一个表格,并总结了它们的优缺点 ENTER TITLE 3、主流NoSQL对比 对于NoSQL数据库对互联网开发的重要性就不多说了...TITLE 好了,以上就是我对NoSQL的理解。...我是被编程耽误的文艺Tom,如果我的分享对你有帮助,请分享给更多的人。关注我,面试不再难!

    64030

    谈谈你对索引的理解?

    根据电脑和sqlservice之类的不同,发送sql语句的编码格式也会不同,gbk支持1~2个字符集,utf8支持1~3个字符集。...最后访问innoDB存储引擎,innoDB存储引擎的数据存储在b+tree的节点里,与b-tree不同的是,b+tree在内节点也就是非叶子节点不存储数据,这样高度更低,效率更高。...聚簇索引又称为主键索引,二级索引就是其他列组成的索引,复合索引是由多个二级索引组成,有最左原则,最左原则是当范围查询的时候,必须满足最左边的索引列是等值的。...主键索引和二级索引有两个不同的b+树,主键索引里的叶子节点存储了所有的用户记录的真实数据,非叶子节点存储的是页码和主键id,二级索引存储的是索引的真实数据,当用覆盖索引查询的时候,直接查询二级索引b+树就能返回数据给用户...,但如果select查询的数据里面还有不是索引的列,这时候查询是先通过二级索引的b+树查询,之后再通过查询的id,回表查询主键的b+树。

    29820

    谈谈你对MVCC的理解

    MVCC也是一道非常高频的面试题,今天我花两分钟时间给大家梳理一下。另外,我花了1个多星期把往期的面试题解析配套文档准备好了,想获取的小伙伴可以在我的煮叶简介中找到。...2、为什么需要MVCC 对于MVCC的理解,可以根据数据库的三种并发场景来分析。 第一种是读和读的并发,就是两个线程A和B,同时进行读操作,这种情况下不会产生并发问题,也不需要并发控制。...第三种是写和写的并发,也就是两个线程A和B同时进行写操作,这种情况下可能出现数据更新丢失的问题 MVCC相当于是为每个修改保存⼀个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。...它是通过数据库记录中的隐式字段Undo日志、Read View来实现的。...2、能实现读一致性,从而解决脏读、幻读、不可重复读等不可重复读,但是不能解决数据更新丢失的问题。 3、采用乐观锁或者悲观锁用来解决写和写的冲突,从而最大程度地去提高数据库的并发性能。

    54510

    谈谈对MySQL的MVCC的理解

    ReadView ReadView可以理解为数据库中某一个时刻所有未提交事务的快照。...隐藏列 InnoDB存储引擎中,它的聚簇索引记录中都包含两个必要的隐藏列,分别是: trx_id:事务Id,每次一个事务对某条聚簇索引记录进行改动时,都会把该事务的事务id赋值给trx_id隐藏列。...roll_pointer:回滚指针,每次对某条聚簇索引记录进行改动时,都会把旧的版本写入到undo log中,然后这个隐藏列就相当于一个指针,可以通过它来找到该记录修改前的信息。...事务链 每次对记录进行修改时,都会记录一条undo log信息,每一条undo log信息都会有一个roll_pointer属性(INSERT操作没有这个属性,因为之前没有更早的版本),可以将这些undo...由于在同一个事务中,RR级别的事务在查询中只会生成一个ReadView,所以能解决不可重复读的问题。 总结 要理解MVCC机制,关键在于要理解ReadView、隐藏列、事务链三者在其中的作用。

    87320

    谈谈我对设计模式的理解

    而且战争的成败受众多因素的影响,如天时、地利、人和。但你要问中国历代名将中有哪个不读《孙子兵法》的?几乎没有,如三国的曹操、南宋的岳飞、明代的戚继光,这些人可谓是把兵法用的出神入化了。...同样的道理,“设计模式”是一套被反复使用、多数人知晓的、无数工程师实践的代码设计经验的总结。因此它比较抽象,没有一定的编程经验很难读懂,更不能理解其精髓。...它就想道家里面的“道”的理念,每个人对道的理解是不样的,对道的认知也有不同的境界,而不同的境界对应着不同的修为。...上面讲述的是对禅道的认识的三重不同境界,设计模式既然是一种编程思想,那也会有不同的境界,我这里也概括它为三重境界: 一重境界:依葫芦画瓢。...这属于中级阶段,对每一种设计模式都非常熟悉,有较深入的思考,而且能够根据实际的业务场景选择合适的模式,并对相应的模式进行恰当的修改以符合实际需求。 三重境界:心中无模式。

    1.3K40

    谈谈我对 Reacitive 方法的理解

    本文我想和大家分享一下我对当前 Reactivity 方法和现状的理解。...我并不是说我的观点就是对的,但我认为,正是通过分享自己的观点,我们才能对行业中的事物达成共识,我希望这些来之不易的见解能够对其他人有所帮助,并补充他们理解中缺失的部分。..., Vue 接下来我来谈谈这三种方法: 基于 value 基于 value 的系统依赖于将状态作为简单值存储在“不可观察”引用中。...对于基于 Signal 的系统,对于开发者,最初的理解门槛会稍微高一些,并且开发者很有可能从 Reacitive 悬崖上掉下来。因为如果你对 Signal 的反应错误,应用程序就会崩溃。...好啦,以上就是我的理解,希望对你有帮助!

    20730

    谈谈对云原生应用的理解

    炒得最火的就是Cloud Native。...抽空读完《未来架构-从服务化到云原生》,结合笔记也谈谈对云原生的一些简单理解 目录 云原生诞生背景是什么? 云原生能帮助研发解决什么问题? 云原生应用的定义是什么? 云原生当前生态圈是怎么样的?...Orchestration & Management 编排与治理层 1、Scheduling & Orchestration:调度(资源自动合理分配)与编排(对容器内应用治理),核心就是Kubernetes...云原生网络解决每个容器独立IP问题,推荐CNI(Container Network Interface)容器网络接口标准 Provisioning 供应保障层 1、Host Management / Tooling:对物理...Observability and Analysis:对各层系统的监控分析 1、Monitoring:服务器指标Zabbix、容器指标CAdvisor、时序指标Prometheus、指标分析Garfana

    3.8K270

    谈谈我对区块链的理解

    工作原理 发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私钥对摘要进行加密,加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要...,接着再用发送方的公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。...如Merkle Hash Tree的非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hash value。...B,每个节点都将收到的交易信息纳入一个区块中 要点:对B而言,该枚比特币会即时显示在比特币钱包中,但直到区块确认成功后才可用。...1.版本号,标示软件及协议的相关版本信息 2.父区块哈希值,引用的区块链中父区块头的哈希值,通过这个值每个区块才首尾相连组成了区块链,并且这个值对区块链的安全性起到了至关重要的作用 3.Merkle根,

    2.8K70

    springboot框架的理解_谈谈你对springmvc的理解

    大家好,又见面了,我是你们的朋友全栈君。 1.起源 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。...该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。...用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。...controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!...如何做单元测试 打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。

    62810

    对php多态的理解

    「PHP开发者」 致力于做最专业的PHP中文开发者交流平台 php是面向对象的脚本语言,而我们都知道,面向对象的语言具有三大特性:封装,继承,多态。php理应具有这三大特性。...封装是类的构建过程,php具有;php也具有继承的特性。唯独这个多态,php体现的十分模糊。原因是php是弱类型语言。...java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。...而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。 php不具有像java那种清晰的多态,不是代表php不具有多态性。...,说明子类对象是父类的一个实例,从而达到了java多态的功能。 上边的类是抽象类,也表明了接口与实现接口的类对象同样可以适用。 至此,得出php虽然多态体现模糊,但还是具有多态特性的。

    1.5K70

    谈谈你对堆栈理解(初稿)

    理解不透彻,实在是无法写清楚,记录下过程吧 为了理解堆栈区别, 我对比 c++,java,APP,javascipt(vue,v8) ,node.js, solidity, 都提到一个共同概念-虚拟机...如何理解如下: 要想理解堆栈区别-->必须理解经典5中经典io模型(同步,异步,阻塞和阻塞) 要想理解同步,异个该你--->必须知道进程和线程各种区别 要想阻塞,非阻塞--->操作系统对进程状态 然后回过堆的内存管理各种方式...然后回顾到基于栈的和寄存 的vm设计。 尼玛 最后没理解 , 高楼大厦不是凭空出来的,是一层层该你的 , 因此我不纠结堆栈这2个 概念。...为了更好地理解Event Loop,请看下图(转引自Philip Roberts的演讲《Help, I'm stuck in an event-loop》)。 ?...4 Memcached Event Loop 对应node.js node.js使用libuv库 ,采用Memcached是libevent库,采用相同模式设计 FQA:谈谈你对堆栈的理解。

    1.5K20

    个人谈谈对ThreadLocal内存泄露的理解

    个人谈谈对ThreadLocal内存泄露的理解 ThreadLocal作用 ThreadLocalMap内存泄露解释 为什么要这样设计 ThreadLocalMap的实现思路 ---- ThreadLocal...首先,我们采用普通的map集合作为线程副本数据存储实现,那么当前我们的应用程序失去了对ThreadLocal对象的强引用时,我们就再也无法通过ThreadLocal去访问ThreadLocalMap中我们存储的线程副本数据了...,那么此时就可以认为这样一对key:value键值对是垃圾,需要被回收掉。...对于普通的map实现而言,我们无法区分到底哪些ThreadLocal对象确定是应用程序不再访问的,可以被回收掉的,因此也就无法回收这些垃圾键值对占据的空间了,反而会导致某种意义上的内存泄露。...我们可以对这些key为null的键值对进行清理回收,然后重用这些空间。

    69310

    面试官:谈谈对SpringAI的理解?

    Spring 官方对于 Spring AI 的定义是这样的: Spring AI is an application framework for AI engineering....翻译一下,Spring AI 是 AI 工程的应用框架。其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI,并推广使用 POJO 作为 AI 领域应用程序的构建块。...Spring AI 开发步骤主要有以下几步: 创建 Spring Boot 项目,并添加模型依赖; 配置模型的连接地址和秘钥; 使用模型提供的对象和方法,实现功能调用。...3.3 调用模型方法 以 AI 聊天为例,当我们操作 OpenAI 的时候,可以通过 OpenAiChatModel 对象的 call(String msg) 进行聊天功能的实现,具体实现代码如下: import...实现的手段都有哪些?

    45530

    谈谈我对 IoC 和 AOP 的理解

    @JFinal 波总在 JFinal 4.8 发布新闻的评论 中给出了下面的表述: IOC 本质是为了实现 AOP 我有点吃惊, 没想到 Java 界的大佬对这两个概念有和我完全不一致的认识....所以写下这篇博客, 并借此机会重新学习一下 IoC 和 AOP, 确保自己对这两个后端开发非常重要的概念不会有太过偏差的理解 1....这个概念和封装 (Encapsulation) 非常接近, 可以说封装是对 SoC 设计原则的一种具体实现. 而 DI 则被描述为在构造和使用对象上实现 SoC 这个设计原则....听上去有点晦涩, 下面列举几个编程范式的例子可以帮助大家理解这个概念: Imperative - 指令式, c, c++, Java Declarative - 声明式, SQL, 各种 DSL, 比如...AOP 的实现 声明式事务是否必须采用 AOP 来提供 对这些话题感兴趣的朋友可以继续访问 谈谈 Act 的依赖注入 和 模板输出 - 回 drinkjava 同学的评论.

    89410

    java进阶|谈谈我对spring的理解

    spring概述: spring是最受欢迎的企业级java应用程序开发框架,数以百万的来及世界各地的开发人员使用spring框架来创建性能好,易于测试,可重构的代码。...--上述内容摘记于w3cSchool 上面讲述spring的基本介绍之后,就来谈谈学习spring这个框架的一点理解吧,我现在写这篇内容的时间节点是五月3号,对,这是五一期间写作的第二篇文章,但是现在写的文章要等到...其实距离第一次学习spring框架的内容距今已经有好几年了,当初学spring的内容时,只是知道怎么用,或者说就应该这么写,但是什么都不懂,除了基本的概念了解一点之外,我觉得毫不客气的对自己说一句,什么都不懂...,我理解的IOC和AOP的概念也仅仅停留在控制翻转,面向切面编程,但是java毕竟是面向对象编程,面向切面编程我不是很理解,然后就放在那里了,随着时间的流逝,也就是在实际的工作中用的越来越多,自己也逐渐明白了...spring教程,了解了很多,至于源码如何分析,这里暂时还没有去看,目前暂时用不到,自己也没有达到那么高的水平去看spring的源码的,所以现在不对spring源码进行分析,到这里关于spring的理解就结束了

    54540
    领券