牛客网Java错题总结(3)

目录

一、类的重载

二、算法结构

三、关键字

四、抽象类

五、构造函数

六、局部内部类

七、常量池


一、类的重载

解析:

  • 重载:同名不同参,返回值无关
  • 覆盖重写:同名同参

二、算法结构

解析:

  • 算法结构包括:
    • 0个或多个输入
    • 1个或多个输出
    • 有穷个处理过程

所以存储数据不算做算法结构

三、关键字

解析:

  • A:native是由调用本地方法库(如操作系统底层函数),可以由C,C++实现。✔
  • B:import是用于导包语句,其前面可以出现package,用来声明包的。❌
  • C:接口方法的修饰符可以是:public,abstract,default,static(后两者需要有{})。❌
  • D:构造方法可以用private,protected,default,private。❌

四、抽象类

解析:

  • A:当一个类中有抽象方法时,必须声明为抽象类
  • B:当类是一个抽象类的子类时,并且不为任何抽象方法提供任何细节或方法体时,必须声明为抽象类
  • D:当类实现一个接口时,并且不为任何抽象方法提供任何细节或方法体时,必须声明为抽象类

五、构造函数

解析:

  • A:构造函数无返回值。❌
  • B:多个类构造函数不一定与公共类同名,因为每个类都可以有构造函数,函数名同所属类。❌
  • C:构造器可以有任意个参数。✔
  • D:每个类都默认有一个构造函数,可以有一个或者一个以上的构造器。✔

构造方法是一种特殊的方法,具有以下特点。

  1. 构造方法的方法名必须与类名相同。
  2. 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
  3. 构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
  4. 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
  5. 构造方法可以重载,以参数的个数,类型,顺序。

六、局部内部类

解析:

局部内部类是放在代码块或方法中的,不能有访问控制修饰符,且不能用static修饰

七、常量池

解析:

运行时常量池处于方法区中,

在JDK1.8之前是使用永久代的方法来实现方法区的,属于线程共享;

JDK1.8之后,元空间取代永久代的方法实现了方法区,运行时常量池被也被放在元空间中,

元空间的本质和永久代类似,都是对JVM规范中方法区的实现。

不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。

运行时常量池主要存放编译时期生成的各种字面量和符号引用。

所谓的运行时常量池其实就是将编译后的类信息放入运行时的一个区域中,用来动态获取类信息。

运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。

运行时常量池是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述信息外,还有常量池信息(用于存放编译期生成的各种字面量和符号引用)

猜你喜欢

转载自blog.csdn.net/weixin_39478524/article/details/114993021