第一部分 Java:面向对象理解

Java:面向对象理解、集合、IO、NIO、并发、反射源码分析
一.面向对象
1.创建对象的5种方式

   (1)使用new关键字
   (2)使用Class类的newInstance方法
   (3)使用构造函数类的newInstance方法
   (4)使用clone方法 --》未实现Cloneable会报错
   (5)使用反序列化
   5动态代理

2.this、super的用法
它们都是用来调用构造器,有什么区别呢?

  (1)this
        this.属性名;
            当局部变量与成员变量名称相同时,使用this关键字代表成员变量
            如果局部变量和成员变量名称不同,this可以省略

        this.方法名();
            本类中可以省略this

        this();
        this("小花",2);
            调用本类的构造函数,首行、只能用一个
  (2)super
        super.属性名;
            当父类和子类有相同的同名成员变量时,调用父类中的普通中的属性

        super.方法名(); ❌
            调用父类的成员方法

        super();
        super("小花",2);
            调用父类的构造方法,首行、只能用一个

3.static、final的用法 JVM内存模型

  (1)static
    [1]属性   --静态变量/类变量≠成员变量
    [2]方法       --静态方法/类方法(no Constructor)
    [3]代码块    --静态代码块
    [4]内部类    --静态内部类
  (2)final
    [1]修饰类      --不能被继承
    [2]修饰方法     --不能被重写
    [3]修饰变量     --值不能修改,常量

4.abstract、interface的用法
接口、抽象类的区别,普通方法、抽象方法的区别

5.extends、implements的用法
继承、实现的区别

.@Override
    方法的重载、方法重写的区别
    继承:
            当我们想要一个模板,实现多种对象,把代码提取出来放到一个单独的类中  --这个存放的类叫作父类
                父类(超类,基类):     被继承者
                子类(派生类) :                 继承者
            语法:
                    public class 子类名 extends 父类名{
                    }
            注意事项:
                    1、一个类只能直接继承一个类,但是可以间接继承其他类
                    2、一个类如果没有明确extends另一个类,那么默认继承Object类:一个类,是所有类的超类

            范围:
                子类可以继承父类的所有数据,包括私有数据,但是要间接访问,构造函数不能继承

            好处:
                省代码

            方法重写:
                    如果子类和父类方法名完全相同,子类的这个方法就叫做方法的重写

     重写需要注意的地方:
            1、构成重写的条件: 方法的返回值,方法名,参数列表要完全相同,修饰符的范围不能小于父类   
            2、私有的方法和构造函数不能被重写
            3、静态方法不存在重写的概念,但是可以被继承

6.向上转型、向下转型

7.静态代码块、构造代码块、同步代码块

8.静态内部类、匿名内部类

9.面向对象的理解

10.类变量、实例变量、全局变量、局部变量的区别

 类变量:独立于方法之外的变量,用static修饰
  实例变量/全局变量:独立于方法之外的变量,不过没有static修饰
  局部变量:类的方法中的变量

11.各种数据类型的显示转换、隐式转换

     Object是所有引用类型的父类  包装类型都是Number的子类
      java.lang.包装类
      byte      Byte
      short Short
      int       Integer
      long      Long
      float Float
      double    Double
      char      Character
      boolean   Boolean

        整型常量池的长度是固定的,   byte

11.交换两个对象的数值

二.集合
1.HashMap源码分析
Java中基本数据结果 –》数组、指针(引用)

    (1)影响性能 --》初始容量、加载因子
        容量:哈希表中的桶的容量,初始容量:哈希表创建时的容量,加载因子:哈希表扩容之前能达到的容量百分比
    (2)寻址方式
     key-计算方式-hashcode-数组长度取模 位移运算

更新中…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值