- class _ContiguousArrayStorage deallocated with non-zero retain count
humiaor
Swift数组多线程安全Swift数组iOS多线程安全
Xcode报错:Object0x11c614000ofclass_ContiguousArrayStoragedeallocatedwithnon-zeroretaincount2.Thisobject'sdeinit,orsomethingcalledfromit,mayhavecreatedastrongreferencetoselfwhichoutliveddeinit,resultingi
- __weak如何实现对象值自动设置为nil的
Sweet丶
详情请查看:http://blog.csdn.net/hherima/article/details/38661803总结如下:weak的功能:*若使用__weak修饰符的变量引用对象被废弃时,则将nil赋值给该变量*使用附有__weak修饰符的变量,就是使用注册到autoreleasepool的对象ARC对象释放的过程:1.objc_release2.因为引用计数为0所以执行dealloc3._
- iOS 底层面试题
木扬音
【面试-1】通过Asssociate方法关联的对象,需要在dealloc中释放当对象释放时,系统会自动调用deallocdealloc释放步骤1、C++函数释放:objc_cxxDestruct2、移除关联属性:_object_remove_assocations3、将弱引用自动设置nil:weak_clear_no_lock(&table.weak_table,(id)this)4、引用计数清空
- RunLoop 三 : 使用RunLoop线程保活的封装
小心韩国人
在RunLoop二:RunLoop在实际中的应用篇幅中我们介绍了runloop在项目中的具体用法,并且创建了一个可以控制生命周期的线程.今天我们就用OC和C语言两种方法封装一个线程保活的工具类:一:使用OC语言封装://监控线程生命周期@interfaceMYThread:NSThread@end@implementationMYThread-(void)dealloc{NSLog(@"%s",_
- swift 中 Lazy,deinit用法
a浮生若梦a
*swift中懒加载写法,懒加载在Swift中是一个闭包。懒加载详细介绍看这里//第一种方式简单创建lazyvarbutton=UIButton()//第二种方式可以设置更多的属性lazyvarbutton:UIButton={letbutton=UIButton()button.setTitle("按钮",for:.normal)returnbutton}()*OC中的dealloc方法,在Sw
- iOS的视图控制器pop或dismiss后,dealloc函数不被调用的几个原因
平凡的世界_风清扬
当视图控制器执行popViewControllerAnimated或dismissViewControllerAnimated方法后,dealloc函数始终未被调用时,可能是由以下几点当中的某一点或几点引起的:(1)初始化某个UIView时,使用strong修饰词修饰该view的某个属性,导致强持有当前视图控制器,从而造成循环引用,引起内存泄漏;(2)ViewController中强引用代理(de
- 搭建k8s集群实战(四)k8s node 资源管理、避免系统无响应
xiegwei
k8skubernetes容器云原生
Kubernetes的节点可以按照Capacity调度。默认情况下pod能够使用节点全部可用容量。这是个问题,因为节点自己通常运行了不少驱动OS和Kubernetes的系统守护进程。除非为这些系统守护进程留出资源,否则它们将与pod争夺资源并导致节点资源短缺问题,从而导致系统无响应。kubelet公开了一个名为‘NodeAllocatable’的特性,有助于为系统守护进程预留计算资源。Kubern
- Objective-C对象dealloc过程
零丁若叹
iOSobjective-ciosxcode
Objective-C对象由dealloc负责内存的释放,在对象释放过程中发生了什么,我们使用源码可以看出释放的过程。-[NSObjectdealloc]方法会调用_objc_rootDealloc方法,_objc_rootDealloc会调用obj->rootDealloc()方法。_objc_rootDealloc(idobj){ASSERT(obj);obj->rootDealloc();}
- 【lesson4】高并发内存池ThreadCache(线程缓存)层实现
(unstoppable)
项目高并发内存池C++内存池tcmalloc缓存
文章目录ThreadCache层的结构申请内存逻辑释放内存逻辑自由链表的实现自由链表的成员变量自由链表的成员函数自由链表的完整实现ThreadCache申请内存过程的实现ThreadCache需要的成员变量ThreadCache需要的成员函数ThreadCache.h文件代码Allocate的实现Deallocate的实现封装ThreadCache层可以多线程访问ThreadCache层完整代码C
- 禅与 Objective-C 编程艺术
MR_LP
小技术初学者objective-c编程新手iOS
ZenandtheArtoftheObjective-CCraftsmanship中文翻译原文https://github.com/objc-zen/objc-zen-book前言Swift贡献给社区作者关于中文翻译条件语句尤达表达式nil和BOOL检查黄金大道复杂的表达式三元运算符错误处理Case语句枚举类型命名通用的约定常量方法字面值类类名Initializer和deallocDesignat
- iOS Dealloc流程解析 Dealloc 实现原理
ElegantLiar
当对象的引用计数为0时,系统会调用对象的dealloc方法释放-(void)dealloc{_objc_rootDealloc(self);}在内部void_objc_rootDealloc(idobj){assert(obj);obj->rootDealloc();}继续调用了rootDealloc方法显然调用顺序为:先调用当前类的dealloc,然后调用父类的dealloc,最后到了NSObj
- iOS开发——MRC(手动内存管理)
Yeppppppppp
objective-cios
iOS开发——MRC(手动内存管理)内存分配区域栈区堆区总结常量区总结代码区总结全局区关于如何查看一个对象在堆区/栈区需要知道的知识手动引用计数MRC四个法则非自己生成的对象,且该对象存在,但自己不持有deallocretainCount不要使用retainCount我们要想了解内存管理的知识前,必须先搞明白计算机的内存分配以及计算机是如何处理内存的。内存分配区域内存指的就是RAM(randoma
- 599,dealloc是如何执行的(面试点:一,weak属性为什么自动置为nil,二,对象的实例变量是如何释放的,三,对象的关联对象释放的时机是什么?明确结论:1、dealloc的调用是在最后一...
枫叶1234
前言:本文将主要解答以下三个问题:weak属性的为什么能自动置为nil、对象的实例变量是如何释放的、对象的关联对象释放的时机是什么?(这些答案的探究来源于其他同学的研究输出,本人只不过是站在前人的基础上,结合自身经验做一些加工输出)ARC下的变化:ARC下我们不需要再dealloc中主动调用[superdealloc],而且对象的实例变量会被释放掉。对于经历过MRC开发的同学,会明显的产生以下疑惑
- Block 底层原理(二)
Jax_YD
一、block的循环引用什么是循环引用?对于高级开发人员来讲,如果对于循环引用,你知道到A持有B,B持有A。这样显然是不够的。下面我们就来讲一讲循环引用。一个新创建的OC对象引用计数默认是1,当引用计数减为0,OC对象就会销毁,释放其占用的内存空间调用retain会让OC对象的引用计数+1,调用release会让OC对象的引用计数-1正常释放:是指A持有B的引用,当A调用dealloc方法时,给B
- 通知
贝灬小晖
https://www.jianshu.com/p/8f925e832bcb移除通知,由那个控制器创建由那个控制器移除,谁创建谁移除,最好在dealloc方法中移除,如果通知不能及时的移除掉,当下次进入该控制器时会重复创建NSNotificationCenter,在对应方法中发送通知给上一次创建的通知,但是上一个通知所在的控制器已被干掉,所以这时候就会报错
- mysql PREPARE 的用法
stone_tomcat
sql
set@update_id='8aeae210014';PREPAREtestssFROM'updateainfosett_svr=1whereapi_id=?';EXECUTEtestssUSING@update_idDEALLOCATEPREPAREtestss;
- Hotspot 内存管理之ClassLoaderData 源码解析
孙大圣666
Hotspot和Linux内核ClassLoaderDataJNIMethodBlockDependencies
目录一、ClassLoaderData1、Dependencies2、ChunkedHandleList3、JNIMethodBlock4、init_null_class_loader_data/init_dependencies5、构造和析构函数6、record_dependency7、add_to_deallocate_list/free_deallocate_list8、metaspace_
- block的循环引用,未能及时释放问题
不语03
近期在开发过程中,偶尔会发现工程里某个页面的通知(NSNotificationCenter)有时会被执行好几次(ps:在页面已经pop出栈之后继续执行,理论上出栈之后,页面应该被释放,通知在dealloc中也被移除)。通知的使用是在viewDidLoad方法里注册,在dealloc方法中移除。按理来说,在viewcontroller的生命周期里这两个方法都只会执行一次,是相对应的,所以不应该存在通
- 底层相关面试题分析
离歌欢笑_4c54
dealloc释放的对象首先查看dealloc的底层源码obj->rootDealloc();if(isTaggedPointer())return;//fixmenecessary?//根据isa中相关存储格式进行判断if(fastpath(isa.nonpointer&&!isa.weakly_referenced&&!isa.has_assoc&&!isa.has_cxx_dtor&&!is
- 深入理解STL空间分配器(四)
十五年专注C++开发
#C++基础c++开发语言
目录1.概述2.各个组件说明3.__mini_vector4._Inclusive_between5._Functor_Ref仿函数6._Ffit_finder7._Bitmap_counter8.free_list9.bitmap_allocator编辑9.1allocate9.2deallocate10.总结1.概述bitmap_allocator是STL空间分配器的其中一种,它采用内存池策略
- 深入理解STL空间分配器(三)
十五年专注C++开发
#C++基础c++开发语言
目录1.概述2.内存池实现2.1_M_get_free_list2.2_M_refill2.3_M_allocate_chunk2.4__pool_alloc类实现2.4.1allocate2.4.2deallocate1.概述pool_allocator是一种基于单锁内存池的空间分配器,其内部采用内存池思想,通过构建16个空闲内存块队列,来进行内存的申请和回收处理。每个空闲队列管理的内存块大小固
- 2018-04-29 iOS个人遇到的问题总结
BoooBooo冰Booo
1.粗心大意造成的循环引用一开始发现页面通知的监听失效,后来发现页面pop关闭的时候dealloc方法也不调用,经过多番调试与排查发现罪魁祸首居然是MJRefreshHeader的block方法的循环引用造成的,可以说是使用不当了,以为不会互相引用....太年轻了如下这段代码,就是元凶,错误示范❌这样会造成循环引用,导致通知失效MJRefreshNormalHeader*refreshHeader
- RunTime 基础数据结构
某非著名程序员
1.源码RunTime源码阅读(一)之weakRunTime源码阅读(二)关联对象RunTime源码阅读(三)dealloc的释放RunTime源码阅读(四)内存管理RunTime源码阅读(五)之category原理RunTime源码阅读(六)之消息查找RunTime源码阅读(七)之load加载原理RunTime源码阅读(八)之autoreleasepoolRunTime源码阅读(九)之isa指针
- mysql 当表内某字段不存在数据时删除表
小杰66
如果表中某字段不存在或者某字段不存在数据则删除该表。SET@tables=NULL;SELECTcount(p0)INTO@tablesfromcooling_pipe;SET@tables=IF(@tables,'SELECTNULL;','DROPTABLEcooling_pipe;');PREPAREstmt1FROM@tables;EXECUTEstmt1;DEALLOCATEPREPAR
- NStimer的循环引用探究
LD_左岸
代码如下可以看到timer与控制器之间有相互强引用的关系dealloc不会执行原因无非是当前控制器对timer有一个强引用而定时器内部的target对当前的控制器也存在一个强引用-(void)viewDidLoad{[superviewDidLoad];self.timer=[NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@s
- 什么时候调用dealloc
FRAJ
这个类被release的时候会被调用;这个对象的retaincount为0的时候会被调用;或者说一个对象或者被置nil的时候。
- C++ 侯捷 内存管理
zaizai1007
C++c++
C++的内存获取机制:void*p1=malloc(512);free(p1);complex*p2=newcomplex;deletep2;void*p3=::operatornew(512);::operatordelete(p3);//GNUCvoid*p4=alloc::allocate(512);alloc::deallocate(p4,512);//GNUC4.9void*p5=all
- k8s集群性能优化之kubelet配置资源预留
最美dee时光
k8sdockerdocker运维
本篇目录链接疑问分析解决思路环境说明KubeletNodeAllocatable介绍配置方式(基于yum安装)配置资源预留Eviction与OOM可分配约束疑问分析在k8s集群中,默认情况下Pod能够使用节点全部可用容量,同样就会伴随一个新的问题,pod消耗的内存会挤占掉系统服务本身的资源,这就好比我们在宿主机上运行java服务一样,会出现java程序将宿主机上的资源(内存、cpu)耗尽,从而导致
- iOS 如何判断页面是pop(销毁)消失还是push消失
流云_henry
部分页面,比如NSTimer页面,在pop或dismiss的时候,由于有计时器的存在,不会走系统的dealloc方法,所以我们也就无法正常的释放计时器,那么我们该怎么做呢?其实方法很简单,系统已经提供给了我们方法,只是很少有人注意到。我们只需要在viewWillDisappear的方法中来进行相关判断即可1、页面将要出现时,判断页面是以push方式跳过来,还是以pop方式跳过来的-(void)vi
- kubernetes系列 - n. 设置kubelet 预留资源
Andy_1ee
参考资料:https://www.lmlphp.com/user/18418/article/item/473049/节点预留及限制资源的几种方式kubelet的NodeAllocatable特性,该特性主要是为系统守护进程预留计算资源。Kubernetes推荐集群管理员按照每个节点上的工作负载密度配置NodeAllocatableNodeCapacity(方式)说明kube-reservedku
- github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected]"
- ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
- 读书笔记-jquey+数据库+css
chengxuyuancsdn
htmljqueryoracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
- javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
- shiro入门学习
cugfy
javaWeb框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
- Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
- navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
- unicode转换成中文
adminjun
unicode编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
- 一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
- 设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
- Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
- [Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
- 【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
- Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
- Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
- 读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
- HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
- maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
- linux shell 中文件编码查看及转换方法
daizj
shell中文乱码vim文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
- MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
- 数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
- Java反转字符串
dyy_gusi
java反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
- UI设计中我们为什么需要设计动效
gcq511120594
UIlinux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
- JBOSS服务部署端口冲突问题
HogwartsRow
java应用服务器jbossserverEJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
- 第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdbreidstwemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
- ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
- 程序员解决问题的60个策略
pda158
框架工作单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
- Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
- JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它