Description: this article is talking about some basic java knowledge
八大基本数据类型
- byte
- char
- short
- int:默认值为0
- long
- float
- double
- boolean
Integer
是int的包装类,默认值为null,表示的是对象,用一个引用指向这个对象
super
是一个引用变量,用于引用直接父类对象,每当创建子类的实例时,父类的实例被隐式创建,由super关键字引用变量引用。
用法:
- super 可以用来引用直接父类的实例变量
- super可以用来调用直接父类方法
- super() 可以用于调用直接父类构造函数
1.super可以访问父类中public、default、protected修饰的成员变量,不能访问private修饰的成员变量。格式为super.成员名称。
2.super可以访问父类中public、default、protected修饰的实例方法,不能访问private修饰的实例方法。格式为super.实例方法。
3.super可以访问父类中public、default、protected修饰的构造方法,不能访问private修饰的构造方法,格式为super(参数).
Static
被static声明的为静态方法,可以直接通过类名调用而不需要通过对象调用。
实例方法:
一个方法如果不加static方法,那么这个方法是实例方法。意思就是它属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响。
类方法:
也成静态方法,在方法面前加static关键字,就代表这个方法属于这个类本身,不属于他的任何实例,意思就是说,这个方法可以不通过实例调用,并且所有的实例都共享这一个方法,对方法的调用各个实例相互可见。
.Java文件定义多个类
- public权限类只能有一个(也可以一个都没有,但最多只有一个)
- 这个.java文件名只能是public权限的类的类名
- 倘若这个文件中没有public类,则它的.java文件的名字是随便的一个类名
- 当用javac命令生成编译这个.java文件的时候,则会针对每一个类生成一个.class文件
String的比较
== 比较的是引用,即地址。
== 对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时候,==操作返回true,
==两边如果是基本类型,则比较数值是否相等
equal比较的是值
值传递和引用传递
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是对象本身。所以对引用对象进行操作会同时改变原对象
一般认为,java内的传递都是值传递
数据类型的转换
从低到高的转换通常可以保持其值不变,从高到低的转换可能会有数据的舍入,从而损失精度。
访问修饰符
解决哈希冲突
- 开放定址法:当冲突发生时,使用某种探查技术在散列表中行程一个探查序列。沿此序列逐个单元地查找,直到找到给定的关键字,或者碰到一个开放的地址为止。
- 链地址法:将所有关键字为同义词的结点链接到同一个单链表中。若给定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数组。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。
类方法
类方法是属于整个类的,而实例方法是属于类的某个对象的。
由于类方法是属于整个类的,并不属于类的哪个对象,所以类方法体中不能有与类的对象有关的内容。即类方法体有如下限制:
- 类方法中不能引用对象变量
- 类方法中不能调用类的对象方法
- 在类方法中不嗯那个使用super,this关键字
- 类方法不能被覆盖
如果违反以上规则则会导致编译错误,
与类方法相比,对象方法几乎没有什么限制
- 对象方法可以引用对象变量,也可以引用类变量
- 对象方法中可以调用类方法
- 对象方法可以使用super、this关键字
1 | class A |
Reference
-[1] Java Super 关键字
-[2] Java类方法和实例方法的区别