面试题笔记整理

请你介绍一下,数据库的三个范式?

1NF:原子性 字段不可再分,否则就不是关系数据库;

2NF:有主键,非主键字段依赖全部主键;

3NF:每列都与主键有直接关系,不存在传递依赖;比如非主键B,C,主键A存在这样关系,C->B->A,这样就有传递依赖,不符合3NF

请问object的hash该怎么设计

  • 满足对应的hashcode方法和equals方法的关系,即两个对象通过equals方法返回true,那么通过hashcode方法返回的整型值相等,如果返回false,那么返回的hashcode方法的整型值可能相等;如果两个对象通过hashcode返回相同的值,那么他们的equals操作不一定返回true,如果返回不同的值,那么他们的equals操作一定返回false。
  • 在映射表中,hash算法不需要太多计算量的情况下,生成的位置尽可能均匀,尽可能少的发生hash碰撞

执行以下程序后的输出结果是()

链接:https://www.nowcoder.com/questionTerminal/88ff9e9553334637bb35e78871f5b640
来源:牛客网

public class Test {
    public static void main(String[] args) {
        StringBuffer a = new StringBuffer("A"); 
        StringBuffer b = new StringBuffer("B"); 
        operator(a, b); 
        System.out.println(a + "," + b); 
    } 
    public static void operator(StringBuffer x, StringBuffer y) { 
        x.append(y); y = x; 
    }
}
  1. A,A
  2. A,B
  3. B,B
  4. AB,B

StringBuffer a = newStringBuffer("A"); 

StringBuffer b = newStringBuffer("B"); 

此时内存中的状态如下图所示:

publicstaticvoidoperator(StringBuffer x, StringBuffer y) { 

    x.append(y); y = x; 

}

进入如下方法后,内存中的状态为:

 x.append(y);

这条语句执行后,内存的状态为:

y = x; 

这条语句执行后,内存的状态为:

当operator方法执行完毕后内存中的状态为:因为方法执行完毕,局部变量消除。

有内存中的状态,可以知道最后的结果。

下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?

A.private

B.无修饰符

C.public

D.protected

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章