Java基础笔记总结

一、static关键字

1.Static是在类中最先被(JVM机制)加载
2.作用:
(1)创建独立于具体对象的域变量或方法
(2)可以不创建对象,也能直接使用属性和调用方法定义的顺序
(3)形成静态代码块用来优化程序性能
3.加载顺序
(1)类在初次加载时,会按照static块来执行,且只会执行一次
4.Static独特的作用,被static修饰的变量或者方法独立于该类的任何对象,被类的实例对象共享,内存中只有一个副本
5.注
(1)在类的第一次使用时加载并初始化,后面科根据需要赋值
(2)Static不允许用来修饰局部变量
6.与普通变量的区别
(1)Static:static成员变量的初始化顺序按照定义的顺序进行初始化
(2)非static是对象所拥有的的,子创建对象的时候被初始化,存在多个副本,各个对象拥有的副本各不影响
7.静态内部类
(1)不能使用任何外围类的非static成员变量和方法
(2)当前类加载的时候,静态内部类没有被加载进内存。只有调用静态内部类才能出发静态内部类才会加载和初始化,请JVM机制会确保只能实例化一次,JVM提供了线程安全的支持
8.静态导包—import static
(1)可导入某个类中的指定静态资源
(2)可不使用类名调用类中的静态变量就直接使用(但是开发不建议这样做)
9.Static与final


二、抽象类和接口

1、抽象类(abstract)

  1. 抽象类和类一样拥有构造方法、static静态修饰成分
    1、抽象类可无抽象方法
    2、抽象类的构造方法不能直接用来创建对象实例
    3、抽象类不能用final、private修饰,访问类型为public、protected
    4、外部抽象类不能用static修饰,但是内部抽象类可以使用static声明,如下
    abstract class A{ static abstract class B{ public abstract void decise(); } }
  2. 抽象方法
    1、抽象方法没有方法体
    2、抽象方法必须用abstract关键字修饰
    3、抽象方法必须为public和protected,缺省默认public
    4、抽象方法的类一定是抽象类,普通方法也可在抽象类
  3. 意义
    1、抽象类定义就是为了继承
    2、抽象类的构造方法不能直接被实例化,要创建对象涉及向上转型,作用是为了被子类调用
    3、普通类继承抽象类一定要实现抽象父类的抽象方法,如果没有实现,需要子类也定义为抽象类

2、接口(interface)

  1. 基本概念
    1、接口中的方法默认为public abstract类型

    1. 1但是也有特例,如下
    2. interface A{default void b(){System.out.println("default方法");}}

    2、接口中的成员变量类型默认且只能为public static final(可略)变量类型
    3、接口中不能有构造方法
    4、接口中的方法被隐式的指定且只能为public abstract方法
    5、接口可以实现多继承,用逗号隔开即可

3、抽象类和接口的区别

  1. 设计思想
    1、抽象类添加新的发,可以直接在抽象类中添加具体的实现(类似普通方法),子类可不变更
    2、接口进行了变更,所有实现这个接口的类都需要相应的改动

  2. 设计角度
    1、抽象类是对整个类进行抽象,包括属性、行为
    2、接口是对行为的抽象,是对局部行为的抽象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章