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

一文读懂《Effective Java》第43条:返回零长度数组或集合,不是null

对于一个返回null 不是零长度数组或者集合方法,客户端几乎每次用到该方法都可能会忘记写专门处理null 返回代码,进而导致NPE。...返回值为null 与性能 有时候会有程序员认为:null 返回值比零长度数组更好,因为它避免了分配数组所需要开销,但这种观点站不住脚。...在返回值这种级别上担心性能问题是不明智,除非分析表明这个方法是造成性能问题真正源头 对于不返回任何元素调用,每次返回同一个零长度数组是有可能,因为零长度数组不可变不可变对象可能被自由共享...,没理由返回null,二是返回一个零长度数组或者集合。...Java 返回值为null 做法,很可能是从C 语言沿袭过来,在C 中,数组长度是与实际数组分开返回,如果返回数组长度为0,再分配一个数组就没有任何好处了。

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

jQuery对象

当创建新元素(或选择现有元素)时,jQuery返回集合中元素。jQuery许多开发人员认为这个集合是一个数组。.length毕竟,它有一个零索引序列DOM元素,一些熟悉数组函数和一个属性。...实际上,jQuery对象比这更复杂。 链接DOM和DOM元素 文档对象模型(简称DOM)是HTML文档表示形式。它可能包含任意数量DOM元素。在高层次上,DOM元素可以被认为是网页“一块”。...不是返回一个包含jQueryDOM元素,它返回DOM元素本身。 // Selecting only the first element on the page....一个这样例子是进行比较。 链接不是所有的jQuery对象都被创建=== 关于这种“包装”行为一个重要细节是每个包装对象是唯一。...包含在jQuery对象元素集将不会改变,除非明确修改。这意味着该集合不是“直播” - 它不会随着文档更改自动更新。

1.1K10

06-老马jQuery教程-jQuery高级

如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。 参数 object:需要例遍对象数组。 callback:每个成员/元素执行回调函数。...作为参数转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换元素作为参数。转换函数可以返回转换后值、null(删除数组项目)或一个包含值数组,并扩展至原始数组中。...参数 array:待转换数组。 callback:为每个数组元素调用,而且会给这个转换函数传递一个表示被转换元素作为参数。函数可返回任何值。...callback:此函数将处理数组每个元素。第一个参数为当前元素,第二个参数元素索引值。...类数组对象有 length 属性,其成员索引为 0 至 length - 1。实际中此函数在 jQuery 中将自动使用而无需特意转换。 参数: obj:类型Object,类数组对象

2.1K90

06-老马jQuery教程-jQuery高级

如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。 参数 object:需要例遍对象数组。 callback:每个成员/元素执行回调函数。...作为参数转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换元素作为参数。转换函数可以返回转换后值、null(删除数组项目)或一个包含值数组,并扩展至原始数组中。...参数 array:待转换数组。 callback:为每个数组元素调用,而且会给这个转换函数传递一个表示被转换元素作为参数。函数可返回任何值。...类数组对象有 length 属性,其成员索引为 0 至 length - 1。实际中此函数在 jQuery 中将自动使用而无需特意转换。 参数: obj:类型Object,类数组对象。...只处理删除DOM元素数组不能处理字符串或者数字数组。 示例 // 删除重复 div 标签。

1.8K00

jquery和原生dom对象转换&常用函数方法

返回是一个类似数组对象jquery可以通过$p[0]下标来获取对应对象,也可以获取$p 长度 ?...但选中这个jquery对象返回还是类数组,我们分辨不了,我们只能通过length来分辨jquery对象是否不存在 ?...二、jquery对象方法 1、.each( function(index, Element) ) //each参数顺序和js参数顺序相反 遍历一个jQuery对象,为每个匹配元素执行一个函数 $(...each通用迭代函数,它可以用来无缝迭代对象数组数组和类似数组对象通过一个长度属性(如一个函数参数对象)来迭代数字索引,从0到length - 1。...其他对象通过其属性名进行迭代 注意,函数对应是element值,不是element本身 var obj = { "flammable": "inflammable", "duh": "no

