• 一些Java相关的知识点


      最近需要研究服务端的逻辑,公司服务端是使用Java开发的,然后花了一下午恶补+复习了一下Java语言相关知识点,以下是一些简单的知识整理,仅供参考!!

    一、static关键字

    static可以修饰属性和方法

    1.1 static属性

      传统属性所具备的特征:保存在堆内存中,且每个对象独享属性 描述共享属性,只需在属性前添加static关键字即可 static属性又称为类属性,保存在全局数据区的内存之中,所有对象都可以进行该数据区的访问

    结论:

    1. 访问static属性(类属性)应使用类名称.属性名
    2. 所有的非static属性(实例变量)必须在对象实例化后使用,而static属性(类属性)不受对象实例化控制

    1.2 static方法

    使用static定义的方法,直接通过类名称访问

    关于static方法有以下两点说明:

    1. 所有的static方法不允许调用非static定义的属性或方法
    2. 所有的非static方法允许访问static方法或属性

    二、代码块、构造方法、静态块

    1、执行顺序:静态块>代码块>构造方法
    2、无论产生多少实例化对象,静态块都只执行一次
    3、有继承时,实例化一个子类,静态块、代码块、构造方法都需要执行,先父后子

    三、继承

    1、继承的语法以及继承的目的(扩展已有类的功能,使代码重用)
    2、子类对象的实例化流程:不管如何操作,一定要先实例化父类对象。
    3、不允许多重继承,只允许多层继承。

    四、final关键字

    1、使用final定义的类不能有子类(String类便是使用final定义)
    2、使用final定义的方法不能被子类所覆写
    3、使用final定义的变量就成为了常量,常量必须在声明时赋值,并且不能够被修改

    五、抽象类

    所有抽象方法要求使用abstract关键字来定义,并且抽象方法所在的类也一定要使用abstract关键字来定义,表示抽象类

    5.1 抽象类的使用原则:

    1. 所有的抽象类必须有子类。
    2. 抽象类的子类必须覆写抽象类的所有抽象方法(子类不是抽象类)【方法覆写一定要考虑权限问题,权限尽量都用public】
    3. 抽象类的对象可以通过对象多态性利用子类为其实例化
    4. private与abstract不能同时使用。

    5.2 抽象类相关规定

    1. 抽象类只是比普通类多了一些抽象方法而已。因此在抽象类中也允许提供构造方法,并且子类也照样遵循对象实例化流程。实例化子类时一定先调用父类构造方法
    2. 抽象类中允许不定义任何的抽象方法,但是此时抽象类依然无法直接创建实例化对象
    3. 抽象类一定不能使用final声明,因为使用final声明的类不允许有子类;而抽象类必须有子类;相应的,抽象方法也不能使用private定义,因为抽象方法必须要被覆写
    4. 抽象类也分为内部抽象类和外部抽象类。内部抽象类中也可以使用static定义来描述外部抽象类

    六、接口的定义与使用

    6.1 接口定义

    接口就是一个抽象方法和全局常量的集合,在Java中接口使用interface关键字定义

    6.2 接口使用限制

    接口中只允许public权限。(不管是属性还是方法,其权限都是public)

    6.3 子类使用接口

    1. 子类如果要想使用接口,那么就必须使用implements关键字来实现接口,同时,一个子类可以实现多个接口
    2. 当一个子类即需要实现接口又需要继承抽象类时,请先使用extends继承一个抽象类,而后使用implements实现多个接口
    3. 一个抽象类可以使用implements实现多个接口,但是接口不能继承抽象类
    4. 一个接口可以使用extends继承多个父接口

    七、类使用class和public class的区别

    1、public class: 文件名称必须与类名称保持一致,如果希望一个类被其他包访问,则必须定义为public class
    2、class: 文件名称可以与类名称不一致,在一个*.java中可以定义多个class,但是这个类不允许被其他包所访问

    小知识:@Accessors(chain=true) 来自与Lombok里的,具体的作用是开启链式编程

  • 相关阅读:
    Linux下七种文件类型、文件属性及其查看方法
    Vue-----循环渲染
    SpringBoot SSMP整合案例
    JQuery、JSON、AJAX、XML、IO流、多线程、反射核心知识点详解
    基于Java+SpringBoot+Vue前后端分离青年公寓服务平台设计和实现
    智能机器人代替人工真的有那么强大吗?
    android学习笔记(三)
    ORB-SLAM2 ---- ORBextractor::ComputePyramid函数
    【数据结构】冒泡排序 (码源实现)
    C++学习之路-智能指针
  • 原文地址:https://blog.csdn.net/adorable_/article/details/126726112