Java---牛客网刷题-&-零散知识点汇总(ing)

42 阅读4分钟

#线程



#IO



#权限

  • main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的()。



#继承、重载

  • C++可以多重继承,但是Java中对于类而言,只有单继承,接口可以多继承。
  • Java不能重载运算符,C++可以。



#接口与抽象类的区别

1 .【实现】 抽象类要被子类继承,接口要被类实现;
2 .【方法】 接口只能做方法声明, 声明的方法默认为公共抽象的; 抽象类中可以作方法声明, 也可以做具体的方法实现。
3 .【变量】 接口里定义的变量只能是公共的静态的不可变常量, 抽象类中的变量还可以是普通变量。 【同:两者都能有静态抽象内部类!!!】 【不过接口可以通过定义静态抽象内部类, 从而间接取用抽象类的所有特性,如实现具体的方法等; demo 如AIDL生成的接口中的 Stub类
4 .抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。 5 .接口是设计的结果,抽象类是重构的结果。 6 .抽象类主要用来抽象类别【抽象属性+行为】, 接口主要用来抽象功能【抽象行为】。



#题目

  • 地址 A.vector是线程安全的ArrayList,在内存中占用连续的空间。 初始时有一个初始大小, 当数据条数大于这个初始大小后会重写分配一个更大的连续空间。 如果Vector定义为保存Object则可以存放任意类型, 无需事先知道!!!
    B.选项说的情况就是我们自定义异常的情况, 我们可以用违例(Exception)来抛出一些并非错误的消息, 可以,并非错误的消息。 比如我自定义一个异常,若一个变量大于10就抛出一个异常, 这样就对应了B选项说的情况, 我用抛出异常说明这个变量大于10, 而不是用一个函数体(函数体内判断是否大于10,然后返回true或false)判断, 因为函数调用入栈出栈在寄存器之下速度最快,且占的空间少, 而自定义异常是存在中,肯定异常内存开销大
    C选项是错误的,因为接口中不能声明变量,只有常量! 接口中只有常量定义,没有变量声明。 接口中方法默认是abstract public, 所以在接口只写函数声明是符合语法规则。 但是变量默认是用public final static 修饰的, 意思它是静态常量,不是变量! 另外, 常量不管在接口中还是类中必须在声明时初始化。
    D.子类可以访问父类受保护的成员 访问修饰符 访问范围 继承性 private 本类内部 不可继承 私有的 (default) 本类+同包 同包子类可以继承 默认的 protected 本类+同包+子类 可以继承 受保护的 public 公开 可以继承 公开的








参考

  • 慕课网
  • 极客时间