2K30

Java面试常见题

其实说白了就是个操作系统支持指令集是不一样。我们程序需要再不同操作系统上运行这些代码。 但是不要说jvm是跨平台真正跨平台是 Java 程序,不是 JVM。...CPU 内存区,将内存划分成若干个区以模拟实际机器上存储、记录和调度功能模块,如实际机器上各种功能寄存器或者 PC 指针记录器等 本地方法调用C 或 C++ 实现本地,调用方法代码返回结果...,每个岗位部门编号,部门名称,岗位名称,部门人数,最高工资,最低工资,工资总和,平均工资....数组 Js中不指定数组长度,数组长度不是固定 赋值: 数组名[脚标]=值; //角标可以使任意正整数和0 取值: 数组名[角标] //返回当前脚标对应存储值 遍历: (1) for( var...HTML文档所有信息封装在Document对象中.

74720

Java面试常见题

其实说白了就是个操作系统支持指令集是不一样。我们程序需要再不同操作系统上运行这些代码。 但是不要说jvm是跨平台真正跨平台是 Java 程序,不是 JVM。...CPU 内存区,将内存划分成若干个区以模拟实际机器上存储、记录和调度功能模块,如实际机器上各种功能寄存器或者 PC 指针记录器等 本地方法调用C 或 C++ 实现本地,调用方法代码返回结果...,每个岗位部门编号,部门名称,岗位名称,部门人数,最高工资,最低工资,工资总和,平均工资....数组 Js中不指定数组长度,数组长度不是固定 赋值: 数组名[脚标]=值; //角标可以使任意正整数和0 取值: 数组名[角标] //返回当前脚标对应存储值 遍历: (1) for( var...HTML文档所有信息封装在Document对象中.

65310

全网最新、最全jQuery核心知识,你真的不想点开看看嘛?

jQuery 1.jQuery介绍 JS中支持使用 $ 这个标识符 引入:我们以前使用DOM对象来改变或者获取相关属性value值,DOM对象方法特别的长,不容易记住, 而且代码观赏性较差,因此就出现了一种新技术...为什么使用 jQuery 它能够兼容市面上主流浏览器, IE 和 FireFox,Google 浏览器 处理 AJAX,创建异步对象是不同 jQuery 能够使用一种方式在不同浏览器创建 AJAX...一般情况下,在命名jQuery对象时,为了与DOM对象进行区分,习惯性以 开头,这不是必须。...注意:以下设置内容是书写代码时标签中在网页显示文本内容,不是设置网页上显示内容。...13.2.7 each函数(常用) each 是对数组、json对象 和 dom 对象遍历,对每个元素调用一次函数。

5.8K10

【Java 进阶篇】JQuery 遍历 —— For 循环奇妙之旅

在 JavaScript 中,for 循环是一种常见迭代结构,用于遍历数组对象等数据结构。...使用 each() 方法 each() 方法是 JQuery 中用于遍历集合一种强大方式。它遍历一个 JQuery 对象每个元素,为每个元素执行提供函数。...它会将集合中每个元素传递给一个函数,然后将函数返回值组成一个新数组。这个方法在需要对元素进行转换或过滤时非常有用。 让我们看一个使用 map() 方法例子: <!...然后,我们将返回新值组成数组插入到页面中,实现了对元素修改。...主要原因在于,JQuery 对象是类数组对象不是真正数组。因此,直接使用 for 循环时,我们需要注意一些细节,比如使用索引访问元素等。

16520

$.each()与$(selector).each()区别详解

