牛客网刷题记 | 零散知识点汇总——Java(ing)

本文深入探讨Java与C++的特性差异,包括权限、继承、重载、接口与抽象类的区别,以及Vector与ArrayList的线程安全性。解析Java不能重载运算符,而C++可以,同时详细阐述接口与抽象类在设计与重构中的应用。

权限

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

     
     
    9125154-8280f4dc95e6a4b6.png
     


 

继承、重载

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

     
     
    9125154-2b424ecf50d2c516.png
     


 

接口与抽象类的区别

1 .抽象类要被子类继承,接口要被类实现;
2 .接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现。
3 .接口里定义的变量只能是公共的静态的常量,
抽象类中的变量可以是普通变量。
4 .抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。
【同:两者都能有静态抽象内部类!!!】

5 .抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。
6 .接口是设计的结果,抽象类是重构的结果。
7 .抽象类主要用来抽象类别,接口主要用来抽象功能。

 
9125154-47240bb1377f3517.png
 

 


 

题目

  • 地址
     
    9125154-c5bfc199c2227c50.png
     

    A.vector是线程安全的ArrayList,在内存中占用连续的空间。
    初始时有一个初始大小,
    当数据条数大于这个初始大小后会重写分配一个更大的连续空间。
    如果Vector定义为保存Object则可以存放任意类型,
    无需事先知道!!!

    B.选项说的情况就是我们自定义异常的情况,
    我们可以用违例(Exception)来抛出一些并非错误的消息,
    可以,并非错误的消息。
    比如我自定义一个异常,若一个变量大于10就抛出一个异常,
    这样就对应了B选项说的情况,
    我用抛出异常说明这个变量大于10,
    而不是用一个函数体(函数体内判断是否大于10,然后返回true或false)判断,
    因为函数调用入栈出栈
    在寄存器之下速度最快,且占的空间少
    自定义异常是存在中,肯定异常内存开销大

    C选项是错误的,因为接口中不能声明变量,只有常量!
    接口中只有常量定义,没有变量声明。
    接口中方法默认是abstract public,
    所以在接口只写函数声明是符合语法规则。
    但是变量默认是用public final static 修饰的,
    意思它是静态常量,不是变量!
    另外,
    常量不管在接口中还是类中必须在声明时初始化。

    D.子类可以访问父类受保护的成员
    访问修饰符 访问范围 继承性
    private 本类内部 不可继承 私有的
    (default) 本类+同包 同包子类可以继承 默认的
    protected 本类+同包+子类 可以继承 受保护的
    public 公开 可以继承 公开的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌川江雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值