美文网首页
java基础(一)

java基础(一)

作者: 贝贝ovo | 来源:发表于2019-08-20 11:29 被阅读0次

1.java基本数据类型有哪些,int, long占几个字节


image.png

2.== 和 equals有什么区别

==运算符,用于比较两个变量是否相等
equals是Objec类的方法,用于比较两个对象是否相等
hashCode也是Object类的方法,返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等)

Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。所以我们不能单纯的说equals到底比较的是什么。你想知道一个类的equals方法是什么意思就是要去看定义。Java中默认Object类的equals方法是比较两个对象的地址,跟==的结果一样的, equals方法实现如下:

public boolean equals(Object obj) {
    return (this == obj);
}

而String类则覆写了这个方法,直观的讲就是比较字符是不是都相同。

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = offset;
            int j = anotherString.offset;
            while (n-- != 0) {
                if (v1[i++] != v2[j++])
                    return false;
            }
            return true;
        }
    }
    return false;
}

equals如何比较并不重要,但是不理解equals存在的目的就容易踩坑。
Java中hashcode()和equals()的联系

一些教程说Java中 == 表示比较对象的内存地址,而equals比较具体的内容,这个说法其实不准确。equals的存在的作用在于允许程序员自己根据需要定义比较方法,由程序员自己决定两个对象满足什么条件算作是相等。一些书上这么写是因为使用String类的 == 和equals举例的。String.equals()只比较字符串的具体内容是由它的实现决定的。

如果两个对象通过equals方法比较是相等的,那么他们调用hashCode方法就要得到相同的hash返回值。

相反,如果两个对象调用hashCode有相同的返回值,不一定要求他们equals比较相等。

也就是说,当你为一个自定义类覆写equals方法时,也要记得覆写相应的hashCode方法,保持一致。否则操作自定义类的集合时会存在潜在的问题,具体看文章链接

3.java的拆装箱
5分钟彻底理解-Java自动装箱、拆箱

4.String s=new String("abc")创建了2个对象的原因

5.位运算
负数与二进制换转方法
Java 位运算(移位、位与、或、异或、非)

  1. Java中Comparable与Comparator的区别

7.为什么String被设计为不可变?是否真的不可变?
为什么String要设计成不可变的?
String.intern()

8.搞懂 JAVA 内部类

9. HashMap工作原理及实现

相关文章

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java 集合类原理

    Java基础——HashMap源码分析 Java基础——HashSet源码分析 Java基础——HashTable...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • java基础(一)-String、StringBuffer、St

    java基础-String、StringBuffer、StringBuilder java基础小白,初学java,...

网友评论

      本文标题:java基础(一)

      本文链接:https://www.haomeiwen.com/subject/skhdsctx.html