Java基础每日10题——第一天

1.面向对象都有哪些特性以及对这些特性的理解

  • 继承
  • 多态性
  • 封装
  • 抽象

2.访问权限修饰符public、private、protected、default的区别

  • public对所有都可用
  • private只能对本类中使用
  • protected只能在类、子类、包中使用
  • default只能在本包内被访问,子类不可访问

3.Java有没有goto语句

没有

4.&和&&的区别

对于&:无论&左边是否为false,他都会继续检验右边的boolean值。
对于&&:只要检测到左边Boolean值为false时,就会直接判断结果,不会在检验右边的值(因为”与”有一个false最后结果就是false了)
两者执行的结果是一样的

5.在Java中,如何跳出当前的多重嵌套循环

1.标号方式
2.break跳出当前循环,通过内部跳出条件控制跳出外部循环
break是跳出最接近的那一层循环,而不是全部跳出
3.抛出异常也可以跳出多重循环
这里是直接跳出应用
4.return语句

6.两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句 话对不对?

不对!
hashCode 的常规协定是:
1.在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
2.如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
3.如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。

7.重载的方法不能根据返回类型进行区分,因为编译器无法得出你要调用的是哪个方法,如下情况:

float max(int a,int b)
int max(int a,int b)

8.抽象类和接口有什么异同?

1.抽象类是“声明方法的存在而不去实现它”的类;而接口中的所有方法都是抽象的。
2.接口可以多继承,抽象类不行
3.接口定义方法而不可以实现方法;抽象类可以实现部分方法。
4.接口中基本数据类型为static,而抽象类不是。
5.当你关注一个事物的本质时,用抽象类;当你关注一个操作的时候,用接口。

9.静态变量和实例变量的区别

静态变量属于类。实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用

public class Test11 {  
    public static int staticVar = 0;  
    public int instanceVar = 0;  

    public Test11() {  
        staticVar++;  
        instanceVar++;  
        System.out.println("staticVar=" + staticVar + ",instanceVar="  
                + instanceVar);  
    }  

    public static void main(String[] args) {  
        Test11 test = new Test11();  
        Test11 test1 = new Test11();  
        Test11 test2 = new Test11();  
    }  
}  

输出:

staticVar=1,instanceVar=1  
staticVar=2,instanceVar=1  
staticVar=3,instanceVar=1  

10.==和equals的区别

最基本的理解:==比较的是两个对象或实例是否指向同一块内存空间,而equals是比较两个变量或者实例指向的内存空间的值是否相等
深入理解:看源码,到时再来回顾

猜你喜欢

转载自blog.csdn.net/tryandfight/article/details/79619015
今日推荐