1.对象相同则hash值一定相同,反之则不可。equals()与hashcode()
2.静态内部类和非静态内部类
静态内部类不需要指向外部类的引用 ,非静态内部类需要持有对外部类的引用。
非静态内部类能够访问外部类的静态和非静态成员。静态内部类不能访问外部类的非静态成员,只能访问外部类的静态成员。
public class Enclosingone {
//非静态内部类
//public class Insideone{};
//静态内部类
public static class Insideone{};
}
//暂时写在一个类中方便查看,实际一个类需要一个java文件
public class test{
public static void main(String[] args) {
//非静态内部类对象需要外部类的引用
//Enclosingone.Insideone obj1 = new Enclosingone().new Insideone();
//构造静态内部类对象
Enclosingone.Insideone obj2 = new Enclosingone.Insideone();
}
}
3.java空指针异常
这里说的"java指针"指的就是java的引用。空指针就是空引用,java空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常。
可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些成员变量和方法。
对于空指针来说,它不指向任何对象,也就没有所谓的成员变量和方法,这个时候用它去调用某些属性和方法,当然会出现空指针异常。
4.java中为什么没有无符号左移
在java中没有无符号整数
左移在所有语言中只有一种,右移分为逻辑右移和算数右移。
因为右移时会在左侧补充,同时符号位也只在左侧。所以逻辑右移高位补0.算数右移高位补符号位,右侧统统丢弃。左移低位补0.
java中设计移位运算符为<<左移运算,>>算数右移,>>>逻辑右移。没有<<<符号,作用与<<重复。
javaQ&A
最新推荐文章于 2024-07-13 13:55:40 发布