Java性能优化(4):避免创建重复对象
重复使用同一个对象,而不是每次需要的时候就创建一个功能上等价的新对象,通常前者更为合适。重用方式既快速,也更为流行。如果一个对象时非可变的,那么它总是可以被重用。
重复使用同一个对象,而不是每次需要的时候就创建一个功能上等价的新对象,通常前者更为合适。重用方式既快速,也更为流行。如果一个对象时非可变的,那么它总是可以被重用。
有时候你可能会编写出只包含静态方法和静态域的类,这样的类有一些很不好的名声,因为有些人在面向对象的语言中滥用这样的类来编写过程化的程序。尽管如此,它们也确实有它们特有的用处,我们可以利用这种类,把操作在原语类型的值或者数组类型上的相关方法组织起来,例如java.lang.Mala或者java.util.Arrays;我们也可以把操作在实现特定接口的对象上的方法组织起来,例如java.util.Collections。我们还可以利用这种类把操作子final类上的方法组织起来,以取代扩展该类的做法。
singleton是指这样的类,它只能实例化一次。singleton通常被用来代表那些本质上具有唯一性的系统组件,比如视频显示或者文件系统。
实现singleton有两种方法。这两种方法都要把构造函数保持为私有的,并且提供一个静态成员,以便允许客户能够访问该类唯一的实例:在第一种方法中,公有静态成员是一个final域:
对于一个类,为了让客户获得它的一个实例,最通常的方法是提供一个公有的构造函数。实际上还有另外一种技术,尽管较少为人所知,但也应该成为每个程序员的工具箱中的一部分。
类可以提供一个公有的今静态工厂方法。所谓静态工厂方法,实际上只是一个简单的静态方法,它返回的是类的一个实例。下面是来自一个Boolean类的简单例子。其中静态工作方法是1.4版本新增的,它把一个Boolean原语值转换为一个Boolean对象引用:
根据福雷斯特研究公司(Forrester Research)的观点,SQL将成为Hadoop生态系统中最多产的应用方案之一。Apache Drill 是一个应用于大数据搜索的开源SQL查询引擎。REST服务和客户端已经成为互联网流行的技术。 Apache HBase则是一个广受欢迎的Hadoop NoSQL数据库。在本文中,我将结合 SQL、Hadoop、Drill、REST with JSON、NoSQL 及 HBase 等技术,讨论并展示如何使用 Drill REST API来查询 HBase 和 Hive。同时我也会分享一个使用Drill REST API的简单jQuery客户端,利用JSON做数据交换,提供给用户一个基本的操作界面。
Mongodb多存储引擎支持机制介绍了Mongodb存储层创建数据库、创建集合、插入文档等数据库操作接口,本文将介绍mongodb处理客户端请求的模型。
HBase 数据库是一个基于分布式的、面向列的、主要用于非结构化数据存储用途的开源数据库。其设计思路来源于 Google 的非开源数据库”BigTable”。
计算用户间连通关系强度的算法可以分成两个部分:第一部分构建连通关系强度的计算模型即由链结关系网络图转换为对应的带有关系语境信息的链结关系网络图;第二部分进行用户间连通关系强度的计算。下面我们对该部分算法进行具体描述。
字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键。
String 对象可以认为是 char 数组的延伸和进一步封装,它主要由 3 部分组成:char 数组、偏移量和 String 的长度。char 数组表示 String 的内容,它是 String 对象所表示字符串的超集。String 的真实内容还需要由偏移量和长度在这个 char 数组中进行定位和截取。
客户端API是由HTable的实例提供的,用户可以用它来操作HBase表。除了之前提到的一些主要特性外,还有以下一些值得注意的方法。