• Java基础总结


    1.基本数据类型 4类8种

    uploading.4e448015.gif

    正在上传…重新上传取消

    2方法的重载**

    概念:

    同一个类中,方法名相同,访问修饰符相同,其他都相同,方法的参数列表不同【形参的顺序,个数,类型不同】,重载在一个类中没有继承关系,重载的各个方法之间相互也没关系。

    uploading.4e448015.gif

    正在上传…重新上传取消

    3.递归

    本质:方法自己调用自己,注意点是一定要有递归跳出条件,必然就会栈溢出

    uploading.4e448015.gif

    正在上传…重新上传取消

    4 类和对象的关系

    uploading.4e448015.gif

    正在上传…重新上传取消

    5.构造方法、构造器、构造函数

    概述:

    public + 类名 +参数列表+{

    }

    注意点:

    1.JDK默认提供无参构造,自己写了无参构造会自动替换掉默认的无参构造

    2.可以写多个构造器,无参有参的根据需求提供很

    3.构造器本身是个方法,所以它不仅是创建实例的,也可以在构造器中做很多的事情,比如,有参构造中进行参数校验,就很充血模式

    6.this 关键字

    概述:

    this指代类当前实例(对象)的引用(地址),是当前对象自己。

    注意点:

    方法被哪个对象(实例)调用,方法中的this 就代表哪个对象(实例),可以访问对象所对应类的方法和属性。

    作用:

    1.在全局变量和局部变量冲突时,区分全局变量和局部变量

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    2.可以指代构造方法(当做构造方法来用

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    7.封装

    概述:

    1.尽可能多的将对象的细节实现,对外隐藏,在类的内部实现。做好充血模式。这样也会提高代码复用性。

    2.对外控制访问权限。

    类中的属性、方法通过访问修饰符private 修饰,对外不可见。提供外部可访问的统一入口,比如最基本的set get方法等。另外get set 方法其实可以很好地使用起来,做校验。当然最好的校验可以放在构造方法中。校验会比set 中校验更早。

    封装的步骤:

    step1.使用private来修饰属性和重要方法。

    step2.外部需要访问的数据,提供统一的方法(此时修饰符为public )

    step3.需要时可以考虑通过静态、注册、缓存等方式全局做安全性性处理。

    8.static 关键字

    概述

    static 是类中开辟的一块特殊空间,可以用来修饰类本身、类的实例创建的构造方法之外的几所有点,比如属性、方法、代码块)。

    因为只能被类直接调用,类的实例不能直接调用,所以static 修饰的内容又叫类xxx,类变量、类方法。。。

    特点:

    1 访问权限,它隶属于类, 也只有类自己能调用,一般情况下实例是不能直接访问的

    2被修饰的部分全局唯一,全局等共享,因此可作为缓存、工具类等。

    原理是jvm 保证:static修饰的内容在方法区,被堆区的对象同享

    uploading.4e448015.gif

    正在上传…重新上传取消

    3 访问权限,

    1》类的被static 修饰的内容内部可以相互调用,比如static修饰的方法间直接调用,static修饰的方法调用static修饰的属性

    2》static 这块特殊空间上的内容不能调用类中非static 修饰部分的内容

    3》类中非static 修饰的内容能直接调用static修饰的内容,因为这部分是共享的。

    9静态代码块

    概述

    被{ } 包裹的代码称为代码块

    被static 修饰的代码块,称为静态代码块。

    特点:

    1.类中的代码块在每次实例创建时执行一次,且在构造方法之前执行。

    2.静态代码块,在程序加载时执行一次,当然是在构造方法之前,但是不会随着实例创建而继续执行。

    10 继承

    概述

    在父类的基础上去构建新的类,子类继承了父类的非私有属性和方法。当然父类中被private修饰的属性方法是不能直接调用的;

    父类的构造器是不能继承的,父类构造方法的继承要用到super。

    特点:

    避免了子类写重复代码

    保留父类功能时扩展了新功能

    需要时子类还可以在子类中重写父类方法

    11 super

    概述

    用来访问父类的属性、方法、构造方

    使用场景

    子类重写了父类的方法、此时默认会调用子类的方法,而这个时候需要调用父类的方法了,就要用到super 。

    子类想用到父类的构造器时,要用到super

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    12重写

    继承关系中,子类将父类已有的方法重新实现,称为重写。

    重写是有继承关系的。注意这里没有接口实现的事情,接口实现是多肽的范畴。

    重写的方法和父类结构上保持完全一致,只是具体的代码实现上不同。结构指的是方法名、参数列表都要保持一致,访问修饰符一般和父类保持一致或者更宽松而不是更严格、返回值类型和父类保持一致或者是父类返回值类型的子类。

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    13访问修饰符

    private 限本类中可访问

    default 不写修饰符默认就是default ,当然写上更好,限本包中可以访问。

    protected 限于本包内可访问,另外加上其他包中要想访问只能是本包中该类的子类。

    public 随便谁都可以访问。

    14 final关键字

    final 本质上就干一件事,不让修饰的对象变了。

    修饰类,不让变,就是不让继承。

    修饰对象,不让变,特指的是地址的指针不变,但对象的的某个属性值是可以变的,也就是可以重新set赋值。

    修饰方法,不让变,就是不让重写。

    修饰变量,不让变,因此只能用来修饰常量,修饰变量就给自己埋坑了,变量会不能再重新赋值。

    15 多态

    概述

    同一个行为具有多种实现方式,比如吃饭这个行为不同的动物实现起来不同;

    落地到代码就是同一个接口有不同的实现类,各自的实现方式不同。或者父类的某个行为,在子类中被重写而具有了不同的处理结果**。

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    作用

    1.程序具有扩展性、是程序通用性更强

    套路写法:

    函数的形式参数写 抽象类、接口、父类,实际参数按照业务需要提供具体的实现类、子类,以达到比如工厂模式的效果。

    uploading.4e448015.gif

    正在上传…重新上传取消

    16引用类型转型

    概述

    引用类型的转型分为子类向父类的转型[向上转型]、父类向子类的转型[向下转型],各有特点。

    向上转型

    现有子类和父类,有子类说明有方法的重写、可能有新的属性或者方法。

    转型的过程是自动的,如 People poeple = new Man(); 过程中会丢掉子类新增的部分,剩下父类独有的这部分属性和方法。当然子类重写了父类的方法,调用时肯定用的是子类重写的方法。

    uploading.4e448015.gif

    正在上传…重新上传取消

    向下转型:

    现有子类和父类,有子类说明有方法的重写、可能有新的属性或者方法。同时考虑有多个子类存在。

    转型的过程是被动的,父类要调用子类的方法,直接调会报错,需要强制转换为子类后再去由子类调用。原因是,多态方法调用时,会先检查父类中是否有该方法,如果没有程序编译都会失败,更不提运行了。采用的方式就是,强转为子类,子类自己调自己。

    思考

    一般的父类怎么会调子类呢?肯定是作了多态、设计模式的处理等情况才会出现这种情况。另外父类转子类,转哪个子类,是要明确地,转错了子类,怎么调用对应子类中独有的方法呢?肯定不行的。所以需要一个判断是否是某个想要的子类,或者实例的方式: instanceof 出场了。

    17 instanceof

    当前类的属于自己, 子类属于父类,比如猫属于动物,但父类不属于子类,比如动物不属于猫。

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    18 接口

    1.接口必须是有抽象方法

    2.JDK1.8后增加了默认方法和静态方法,可以有多个默认方法和静态方法。

    3.默认方法需要用实现类调用,静态方法必须是接口名来调用。

    4.一个类可以实现多个接口,java中类单继承多实现。接口因为不能实现,是可以多继承的。

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    19接口和抽象类的区别

    uploading.4e448015.gif

    正在上传…重新上传取消

    20,数组的浅拷贝和深拷贝

    浅拷贝

    拷贝的是执行对中对象的指针地址

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    深拷贝:

    拷贝的是对中对象的内容,当然指向堆中对象的地址自然也不相同。

    uploading.4e448015.gif

    正在上传…重新上传取消

    uploading.4e448015.gif

    正在上传…重新上传取消

    21 包装类和基本上数据类型转换

  • 相关阅读:
    从谷歌CRE谈起,运维如何培养服务意识?
    实践分享!GitLab CI/CD 快速入门
    RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示
    基于JavaWeb实现ATM机系统
    mybatis foreach 居然是拼接长语句,而不是用PreparedStatement
    【pen200-lab】10.11.1.217
    8类放球问题
    [Python进阶] Pyinstaller打包介绍及安装
    DAQ进行准确的测量,为决策提供更可靠的依据
    Python3学习笔记——第一章:基础入门
  • 原文地址:https://blog.csdn.net/CUITAO2305532402/article/details/128690743