Java 8 对自带的排序算法进行了很好的优化。对于整形和其他的基本类型, Arrays.sort() 综合利用了双枢轴快速排序、归并排序和启发式插入排序。这个算法是很强大的,可以在很多情况下通用。针对大规模的数组还支持更多变种。本人拿自己仓促写的排序算法跟Java...
编程语言
该篇总结了Go语言常用字符串处理的方法技巧,在Go语言编程中,初学者首先需要对字符串的处理有一定的了解,这样才可以更加深入地学习Go语言编程。 该篇实例汇总了Go语言常用字符串处理方法。分享给大家供大家参考。具体代码如下: package main import ( 'f...
如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思。数组不仅仅老式,而且各位同行有合理的理由避免暴露它们。在这篇文章中,本人将试图总结在Java API中使用数组的缺陷。首先从最出人意料的一个例子开始。数组...
这些日子在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips。将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考。 下面介绍的都是一些命令行工具,这些工具在几位回答者的日常工作中都很有用。对于任何不了解的命...
我们知道基于文件的几种服务:ftp,sftp,这两种服务都是文件传输服务,偏重于网络传输,并不是实时互访。通常,我们需要在远程和本地同时操作同一个目录,如:在Windows下使用各种强大的IDE编辑代码,在Linux下编译和运行该代码。假若在Windows下编写好代码...
写在前面的话:有时不理解SQL语句各个部分执行顺序,导致理解上出现偏差,或者是书写SQL语句时随心所欲,所以有必要了解一下sql语句的执行顺序。可以有时间自己写一个简单的数据库,理解会更加深入。下面就写写我的一些理解,以SQL SERVER2008为例,进行说明...
作为开发者,应用的性能始终是各位同行最感兴趣的话题之一。然而,不是所有的开发者都对自己维护的应用的性能有所了解,更别说快速定位性能瓶颈并实施解决方案了。 今年北京 Velocity 的赞助商大多从事 APM 领域,提供性能剖析、可视化甚至优化的解决方案。...
自动装箱(boxing)和自动拆箱(unboxing) 首先了解下Java的四类八种基本数据类型 基本类型 占用空间(Byte) 表示范围 包装器类型 boolean1/8true|falseBoolean char2-128~127Character byte1-128~127Byte short2-2 15~2 15-1.....
这篇文章通过实例讨论了: - java.concurrent.Lock创建的垃圾 - 比较Lock和synchronized - 如何通过编程方式计算延时 - Lock和synchronized竞争带来的影响 - 延迟测试中由于遗漏(co-ordinated omission)可能对结果的影响 回到本人最喜欢的一个主题:垃圾...
什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用。 Application Cache带来的三个优势是: ① 离线浏览 ② 提升页面载入速度 ③ 降低服务...
NSURLSession是iOS7之后新的网络接口,和经常用到NSURLConnection是类似的。在程序在前台时,NSURLSession与NSURLConnection可以相互的替代。但是当用户在对程序进行强制关闭的时候此时NSURLSession会默认的自动断开。相比而言NSURLSession的优势主要体现在后...
Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。 Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,...
该篇作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的SwiftDoc.org网站创造者。在该篇中,他介绍了在Swift中使用JavaScript的方法和技巧,对于iOS...
在Swift官方《The Swift Programming Language》文档 Beta 5 版本中的 Basic Operators 一节中添加了Nil Coalescing Operator小结,介绍了一个新的运算符Nil Coalescing,符号是 ?? ,它的表现形成如下: let c = a ?? b 这个运算符有两个条件: a. 必须是Op...
大部分Java开发者都在使用Map,特别是HashMap。HashMap是一种简单但强大的方式去存储和获取数据。但有多少开发者知道HashMap内部如何工作呢?几天前,本人阅读了java.util.HashMap的大量源代码(包括Java 7 和Java 8),来深入理解这个基础的数据结构。在这篇...
Java集合类的整体架构 比较重要的集合类图如下: 有序否 允许元素重复否Collection 否 是List 是 是Set AbstractSet 否 否HashSetTreeSet 是(用二叉树排序)Map AbstractMap 否 使用 key-value 来映射和存储数据, Key 必须惟一, value 可以重复HashMapTree...
iOS 7在视觉方面有许多改变,其中非常吸引人的功能之一就是在整个系统中巧妙的使用了模糊效果。许多第三方应用程序已经采用了这样的设计细节,并以各种奇妙的和具有创造性的方式使用它。 本文将通过几种不同的技术来实现iOS 7中的模糊效果,当然,这一切都利...
Mydumper 是 MySQL 数据库服务器备份工具,它比 MySQL 自带的 mysqldump 快很多。它还有在转储的同时获取远程服务器二进制日志文件的能力。Mydumper 的优势 并行能力 (因此有高速度) 和性能 (高效的代码避免了耗费 CPU 处理能力的字符集转换过程) 更容易管理...
统计数据来自Java“死亡”竞赛——一个针对开发者的迷你测验 几个月前,各位同行在一个小型网站上发布了一个称为Java“死亡竞赛”的新项目。测验发布后,超过20000位开发者参加了测验。网站以20道关于Java的多选题为主。各位同行得到了众多开发者的测验统计数...
当jvm出现致命错误时,会生成一个错误文件 hs_err_pid<pid>.log,其中包括了导致jvm crash的重要信息,可以通过分析该文件定位到导致crash的根源,从而改善以保证系统稳定。当出现crash时,该文件默认会生成到工作目录下,然而可以通过jvm参数指定生成...
在沉浸于编码一段时间以后(比如说本人已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常。因为,你知道的…… 任何事情有可能出错,没错,的确如此。 这就是为什么各位同行要采用“防御性编程”,即一些偏执习惯的原因。下面是本人个人认...
超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。 HTTP 请求报文 HTTP 请求报文由请求行、请求头部、空行...
HTML5中提供了在网页文档之间相互接收与发送信息的功能。使用这个功能,只要获取到网页所在窗口对象的实例,不仅仅同源(域+端口号)的web网页之间可以互相通信,甚至可以实现跨域通信。 浏览器支持程度:IE8+,firefox4+,chrome8+ opera10+ 1. 首先,要想...
前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。 本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。...
理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。 Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中sele...