面试题笔记整理

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

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"); 

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

面试题笔记整理_第1张图片

publicstaticvoidoperator(StringBuffer x, StringBuffer y) { 

    x.append(y); y = x; 

}

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

面试题笔记整理_第2张图片

 x.append(y);

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

面试题笔记整理_第3张图片

y = x; 

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

面试题笔记整理_第4张图片

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

面试题笔记整理_第5张图片

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

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

A.private

B.无修饰符

C.public

D.protected

在Java中,以下关于方法重载和方法重写描述正确的是?

A.方法重载和方法的重写实现的功能相同
B.方法重载出现在父子关系中,方法重写是在同一类中
C.方法重载的返回值类型必须一致,参数项必须不同
D.方法重写的返回值类型必须相同或相容。(或是其子类)
public interface T {
    void d();
}

public class T1 implements T {
    //重写
    @Override
    public void d() {
    }

    //重载
    public void o1(int i){}
    public int o1(){}
}

所以B说反了,C返回值可以不一样。

下面代码的运行结果是()

public static void main(String[] args){
    String s;
    System.out.println("s="+s);
}

A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常

成员变量有初始值,而局部变量没有初始值得。本体中的s定义在方法中所以为局部变量-没有初始值。变量没有初始值就使用了,编译通不过

你可能感兴趣的:(ĴAVA基础)