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

谈谈drawRect理解

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

1.7K20

谈谈volatile理解

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

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

谈谈投影理解

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

1.1K60

谈谈NoSQL理解

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

56530

谈谈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。

79040

谈谈索引理解

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

27020

谈谈MVCC理解

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

46310

谈谈MySQLMVCC理解

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、隐藏列、事务链三者在其中作用。

79020

谈谈 html 语义化理解

语义是指一个词或者句子含义正确解释。很多 HTML 标签也具有语义意义,也就是说元素本身传达了关于标签所包含内容类型一些信息。...便于团队开发和维护:语义化使得代码更具有可读性,让其他开发人员更加理解 html 结构,减少差异化。 方便其他设备解析:如屏幕阅读器、盲人阅读器、移动设备等,以有意义方式来渲染网页。...),而其中有一个很重要指标,那就是能够被残障人士使用网站才能称得上一个易用(易访问)网站。...以下是规范中三个主要特性: 角色:这定义了元素是干什么。许多「标志性角色」,其实重复了 HTML5 结构元素语义价值。...更多无障碍属性可以参阅:*https://developer.mozilla.org/zh-CN/docs/Learn/Accessibility/WAI-ARIA_basics* 灵魂拷问 说说对 html 语义化理解

1.1K10

谈谈设计模式理解

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

1.2K40

谈谈区块链理解

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

2.7K70

谈谈云原生应用理解

炒得最火就是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.7K270

谈谈 Reacitive 方法理解

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

15330

springboot框架理解_谈谈springmvc理解

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

58310

谈谈堆栈理解(初稿)

理解不透彻,实在是无法写清楚,记录下过程吧 为了理解堆栈区别, 我对比 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.4K20

php多态理解

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

1.4K70

个人谈谈ThreadLocal内存泄露理解

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

62310

谈谈 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 同学评论.

82510

java进阶|谈谈spring理解

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

52340
领券