资讯专栏INFORMATION COLUMN

【全栈之路】JAVA基础课程一_静态变量和接口(20190610v1.0)

appetizerio / 1544人阅读

摘要:标识符与关键字标识符指类名包括接口枚举抽象类方法名变量常量名包名等可以自定义的字符组合。如果基本功能在不断改变,那么就需要使用抽象类。抽象类可以实现接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

欢迎进入JAVA基础课程

博客地址:https://blog.csdn.net/houjiyu...
本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所结,不管是刚接触JAVA开发菜鸟还是业界资深人士,都希望对广大同行带来一些帮助。若有问题请及时留言或加QQ:243042162。

寄语:
海纳百川,有容乃大;壁立千仞,无欲则刚。
JDK与JRE

JDK(java development kit ,java开发工具包,提供java开发环境和运行环境)

JRE(java runtime environment,java运行环境)

JVM(java virtual machine,java虚拟机,整个java实现跨平台的最核心的部分)

我们在安装java环境时,经常会有疑问,jdk里的jre与外面jre有什么区别?

jdk-jre(专用jre)与公共jre的主要区别在于jdk-jre多了一个server的vm执行选项。
简言之:如果电脑运行一个java程序的时候,会自动调用client vm;但是如果开发java程序时使用的就是server vm,注意:平时所说的“java自动更新”根本不是所安装的JDK版本的更新,它指的是这个公用JRE运行时环境的更新,这个更新为的是让你的计算机能够使用最新版本正常的运行一些网站或则Web应用等等当中的java程序。
JAVA标识符与关键字

1.标识符: 指类名(包括接口、枚举、抽象类)、方法名、变量、常量名、包名等可以自定义的字符组合。

1)标识符不能是关键字或true、false、null。
2)标识符可以包含字母、数字0-9下划线(_)或美元符号($)。
3)标识符的第一个字符必须是字母、下划线(_)或美元符号($)。
4)标识符是区别大小写的,并且没有规定最大长度。

2.关键字

访问控制 private protected public
类,方法和变量修饰符 abstract class extends final implements interface native
new static strictfp synchronized transient volatile
程序控制 break continue return do while if else
for instanceof switch case default
错误处理 try catch throw throws finally
包相关 import package
基本类型 boolean byte char double float int long
short null true false
变量引用 super this void
保留字 goto const
静态变量static
1.用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享;
2.用来修饰成员方法,将其变为类方法,可以直接使用“类名.方法名”的方式调用,常用于工具类;
3.静态块用法,将多个类成员放在一起初始化,使得程序更加规整,其中理解对象的初始化过程非常关键;
4.静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。

代码示例

class TestSon {

    public TestSon(String msg) {
        System.out.println(msg);
    }
}
public class StaticTest {

    TestSon son1 = new TestSon("son1成员变量初始化");
    static TestSon son2;

    static {
        son2 = new TestSon("static成员son2成员变量初始化");
        son4 = new TestSon("static成员son4成员变量初始化");
    }

    public StaticTest(String msg) {
        System.out.println(msg);
    }

    TestSon son3 = new TestSon("son3成员变量初始化");


    static TestSon son4;

    public static void funStatic() {
        System.out.println("static修饰的funStatic方法");
    }



    public static void main(String[] args) {
        StaticTest.funStatic();
        System.out.println("****************");
        StaticTest p1 = new StaticTest("p1初始化");
    }
}

输出

static成员son2成员变量初始化
static成员son4成员变量初始化
static修饰的funStatic方法
****************
son1成员变量初始化
son3成员变量初始化
p1初始化
重写与重载
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。
重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。
接口与抽象类

如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。

如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。

如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

参数 抽象类 接口
默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实现
实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现
构造器 抽象类可以有构造器 接口不能有构造器
与正常Java类的区别 除了你不能实例化抽象类之外,它和普通Java类没有任何区别 接口是完全不同的类型
访问修饰符 抽象方法可以有public、protected和default这些修饰符 接口方法默认修饰符是public。你不可以使用其它修饰符。
main方法 抽象方法可以有main方法并且我们可以运行它 接口没有main方法,因此我们不能运行它。
多继承 抽象方法可以继承一个类和实现多个接口 接口只可以继承一个或多个其它接口
速度 它比接口速度要快 接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。
添加新方法 如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。 如果你往接口中添加方法,那么你必须改变实现该接口的类。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74921.html

相关文章

  • 全栈之路JAVA基础课程_集合(20190615v1.0

    摘要:欢迎进入基础课程博客地址本系列文章将主要针对一些基础知识点进行讲解,为平时归纳所总结,不管是刚接触开发菜鸟还是业界资深人士,都希望对广大同行带来一些帮助。是同步的,而不是。因此,更适合于单线程环境,而适合于多线程环境。 欢迎进入JAVA基础课程 博客地址:https://blog.csdn.net/houjiyu...本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所总...

    dkzwm 评论0 收藏0
  • 全栈之路JAVA基础课程_集合(20190615v1.0

    摘要:欢迎进入基础课程博客地址本系列文章将主要针对一些基础知识点进行讲解,为平时归纳所总结,不管是刚接触开发菜鸟还是业界资深人士,都希望对广大同行带来一些帮助。是同步的,而不是。因此,更适合于单线程环境,而适合于多线程环境。 欢迎进入JAVA基础课程 博客地址:https://blog.csdn.net/houjiyu...本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所总...

    tain335 评论0 收藏0
  • 全栈之路JAVA基础课程_数据类型垃圾回收机制(20190611v1.0

    摘要:,用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间。然而调用附带一个免责声明,无法保证对垃圾收集器的调用。所以并不能说是完美主动进行了垃圾回收。 欢迎进入JAVA基础课程 博客地址:https://blog.csdn.net/houjiyu...本系列文章将主要针对JAVA一些基础知识点进行讲解,为平时归纳所总结,不管是刚接触JAVA开发菜鸟还是业界资深人士,都希...

    big_cat 评论0 收藏0
  • 全栈之路JAVA基础课程_多线程死锁(20190614v1.0

    摘要:一个进程可以有多个线程。线程又叫做轻量级进程。这样两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状态。不剥夺条件进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放只能是主动释放。 欢迎进入JAVA基础课程 博客地址:https://blog.csdn.net/houjiyu...本系列文章将主要针对JAVA一些基础知识点进...

    Allen 评论0 收藏0
  • 全栈之路JAVA基础课程_多线程死锁(20190614v1.0

    摘要:一个进程可以有多个线程。线程又叫做轻量级进程。这样两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状态。不剥夺条件进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放只能是主动释放。 欢迎进入JAVA基础课程 博客地址:https://blog.csdn.net/houjiyu...本系列文章将主要针对JAVA一些基础知识点进...

    warnerwu 评论0 收藏0

发表评论

0条评论

appetizerio

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<