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

Java基础面试题 - 总结

equals的方法,equals的源码是这样写的: public boolean equals(Object obj) { //this - s1 //obj - s2 return...在这些类当中equals有其自身的实现(一般都是用来比较对象的成员变量值是否相同),而不再是比较类在堆内存中的存放地址了。...因为object中的equals()方法比较的是对象的引用地址是否相等,如何你需要判断对象里的内容是否相等,则需要重写equals()方法。 4. hashcode()方法的作用?...接口里定义的变量只能是public static final,抽象类中的变量是普通变量。 抽象类里可以没有抽象方法。 接口可以被类多实现(被其他接口多继承),抽象类只能被单继承。...Method.invoke(obj实例对象,obj可变参数);-----(是有返回值的) 10.线程池的核心参数 参数名 参数含义 corePoolSize 核心线程数 maxinumPoolSize

65200

java中equals,hashcode和==的区别

java中equals,hashcode和==的区别 相信很多人都很清楚 ==运算符是判断两个对象是不是同一个对象,即他们的地址是否相等 object类中equals与==是等效的 覆写equals更多的是追求两个对象在逻辑上的相等...Java里面有==运算符了,为什么还需要equals equals()的作用是用来判断两个对象是否相等,在Object里面的定义是: //equals与==是等效的public boolean equals...(Object obj) { return (this == obj); } 这说明在我们实现自己的equals方法之前,equals等价于==,而==运算符是判断两个对象是不是同一个对象...,则x.equals(z)=true 一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变 非空性:任何非空的引用值X,x.equals(null)的返回值一定为false 在以下几种条件中...类是私有的或者包级私有的,那也用不到equals方法:这时候需要覆写equals方法来禁用它: @Override public boolean equals(Object obj) { throw new

1.4K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java集合类操作优化经验总结

    Collection 接口提供的主要方法: boolean add(Object o) 添加对象到集合; boolean remove(Object o) 删除指定的对象; int size() 返回当前集合中元素的数量...; boolean contains(Object o) 查找集合中是否有指定的对象; boolean isEmpty() 判断集合是否为空; Iterator iterator() 返回一个迭代器;...boolean containsAll(Collection c) 查找集合中是否有集合 C 中的元素; boolean addAll(Collection c) 将集合 C 中所有的元素添加给该集合;...Map 提供的主要方法: boolean equals(Object o) 比较对象; boolean remove(Object o) 删除一个对象; put(Object key,Object value...HashCode 和 Equals 方法继承自根类 Object,如果你用自定义的类当作 Key 的话,要相当小心,按照散列函数的定义,如果两个对象相同,即 obj1.equals(obj2)=true

    1.3K170

    集合类操作优化经验总结

    Collection 接口提供的主要方法: boolean add(Object o) 添加对象到集合; boolean remove(Object o) 删除指定的对象; int size() 返回当前集合中元素的数量...; boolean contains(Object o) 查找集合中是否有指定的对象; boolean isEmpty() 判断集合是否为空; Iterator iterator() 返回一个迭代器;...boolean containsAll(Collection c) 查找集合中是否有集合 C 中的元素; boolean addAll(Collection c) 将集合 C 中所有的元素添加给该集合;...Map 提供的主要方法: boolean equals(Object o) 比较对象; boolean remove(Object o) 删除一个对象; put(Object key,Object value...HashCode 和 Equals 方法继承自根类 Object,如果你用自定义的类当作 Key 的话,要相当小心,按照散列函数的定义,如果两个对象相同,即 obj1.equals(obj2)=true

    74920

    Java集合详解(超详细)

    () 是否为空集合 boolean isEmpty() 是否包含某个元素 boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象 boolean...用两个两个集合的元素逐一比较 删除 boolean remove(Object obj):通过元素的equals方法判断是否是要删除的那个元素。...,不影响c 集合是否相等 boolean equals(Object obj) 转换成对象数组 Object [] toArray() 获取集合对象的哈希值 hashCode() 遍历 iterator...当需要把一个对象放入TreeSet中,重写该对象对应的equals()方法时,应保证该方法与compareTo(Object obj)方法有一致的结果:如果两个对象通过equals()方法比较返回true...isEmpty():判断当前map是否为空 boolean equals(Object obj):判断当前map和参数对象obj是否相等 @Test public void test1(){

    91920

    (Java实习生)每日10道面试题打卡——Java基础知识篇「建议收藏」

    封装也称为信息的隐藏,在Java中接口是体现封装最常用的方法,在接口中我们没有任何功能的实现(具体实现都交给实现类),只是定义了一系列抽象的方法声明用于外部调用。...在Java中方法的重载和重写是实现多态的2种方式。 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载。方法重载体现了编译时的多态性。...值,在Java规范中并没有给出其储存大小,在《Java虚拟机规范》中给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。...6、请判断当一个对象被当作参数传递给一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。java 编程语言只有值传递参数。...当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

    57120

    Java基础总结大全(2)

    (4)字符串中各种功能的方法 A:判断 **** boolean equals(Object anObject):判断两个字符串的内容是否相同,复写了Object的方法 **** boolean...则定义学生对象时,需复写equals方法 public boolean equals(Object obj) { if(!...方法虽然定义在自定义对象类里面,但不是我们手动调用 而是往HashSet集合里面存储元素的时候,集合底层自己调用hashCode和equals 它自己拿对象去判断,自己判断两元素是否是同一个元素...boolean equals(Object object):比较此collection与指定对象是否相等 m. boolean isEmpty():判断是否集合为空 d)获取: h....Set集合中, 这个映射关系的数据类型是Map.entry,再通过Map.Entry类的方法再要取出关系里面的键和值 Map.Entry的方法摘要: boolean equals(Object o

    1.5K90

    Java之面向对象例子(三) 多态,重写,重载,equals()方法和toString()方法的重写

    重写(继承关系) 子类得成员方法和父类的成员方法,方法名,参数类型,参数个数完全相同,这就是子类的方法重写了父类的方法。 重载 在一个类里有两个方法,方法名是完全一样的,参数类型或参数个数不同。...实例化的对象返回结果一定为false,重写让他比较对象的属性 public boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。...equals 方法在非空对象引用上实现相等关系: 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。...注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。 参数:obj - 要与之比较的引用对象。...返回:如果此对象与 obj 参数相同,则返回 true;否则返回 false。 instanceof java中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。

    1.4K60

    JAVA入门学习六

    boolean contains(Object o) //#返回 true如果集合包含指定元素。 boolean isEmpty() // #返回 true如果集合不包含任何元素。...,所以每一个集合存和取都是不一样,那么就需要在每一个类中定义hasNext()和next()方法 这样做是可以的,但是会让整个集合体系过于臃肿,迭代器是将这样的方法向上抽取出接口,然后在每个类的内部,定义自己迭代方式好处有二...这个类实现Iterator接口 * 4,查找Itr这个内部类,发现重写了Iterator中的所有抽象方法 * 5,hasNext() 是判断集合中是否有参数,以及cursor标志位是否 == 集合的size...("Java"); Iterator it = c.iterator(); //获取迭代器 boolean bl = it.hasNext(); //判断集合中是否有元素,有则返回true...问题1:集合框架(并发修改异常产生的原因及解决方案) ListIterator常用方法: * boolean hasNext()是否有下一个 * boolean hasPrevious()是否有前一个

    40320

    JAVA入门学习六

    boolean contains(Object o) //#返回 true如果集合包含指定元素。 boolean isEmpty() // #返回 true如果集合不包含任何元素。...,所以每一个集合存和取都是不一样,那么就需要在每一个类中定义hasNext()和next()方法 这样做是可以的,但是会让整个集合体系过于臃肿,迭代器是将这样的方法向上抽取出接口,然后在每个类的内部,定义自己迭代方式好处有二...这个类实现Iterator接口 * 4,查找Itr这个内部类,发现重写了Iterator中的所有抽象方法 * 5,hasNext() 是判断集合中是否有参数,以及cursor标志位是否 == 集合的size...("Java"); Iterator it = c.iterator(); //获取迭代器 boolean bl = it.hasNext(); //判断集合中是否有元素,有则返回true...问题1:集合框架(并发修改异常产生的原因及解决方案) ListIterator常用方法: * boolean hasNext()是否有下一个 * boolean hasPrevious()是否有前一个

    58220

    Java5新特性及使用

    泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法中,分别称为泛型类、泛型接口、泛型方法。 2....泛型类、泛型接口 泛型类中的类型参数几乎可以用于任何可以使用接口名、类名的地方。...能用这种方法遍历的对象的类型,可以是数组、Collection、Map或者任何其它实现了java.lang.Iterable接口的类。...自动装箱和拆箱在Java中很常见,比如我们有一个方法,接受一个对象类型的参数,如果我们传递一个原始类型值,那么Java会自动将这个原始类型值转换成与之对应的对象。...> c2) - 判断两个集合是否不相交,换句话说,是否它们不包含任何共同的元素。 addAll(Collection<?

    1.3K30

    JAVA自动拆装箱、equals与==比较

    long——Long char——Character boolean——Boolean short——Short 1.引入原因 举个例子:主要是用于java集合中,List list...2)基本包装类型重写了equals方法,基本包装类型的equals不会进行类型的转换,类型不同的包装类型的变量直接被判定为false,尽管他们的数值有可能是相等的。...Integer的equals源码如下: public boolean equals(Object obj) { if (obj instanceof Integer) {...这就解释了虽然e和f是不同的对象(==判定为false),但是equals判定为true,因为其数值都为250。...Object类中的equals方法和“==”是一样的,没有区别,而String,Double,Integer,Date,Point类等等一些类,是重写了equals方法,比较的是两个对象的内容是否相等

    41010

    Java中的集合

    * Iterator在执行next方法过程中,会按照初始条件一个一个遍历 * 当前集合通过remove方法,删除已经被Iterator记录的元素时,是有可能导致 * Iterator一脸懵逼...extends E> c); 在指定的下标位置,添加指定的集合,集合要求同上一个addAll方法 删: void clear(); 清空整个集合 remove(Object obj); 删除集合中的指定元素...> c); int indexOf(Object obj); 找出指定元素在集合中的第一次出现位置 int lastIndexOf(Object obj); 找出指定元素在集合中最后一次出现位置 E...index = -1; for (int i = 0; i < size; i++) { // equals 判断对象是否一致地方的方法 if (obj.equals(elements...* 这里会通过equals方法,比较两个对象是否一致,来决定是否能够保存。 * 如果两个对象一致,无法保存。

    1.4K20

    Java 代码优化建议

    调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。...Object 对象引用,   //每次 new Object() 的时候,Object 对象引用指向不同的 Object 罢了,   //但是内存中只有一份,这样就大大节省了内存空间了。    ...如果会话要被转储到磁盘,那么必须要先被序列化,在大规模集群中,对对象进行序列化的代价是很昂贵的。...Objects.equals(Object a,Object b)方法,对比对象地址值是否相等,而且还是用equals方法进行比较,而且不用关心a,b对象是否为空 public static...)判断对象是否为空,相对应的有nonNull方法 public static boolean isNull(Object obj) {     return obj == null;

    62510

    Java 泛型

    那么我们说这个集合只有两条数据,我们可以进行判断强转,如果数据有成千上万条呢,我们都通过这样判断强转肯定不可取   ②、在往集合中加入数据的时候,我们就做好限制,比如这个集合只能添加 String 类型的...泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。   ...在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的...接收泛型对象时,则不能设置被泛型指定的内容 List list = new ArrayList(); list.add("aa"); //错误,无法设置 4.3、泛型方法的定义与其所在的类是否是泛型类是没有任何关系的,所在的类可以是泛型类,

    1.6K100

    Java基础篇:什么是hashCode 以及 hashCode()与equals()的联系

    2、equals()与hashCode()的联系: Java的超类Object类已经定义了equals()和hashCode()方法,在Obeject类中,equals()比较的是两个对象的内存地址是否相等...)两个对象的hashCode()结果相同,并不能代表两个对象的equals()一定为true,只能够说明这两个对象在一个散列存储结构中。...,这样,它就不可能与第一个对象进行equals方法比较了,也就可能被存储进HashSet集合中了;所以,Object类中的hashCode()方法不能满足对象被存入到HashSet中的要求,因为它的返回值是通过对象的内存地址推算出来的...,同一个对象在程序运行期间的任何时候返回的哈希值都是始终不变的,所以,只要是两个不同的实例对象,即使他们的equals方法比较结果相等,他们默认的hashCode方法的返回值是不同的。...,直接存入集合; 当执行set.add(p2)时(2),首先判断该对象p2的hashCode值所在的存储区域是否有相同的hashCode,因为没有覆盖hashCode方法,所以默认使用Object的hashCode

    2.3K10
    领券