java基础知识点

来源:互联网 发布:文员的办公软件 编辑:程序博客网 时间:2024/05/21 03:28

抽象 封装 继承 多态

public  是众生平等 

protect 肥水不流外人田 

default 大人可以小孩不行 

private 生是我家人,死我家鬼.


enum

    • 表示常量
    • 用于switch
    • 添加更多方法
    • 覆盖Object方法
    • 实现接口

在使用 Enum 时候有几个地方需要注意:

    • 枚举集合EnumSetEnumMapEnumSet保证集合中的元素不重复;EnumMap中的keyenum类型,而value则可以是任意类型。
    • enum 类型不支持 public protected 修饰符的构造方法,因此构造函数一定要是 private friendly 的。也正因为如此,所以枚举对象是无法在程序中通过直接调用其构造方法来初始化的。
    • 定义 enum 类型时候,如果是简单类型,那么最后一个枚举值后不用跟任何一个符号;但如果有定制方法,那么最后一个枚举值与后面代码要用分号';'隔开,不能用逗号或空格。
    • 由于 enum 类型的值实际上是通过运行期构造出对象来表示的,所以在 cluster环境下,每个虚拟机都会构造出一个同义的枚举对象。
    • 因而在做比较操作时候就需要注意,如果直接通过使用等号 ( ‘ == ’ )操作符,这些看似一样的枚举值一定不相等,因为这不是同一个对象实例。


java实例初始化顺序

静态变量  静态代码块    变量  初始化块构造器

如果继承父类呢

父类---静态变量  静态代码块    子类---静态变量  静态代码块    父类---变量  初始化块构造器   子类---变量  初始化块构造器


浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所有非引用成员变量值,还要为引用类型的成员变量创建新的实例,并且初始化为形式参数实例值。这个方式称为深拷贝


String   数组


异常   运行时异常 检查型异常trycatch不要太大 


深入理解Java的方法调用
(值传递和引用传递)

从JVM出发来看方法的调用

      栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。

      栈帧包括了局部变量表、方法返回地址等信息。其中局部变量表是一组变量值空间,用于存放方法参数和方法内部定义的局部变量。

参数的引用传递不是单纯的将对象的引用传递给一个方法,而是将对象引用的地址传递给局部变量表里的参数引用,当在方法内部改变引用的地址时,只会影响方法内部的引用,而不会影响到方法外部的变量。但如果改变的是引用地址的值,方法内外的引用都会受影响。















0 0
原创粉丝点击