优化iOS程序性能的二十五个方法

1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性...
iOS程序 优化 性能

Objective-C 的运行时中最具争议的黑魔法:method swizzling

Selector(typedef struct objc_selector *SEL):在运行时 Selectors 用来代表一个方法的名字。Selector 是一个在运行时被注册(或映射)的C类型字符串。Selector由编译器产生并且在当类被加载进内存时由运行时自动进行名字和实现的映射。Method(typedef struct objc_method *Method):方法是一个不透明的...
runtime method

HTTPS 证书生成原理和部署细节

今天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署。由于博客托管在 github 上,没办法部署证书,先记录下,后续有需要方便快捷操作。本文的阐述不一定完善,但是可以让一个初学者了解大致的原理,同时跟着操作可以为自己的博客/网站部署一个 HTTPS 证书。网站部署 HTTPS 的重要性看看下面,部分电信用户访问京东首页的时候,会看到右下角有一个浮动广告:小白用户以为是京东有意放置...
编程开发 操作系统

C++ 成员函数的重载,继承,覆盖和隐藏

一、 C++成员函数的重载C++中的成员函数有四种,分别是普通成员函数,virtual虚函数,const成员函数。(1) void func(int a);(2) virtual void func(int a);(3) void func(int a) const;如果在一个类中,声明这四种函数,哪是重复定义?哪些是重载?其中(1)(2)是重复定义,故编译不能通过,而(3)与(1)(2)是不同类...
编程开发 C/C++开发

Python 正则表达式 re 模块简明笔记

简介正则表达式(regular expression)是可以匹配文本片段的模式。最简单的正则表达式就是普通字符串,可以匹配其自身。比如,正则表达式 ‘hello’ 可以匹配字符串 ‘hello’。要注意的是,正则表达式并不是一个程序,而是用于处理字符串的一种模式,如果你想用它来处理字符串,就必须使用支持正则表达式的工具,比如 Linux 中的 awk, sed, grep,或者编程语言 Perl,...
WEB开发 编程开发

为什么 .NET 的反射这么慢?

大家都知道.NET的反射很慢,但是为什么会出现这种情况呢?这篇文章会带你寻找这个问题的真正原因。CLR 类型系统的设计目标原因之一是,在设计的时候反射本身就不是以高性能为目标的,可以参考Type System Overview – ‘Design Goals and Non-goals’(类型系统概览 – ‘设计目标和非目标’):目标运行时通过快速执行(非反射)代码访问需要的信息。编译时直接访问所...
编程开发 .NET开发

谷歌 HTML/CSS 规范

背景这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率。通用样式规范协议省略图片、样式、脚本以及其他媒体文件 URL 的协议部分(http:,https:),除非文件在两种协议下都不可用。这种方案称为 protocol-relative URL,好处是无论你是使用 HTTPS 还是 HTTP 访问页面,浏览器都会以相同的协议请求页面中的资源,同时可以节省一部分字节。...
WEB开发 编程开发

优化 iOS 程序性能的 25 个方法

1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性能...
编程开发 iOS开发

为什么 Java 8 中不再需要 StringBuilder 拼接字符串

在Java开发者中,字符串的拼接占用资源高往往是热议的话题.让我们深入讨论一下为什么会占用高资源。在Java中,字符串对象是不可变的,意思是它一旦创建,你就无法再改变它。所以在我们拼接字符串的时候,创建了一个新的字符串,旧的被垃圾回收器所标记。如果我们处理上百万的字符串,然后,我们就会生成百万的额外字符串被垃圾回收器处理。虚拟机底层在拼接字符串时执行了众多操作。拼接字符串最直接的点操作(dot o...
JAVA开发 编程开发

Android 使用 Socket 对大文件进行加密传输

前言数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽从而起到保护信息的安全的作用。项目中使用Socket进行文件传输过程时,需要先进行加密。实现的过程中踏了一些坑,下面对实现过程进行一下总结。DES加密由...
Android开发 编程开发