ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

期末笔记

2022-06-27 00:01:35  阅读:157  来源: 互联网

标签:java HashMap HashSet 绑定 笔记 期末 Java public


java的编译时错误和运行时错误

java中的super

java中的集合与map

java中的clone

java的修饰符

https://www.runoob.com/java/java-modifier-types.html

  • private修饰的方法仅限于同一个类访问,且不能被继承
  • 接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。

接口的default方法

https://www.liaoxuefeng.com/wiki/1252599548343744/1260456790454816

  • 可被覆写
  • 静态方法只能访问静态字段

Java对象类型转换和强制对象类型转换

  • Java对象类型转换和强制对象类型转换
  • 实例方法与引用变量实际引用的对象的方法进行绑定,这种绑定属于动态绑定,因为是在运行时由 Java 虚拟机动态决定的。例如,animal.eat() 是将 eat() 方法与 Cat 类绑定。
  • 静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为是在编译阶段已经做了绑定。例如,animal.staticEat() 是将 staticEat() 方法与 Animal 类进行绑定。
  • 成员变量(包括静态变量和实例变量)与引用变量所声明的类型的成员变量绑定,这种绑定属于静态绑定,因为在编译阶段已经做了绑定。例如,animal.name 和 animal.staticName 都是与 Animal 类进行绑定。

HashSet原理:https://cloud.tencent.com/developer/article/1618762

HashSet 的内部结构

HashSet 类继承 AbstractSet,实现 Set 接口、实现了 Cloneable 接口以及序列化 Serializable 接口~ 如:

public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, java.io.Serializable

所以,其具备 Set 的基本特性之外,也支持克隆以及序列化相关能力。

public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, java.io.Serializable
{
    static final long serialVersionUID = -5024744406713321676L;

    private transient HashMap<E,Object> map;

    // Dummy value to associate with an Object in the backing Map
    private static final Object PRESENT = new Object();

从上述代码可以看出,HashSet 内部使用了 HashMap,还有一个 static final 定义的对象 PRESENT~ 具体 map 和 PRESENT 是如何使用的?我们在接下来的代码实现分析中介绍

构造函数的实现

默认构造函数源代码

/**
     * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
     * default initial capacity (16) and load factor (0.75).
     */
    public HashSet() {
        map = new HashMap<>();
    }

final修饰的String

标签:java,HashMap,HashSet,绑定,笔记,期末,Java,public
来源: https://www.cnblogs.com/ro2phy/p/16414771.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有