您的位置:首页 > 编程语言 > Java开发

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

2018-03-19 22:47 447 查看

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 instanceV
9d20
ar = 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是比较两个变量或者实例指向的内存空间的值是否相等

深入理解:看源码,到时再来回顾
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: