zoukankan      html  css  js  c++  java
  • Java

    1、构造器

    无参构造器(默认构造器)

    带参构造器

    ****************************************************************************************************************

    一、Java 多态的实现

    靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。

    继承、extends

    重载、overload;表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。如 类的构造方法。

           overload是指根据不同的参数样式(类型或者个数)来区分名称相同的方法,与返回类型无关。

           1、在使用重载时,只能通过不同参数样式实现:不同的参数类型、不同的参数个数、不同的参数数序(前提是同个方法内的几个参数类型不一样);

           2、不能通过访问权限、返回类型、抛出的异常进行重载;

           3、方法的异常类型和数目不会对重载造成影响;

           4、对于继承来说,如果某一方法在父类中访问权限是private的,那么就不能在子类中进行重载,如果定义的话,也只是定义一个新的方法。

           5、构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload

    覆盖:override,重写;表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中          的定义方法。相当于将父类的方法覆盖了。子类覆盖父类的方法,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常。子类方            法的访问权限只能比父类的更大,不能更小。如果父类方法是private类型,那么,子类不存在覆盖的限制,相当于子类中增加了一个全新的方          法。

            1、覆盖的方法的标识必须要和被覆盖的方法的标志完全匹配;

            2、覆盖的方法的返回值必须要和被覆盖的方法的返回值一致;

            3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;

        4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

    二、接口与继承

    三、接口与抽象类

    抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法;

    接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方法。

    含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

    接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

    1.抽象类可以有构造方法,接口中不能有构造方法。

    2.抽象类中可以有普通成员变量,接口中没有普通成员变量
    3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

    4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然 eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

    5. 抽象类中可以包含静态方法,接口中不能包含静态方法

    6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

    7. 一个类可以实现多个接口,但只能继承一个抽象类。

    四、面向对象的特征:

    1、封装

    封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。

    在面向对象的编程语言中,对象是封装的最基本单位。

    面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性

    2、抽象: 抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。

    3、继承: 在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

    4、多态: 多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。

    五、java 运行:

    编辑程序(文本编辑器)-> 源程序(.java)->编译程序(javac)->字节码(.class)->解释程序(java)->运行结果

    六、JVM (Java Virtual Machine)

    指令集(CPU)

    寄存器集

    类文件的格式

    堆栈

    垃圾收集堆

    内存区域

    七、垃圾回收机制

    1、自动检测并释放不再需要的内存空间;

    2、由系统自动完成(而不是程序完成)

    3、Java语言提供了一个系统级线程跟踪内存的分配情况。

  • 相关阅读:
    mongodb压缩——snappy、zlib块压缩,btree索引前缀压缩
    python cassandra 创建space table并写入和查询数据
    机器学习算法选择——特征提取
    机器学习的算法选择
    公积金联名卡——提取公积金用,用身份证即可办理
    Facebook图片存储系统Haystack——存小文件,本质上是将多个小文件合并为一个大文件来降低io次数,meta data里存偏移量
    HDFS namenode 高可用(HA)搭建指南 QJM方式 ——本质是多个namenode选举master,用paxos实现一致性
    javascript语言精粹:继承
    转:Javascript的10个设计缺陷
    转:CSS选择器笔记
  • 原文地址:https://www.cnblogs.com/bonnie-lbn/p/4076184.html
Copyright © 2011-2022 走看看