$.each()与$(selector).each()不同, 后者专用于jquery对象遍历, 前者可用于遍历任何集合(无论是数组对象),如果是数组,回调函数每次传入数组索引和对应值(值亦可以通过...此改变运用到上面几段数组操作也会输出同样结果。 这样,几个例子实际结果已经得到答案。接着再继续往下研究,总不能知其然不知其所以然。 ...从以上例子中可知jQueryjQuery对象实现了该方法,对于jQuery对象,只是把each方法简单进行了委托:把jQuery对象作为第一个参数传递给jQueryeach方法。...== false; value = object[++i]) {} /*object[0]取得jQuery对象第一个DOM元素,通过for循环, 得到遍历整个jQuery对象中对应每个DOM...当each方法提供了arg参数时,fn函数调用传入参数为arg,否则为:子元素索引,子元素本身 2.obj 对象不是数组 该方法同1最大区别是:fn方法会被逐次不考虑返回进行进行。

1.8K120

bootstrap 自动补全插件Bootstrap Typeahead 组件

如果你希望通过 Ajax 调用从服务器端获取匹配数据,那么,在异步完成处理函数中,你需要获取一个匹配字符串数组,然后,将这个数组作为参数,调用 process 函数。...复制代码 ](javascript:void(0); "复制代码") 第五,使用对象数据 实际上,你数据可能是一组对象不是一个字符串数组,下面的例子中,我们使用一个产品对象数组来说明,每个产品对象有一个...id 编号,还有名称 name 和价格 price...首先,修改我们 source 函数,原来这个函数返回一个字符串数组,现在我们返回一个产品 id 数组,但是,process 函数期望得到一个字符串数组参数,所以,我们将每个 id 转换为字符串类型...id 在产品列表中获取产品对象,然后 最后,updater 函数返回一个产品名称字符串,为输入框提供内容。

2.9K20

jquery常用方法

jQuery.ajax();//返回其创建XMLHttpRequest对象。只有一个参数,参数是key/value 对象,包含各配置及回调函数信息。...遍历对象数组 jQuery.map();//修改数据 jQuery.grep();//数据筛选,返回一个经过筛选后数组 jQuery.inArray(value,array);//查找元素下标 jQuery.merge...(array1,array2);//合并两个数组 jQuery.unique(dom);//去除重复DOM元素 jQuery.makeArray(obj);//将类数组对象转换为数组对象 jQuery.trim...(str);//去掉字符串起始和结尾空格 jQuery.contains(dom1,dom2);//dom1节点是否包含dom2节点 jQuery.type();//返回对象数据类型 jQuery.isArray...jQuery.isPlainObject();//是否为使用“{}”或“new Object”生成对象不是浏览器原生提供对象

78120

JQuery常用命令

JQuery数组对象提供函数自带 for 循环遍历每个查找到元素 (4). JQuery 函数底层都是 DOM 操作,所以可和原生 DOM 操作组合使用 (5)....原生 DOM 对象不能调用 JQuery 提供函数 JQuery 函数返回数组对象也不能调用核心 DOM 成员 (6). 原生 DOM 对象JQuery 对象间如何转换 ①....JQuery 对象方法返回值一般还是当前选定数组对象,可以实现“链式调用” 7....JQuery数组对象操作: window.$ window.Jquery $()函数或 JQuery()返回值是一个“类数组象”— 有点像数组,但不是 Array 类型实例,其中封装着查找到所有...fn) 遍历类数组中封装每一个 DOM 对象,针对每个 DOM 元素执行一次指定回调函数 (5). $(..).index(domObj) 返回指定 DOM 元素在当前类数组下标 37.

6.4K10

jQuery 快速入门教程

jQuery库中实际上定义了一个jQuery()方法,它是jQuery核心。我们调用该方法并传入指定参数,就可以返回一个jQuery实例对象,该对象中包含匹配一个或多个DOM元素。...上面我们提到所有选取元素方法,返回不是DOM元素(Element对象),而是jQuery对象,只是其中封装了所有DOM元素。...接下来我们进行DOM操作,也应该使用jQuery对象方法,不是Element对象方法。当然,jQuery对象也可以转换为DOM元素,后面我们会提到。...// 函数内this表示触发事件的当前DOM元素(不是jQuery对象) // 如果函数返回值为false,可以阻止事件冒泡和元素默认事件行为。...有些时候,我们也可能需要将jQuery对象转换DOM元素。 在此之前,我们应该先了解jQuery对象所包含DOM元素是存储在什么属性中实际jQuery对象是一个类数组对象

13.6K30
领券