首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端面试题(一)

    2; a == d; //类型和数值都不相等falsevar a = null, b = undefined; a ==b; //true 2、运算符“===”:首先计算其操作数的值,然后比较这两个值,...比较过程没有任何类型转换 (1)如果两个值类型不相同,则它们不相等。...(2)如果两个值都是null或者都是undefined,则它们不相等。 (3)如果两个值都是布尔值true或false,则它们相等。...(4)如果其中一个值是NaN,或者两个两个值都是NaN,则它们不相等。 (5)如果两个值为数字,且数值相等,则它们相等。如果一个为0,另一个为-0,则它们同样相等。...(6)如果两个值为字符串,且所含的对应位上的16位数完全相等,则它们相等。如果它们的长度或内容不同,则它们不等。 (7)如果两个引用值同一个对象、数组或函数,则它们是相等的。

    1.1K10

    equals 和 hashCode 到底有什么联系?一文告诉你!

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: 1) 如果是boolean值,则计算f ?...1:0; 2) 如果是byte\char\short\int,则计算(int)f; 3) 如果是long值,则计算(int)(f ^ (f >>> 32)); 4) 如果是float值,则计算Float.floatToIntBits...(f); 5) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int; 6) 如果是对象应用,如果equals

    67130

    基于麦克风阵列的现有声源定位技术有_阵列原理

    )最大,S卩,调整χ (η)与y(n)错位对齐,此时的m值即是两 个声音信号x(n)和y(n)的时间差。...a2 分别是方位角 Φ 为上限 Sl 乘以 (1-0. 618)时计算的声源到达第二麦克风与声源到达第一麦克风的时间差以及计算的声源 到达第三麦克风与声源到达第一麦克风的时间差;(a7)如果|errorl-error2...|大于预定阈值,并且errorl > error2,则确定方位角Φ 的范围在确定的区间的下限S2与上限Sl乘以0.618之间;如果|errorl-error2|大于所 述预定阈值,并且errorl 时间差;(b7)如果I error3-error4 I大于另一预定阈值,并且error3 > error4,则确定距离R 的范围在确定的区间的下限S4与上限S3乘以0. 618...之间;如果I error3-error4 I大于所 述另一预定阈值,并且error3 则确定距离R的范围在上限S3乘以(1-0. 618)与 上限S3之间;(b8)根据再次确定的距离

    79920

    详解equals()方法和hashCode()方法

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: (1) 如果是boolean值,则计算f ?...1:0 (2) 如果是byte\char\short\int,则计算(int)f (3) 如果是long值,则计算(int)(f ^ (f >>> 32)) (4) 如果是float值,则计算Float.floatToIntBits...(f) (5) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int (6) 如果是对象应用,如果equals

    72841

    详解equals()方法和hashCode()方法

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: (1) 如果是boolean值,则计算f ?...1:0 (2) 如果是byte\char\short\int,则计算(int)f (3) 如果是long值,则计算(int)(f ^ (f >>> 32)) (4) 如果是float值,则计算Float.floatToIntBits...(f) (5) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int (6) 如果是对象应用,如果equals

    41210

    MySQL主从延迟Seconds_Behind_Master计算方式

    •大家之前了解到的这个计算方式可能是从库 I/O 线程读取的主库 binlog event 时间戳与 SQL 线程正在执行的 binlog event 的时间戳之间的时间差 这样计算的问题: 1、 首先这样的计算方法本身是不对的...,如果本地时间有问题会导致event时间戳不准,从而出现误差,所以计算公式中会记录一下主从库的当前时间差 公式如下: 从库本地时间戳-主从本地的时间差-从库 SQL 线程正在执行的event的时间戳...注意:这个时间差只会在主从线程启动时计算一次,所以start slave后如果主从本地时间出现异常,Seconds_Behind_Master也是不准的,需要重启复制线程重新计算主从本地时间差异(如果最终计算结果是负数...,会归零) 2、 如果IO线程出现延迟,此时这个值是有误差的,Seconds_Behind_Master可能显示为0,但实际和主库是有延迟的,容易出现误差 提示:所以只拿这个值来做复制延迟的监控是不准的...IO线程有延迟则即使Seconds_Behind_Master=0但是还是有延迟 关键词解释 •(long)(time(0)):获取当前从库服务器的运行时间•clock_diff_with_master

    2.7K30

    详解 equals() 方法和 hashCode() 方法

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: (1) 如果是boolean值,则计算f ?...1:0 (2) 如果是bytecharshortint,则计算(int)f (3) 如果是long值,则计算(int)(f ^ (f >>> 32)) (4) 如果是float值,则计算Float.floatToIntBits...(f) (5) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int (6) 如果是对象应用,如果equals

    63731

    码处高效:覆盖 equals() 时切记要覆盖 hashCode()

    一个好的散列通常是 "为不相等的对象产生不相等的散列码"。这正是 hashCode 约定中的第三条含义。理想情况下,散列函数应该把集合中不相等的实例均匀地分布到所有可能的 int 值上。...result = 31 * result + c; 1)如果该域是基本类型,则计算 Type.hashCode(f),这里的 Type 是集装箱基本类型的类,与 f 的类型相对应 2)如果该域是一个对象引用...如果为null ,则返回0 3)如果该域是一个数组,则要把每一个元素当作单独的域来处理。...也就是说,递归地应用上述规则,对每个重要的元素计算一个散列码,然后根据步骤2 . b中的做法把这些散列值组合起来。如果数组域中没有重要的元素,可以使用一个常量,但最好不要用0。...将不相等的散列码分配给不相等的实例。这个很容易实现,但是如果不想那么费力,可以直接使用 eclipse 或者 Idea 提供的 AutoValue 自动生成就可以了。

    67820

    详解equals()方法和hashCode()方法

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: (1) 如果是boolean值,则计算f ?...1:0 (2) 如果是byte\char\short\int,则计算(int)f (3) 如果是long值,则计算(int)(f ^ (f >>> 32)) (4) 如果是float值,则计算Float.floatToIntBits...(f) (5) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int (6) 如果是对象应用,如果equals

    43320

    详解 equals() 方法和 hashCode() 方法

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: 如果是boolean值,则计算f ?...1:0 如果是byte\char\short\int,则计算(int)f 如果是long值,则计算(int)(f ^ (f >>> 32)) 如果是float值,则计算Float.floatToIntBits...(f) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int 如果是对象应用,如果equals方法中采取递归调用的比较方式

    51030

    详解 equals() 方法和 hashCode() 方法

    如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等...如果两个对象equals()相等,则它们在哈希表(如HashSet、HashMap等)中只应该出现一次;如果hashCode()不相等,那么它们会被散列到哈希表的不同位置,哈希表中出现了不止一次。...: (1) 如果是boolean值,则计算f ?...1:0 (2) 如果是byte\char\short\int,则计算(int)f (3) 如果是long值,则计算(int)(f ^ (f >>> 32)) (4) 如果是float值,则计算Float.floatToIntBits...(f) (5) 如果是double值,则计算Double.doubleToLongBits(f),然后返回的结果是long,再用规则(3)去处理long,得到int (6) 如果是对象应用,如果equals

    31410

    【Three.js基础】坐标轴辅助器、requestAnimationFrame处理动画、Clock时钟、resize页面尺寸

    function render(time){ //默认会传一个`time`,单位是ms// 根据时间和速度计算移动距离// 1.计算时间let t = time / 1000 % 5;// 2....如果设置为 true,则在第一次调用getDelta()时开启时钟。...如果autoStart 设置为 true 且时钟并未运行,则该方法同时启动时钟getDelta () : Float获取自oldTime 设置后到当前的秒数。 同时将 oldTime设置为当前时间。...如果autoStart 设置为 true 且时钟并未运行,则该方法同时启动时钟// 设置时钟const clock = new THREE.Clock()(1)获取时钟运行总时长let totalTime...= clock.getElapsedTime();(2)获取两帧之间的时间差 let deltaTime = clock.getDelta();//两帧的时间差,这一帧到下一帧的时间差此时deltaTime

    78320

    python中关于timedatatime的一些零碎笔记

    没有参数则显示当前时间;除了用time.actime方法之外,还有time.strftime() 方法,这个可以根据strftime支持的格式,以用户喜欢的格式输出显示的时间. B....datetime 模块中包含了date, time, datetime 类,这三个类分别把date, time, datetime 转换为相应的对象,关于时间差的计算,以及基于时间差进行新时间的计算都需要相应的这些...计算两个给定data/time 之间的时间差, 我们希望可以用 dt1-dt2这种简单方式计算时间差,但是可惜的是,并不支持这种运算....要计算两个时间的时间差,用其中一个时间的 sub 方法 或者 rsub 方法, 然后提取时间差的days, 举例如下: >>> dt datetime.datetime(1988, 2, 8, 19,...__sub__(dt).seconds #获取时间差的seconds 的值; 1140 >>> t+datetime.timedelta(hours=8,minutes=15)

    48910

    java为什么要重写hashCode和equals方法

    如果该数组位置上已经有放入的值了,且传入的键值相等则不处理,若不相等则覆盖原来的值,如果数组位置没有条目,则插入,并加入到相应的链表中。检查键是否存在也是根据hashCode值来确定的。...、如果该域是boolean类型,则计算(f?...4)、如果该域是long类型,则计算(int)(f ^ (f>>>32))。                     ...5)、如果该域是double类型,则计算Double.doubleToLongBits(f)得到一个long类型的值,然后按照步骤4,对该long型值计算散列值。                     ...如果这个域的值为null,则返回0(或者其他某个常数)                     7)、如果该域是一个数组,则把每一个元素当做单独的域来处理。

    2.9K21

    效率编程 之「对于所有对象都通用的方法」

    为该域计算int类型的散列码c: i. 如果该域是boolean类型,则计算(f?1:0)。 ii. 如果该域是byte、char、short或者int类型,则计算(int)f。 iii....如果该域是long类型,则计算(int)(f^(f>>>32))。 iv. 如果该域是float类型,则计算Float.floatToIntBits(f)。 v....如果该域是double类型,则计算Double.doubleToLongBits(f),然后按照步骤2.a.iii,为得到的long类型值计算散列值。 vi....如果需要更复杂的比较,则为这个域计算一个“范式”,然后针对这个范式调用hashCode方法。如果这个域的值为null,则返回0(或者其他某个常数,但通常是0)。 vii....如果相等的实例有着不相等的散列码,则要找出原因,并修正错误。 在散列码的计算过程中,可以把冗余域排除在外。换句话说,如果一个域的值可以根据参与计算的其他域值计算出来,则可以把这样的域排除在外。

    41930

    价值观

    值是通过计算表达式产生的数据。本节介绍 M 语言中值的种类。每种值都与文字语法、一组该类型的值、一组定义在该组值上的运算符以及归属于新构造值的内在类型相关联。...为空值定义了以下运算符: 操作员 结果 x > y 比...更棒 x >= y 大于或等于 x < y 少于 x <= y 小于或等于 x = y 平等的 x y 不相等 x ??...如果没有明确指定的精度,则使用Double Precision执行此类操作。 如果数学运算的结果对于目标格式来说太小,则运算结果将变为正零或负零。...如果数学运算的结果对于目标格式来说太大,则运算结果将变为正无穷大或负无穷大。 如果数学运算无效,则运算结果变为 NaN。 如果浮点运算的一个或两个操作数为 NaN,则运算结果变为 NaN。...时间 一时间值存储的当日时间的不透明表示。时间被编码为自午夜以来的滴答数,它计算 24 小时制中经过的 100 纳秒滴答数。自午夜以来的最大滴答数对应于 23:59:59.9999999 小时。

    83040
    领券