美文网首页
java基础知识理解

java基础知识理解

作者: dong_hui | 来源:发表于2017-03-30 11:20 被阅读43次

1.static的使用:

  • 在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法
Paste_Image.png
  • static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

  • static代码块:static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。

2. abstract的理解

  • abstract(抽象)可以修饰类、方法

  • 如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。 abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。 abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。 final和abstract永远不会同时出现。

  • 当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。

3.Overload 和 Override

  • 重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。

  • 方法重载规则

    被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
    被重载的方法可以改变返回类型;
    被重载的方法可以改变访问修饰符;
    被重载的方法可以声明新的或更广的检查异常;
    方法能够在同一个类中或者在一个子类中被重载。
    无法以返回值类型作为重载函数的区分标准。

  • 方法的重写规则

    参数列表必须完全与被重写方法的相同;
    返回类型必须完全与被重写方法的返回类型相同;
    访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
    父类的成员方法只能被它的子类重写。
    声明为final的方法不能被重写。
    声明为static的方法不能被重写,但是能够被再次声明。
    子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
    子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
    重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
    构造方法不能被重写。
    如果不能继承一个方法,则不能重写这个方法。

4.访问控制符 public、protected、�default、private区别

Paste_Image.png

5.基本数据类型

Paste_Image.png

注:ASCII码中,一个汉字占两个字节,一个英文字母占一个字节。

6.java中abstract,interface,final,static的总结

  • 抽象类:abstract:
    只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类;
    抽象类中可以有具体的实现方法;
    抽象类中可以没有抽象方法;
    抽象类中的抽象方法必须被它的子类实现,如果子类没有实现,则该子类继续为抽象类
    抽象类不能被实例化,但可以由抽象父类指向的子类实例来调用抽象父类中的具体实现方法;通常作为一种默认行为;
    要使用抽象类中的方法,必须有一个子类继承于这个抽象类,并实现抽象类中的抽象方法,通过子类的实例去调用;

  • 接口:interface:
    接口中可以有成员变量,且接口中的成员变量必须定义初始化;
    接口中的成员方法只能是方法原型,不能有方法主体;
    接口的成员变量和成员方法只能public(或缺省不写),效果一样,都是public
    实现接口的类必须全部实现接口中的方法(父类的实现也算,一般有通过基类实现接口中个异性不大的方法来做为适配器的做法)
    接口的多重继承:extends

  • 关键字:final
    可用于修饰:成员变量,非抽象类(不能与abstract同时出现),非抽象的成员方法,以及方法参数
    final方法:不能被子类的方法重写,但可以被继承;
    final类:表示该类不能被继承,没有子类;final类中的方法也无法被继承.
    final变量:表示常量,只能赋值一次,赋值后不能被修改.final变量必须定义初始化;
    final不能用于修饰构造方法;
    final参数:只能使用该参数,不能修改该参数的值;

  • 关键字:static:
    可以修饰成员变量和成员方法,但不能修饰类以及构造方法;
    被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享
    static变量和static方法一般是通过类名直接访问,但也可以通过类的实例来访问(不推荐这种访问方式)
    static变量和static方法同样适应java访问修饰符.用public修饰的static变量和static方法,在任何地方都可以通过类名直接来访问,但用private修饰的static变量和static方法,只能在声明的本类方法及静态块中访问,但不能用this访问,因为this属于非静态变量.

  • static和final同时使用:
    static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
    对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
    对于方法,表示不可覆盖,并且可以通过类名直接访问。

  • int 和 integer 的区别:
    int是基本的数据类型;
    Integer是int的封装类;
    int和Integer都可以表示某一个数值;
    int和Integer不能够互用,因为他们两种不同的数据类型;

7.java中的容器

Paste_Image.png

相关文章

  • Java锁---偏向锁、轻量级锁、自旋锁、重量级锁

    理解锁的基础知识 如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 公平锁...

  • Docker

    # Docker java进阶/docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器...

  • java基础知识理解

    1.static的使用: 在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前...

  • 一文读懂 kotlin 的协变与逆变 -- 从 Java 说起

    前言 为了更好地理解 kotlin 和 Java 中的协变与逆变,先看一些基础知识。 普通赋值 在 Java 中,...

  • Android 知识梳理目录 - 好吧,这是一个很"干

    一、Java 知识梳理 Java&Android 基础知识梳理(1) - 注解Java&Android 基础知识梳...

  • java基础知识

    title: java基础知识tags: [java基础知识] 位运算符 java种的运算符有 “&”,“|”,“...

  • 一点Java学习的相关资源

    Java学习书籍 《Java 核心技术:卷1 基础知识》 非常适合初学者看,内容讲的也挺不错的。 《深入理解 Ja...

  • Java知识复习

    本文是自己在复习Java的时候做的一些随笔,有理解不对的地方欢迎各位大神指正... 一、基础知识1. Java概述...

  • Java初学者要掌握的基础知识

    这是一次对Java基础知识的总结,Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某...

  • Day1(java基础知识)

    Day01(java基础知识)学习目标【学习目标】理解、了解、应用、记忆通过今天的学习,参训学员能够:(解释的时候...

网友评论

      本文标题:java基础知识理解

      本文链接:https://www.haomeiwen.com/subject/dkeuottx.html