人生倒计时
- 今日已经过去小时
- 这周已经过去天
- 本月已经过去天
- 今年已经过去个月
1.下列说法正确的是()
A.两个修改的类可以同时存在于一个文件中
B.构造函数可以被覆盖()
C. 子类不能访问父类的非和修改属性
D.final修饰的类可以被继承
答案:C
Java 源文件最多只能有一个类。当有一个类时,源文件名必须与它一致,否则无法编译。如果源文件中没有类,则文件名和类之间没有一致性要求。至于main()abstract修饰符可修饰字段 方法和类,不必放在类中就可以运行程序。
重写就是子类继承父类后修改父类的方法。方法名、参数和返回值必须相同。标记为 final 的方法不能被覆盖。如果一个方法不能被继承,它就不能被覆盖。
扩展:覆盖和重载的区别
java中的方法重载
也就是说,在一个类中,您可以创建多个具有相同名称但具有不同参数和不同定义的方法。调用方法时,传递给它们的参数个数和参数类型决定了使用哪种方法,返回值类型可以相同也可以不同,这也是面向对象的多态性。
java方法覆盖
父类和子类之间的多态性重新定义了父类的功能。如果在子类中定义了一个方法,其名称和参数与其父类相同,我们称该方法为()。在 Java 中,子类可以从父类继承方法,而无需重写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要方法重写。方法覆盖也称为方法覆盖。
如果子类中的方法与超类中的方法具有相同的方法名称、返回类型和参数列表,则新方法将覆盖旧方法。如果需要父类中的原始方法,可以使用super关键字,它指的是当前类的父类。
子类函数的访问修改权限不能低于父类;
重写方法只能存在于继承关系中abstract修饰符可修饰字段 方法和类,重写方法只能重写父类的非私有方法。
2、for(int x=0,y=0;(y!=0)&&(x
A. 无限制
B、执行4次
C、执行3次
D. 一次都没有
答案:D
y的初始值为0。在整个for循环中,y的值没有变化,所以判断语句中的(y!=0)不成立,所以没有执行一次。
3.关于JAVA堆,下面的说法是错误的( )
A.所有类的实例和数组都在堆上分配内存
B、对象占用的堆内存被自动内存管理系统回收
C. 堆内存由活对象和死对象、空闲片段组成
D. 数组在栈上分配
答案:D
首先,数组是在堆中分配的,所以D的说法是不正确的。
Java堆的结构:JVM的堆是运行时数据区,所有的类实例和数组都在堆上分配内存。它是在 JVM 启动时创建的。对象占用的堆内存由自动内存管理系统回收,也称为垃圾收集器。堆内存由活对象和死对象组成。应用程序可以访问幸存的对象,并且不会被垃圾收集。死对象是应用程序无法访问且尚未被垃圾收集器收集的对象。在这些对象被垃圾收集器收集之前,它们将占用堆内存空间。
4.使用super和this关键字时,以下描述正确的是()
A、在子类构造函数中使用super()显示对超类构造函数的调用;
super() 必须写在子类构造函数的第一行,否则编译会失败
B.super() 和 this() 不必放在构造函数的第一行
C.this() 和 super() 可以同时出现在一个构造函数中
D.this() 和 super() 可以在环境中使用,包括方法和语句块
答案:A
Java 关键字 this 只能用在方法方法体中。创建对象时,Java 虚拟机 (JVM) 会为该对象分配一个指向自身的指针。这个指针的名字是this。因此,this只能用在类中的非静态方法中,并且不能出现在静态方法和静态代码块中。
超级键与此类似,就是被屏蔽的成员变量或成员方法变得可见,或者用来指代被屏蔽的成员变量和成员方法。
但是super用在子类中,目的是访问直接父类中被屏蔽的成员,注意直接父类(也就是类上面最近的超类)
5.下列说法正确的是()
A.Java程序编译后会生成代码
湾。Java程序编译后会生成字节码
C。Java程序编译后会生成DLL
D. 以上都不对
答案:B
Java字节码是通过编译Java源文件生成的中间文件
java虚拟机是一台可以运行java字节码的假想计算机。java的跨平台特性也相对于其他编程语言。
先介绍一下C语言的编译过程:C文件经过C编译器编译生成可执行文件exe文件,然后在.
接着介绍java编译过程:java文件由java编译程序在java虚拟机中执行,将java字节码文件转换为类文件。机器代码由 CPU 执行;Java被编译成字节码。
计算机只能运行机器代码。Java 在运行时将字节码转换为机器码。C/C++编译时直接编译成机器码
6. 以下哪个说法是正确的?
A.修饰符可以修改字段、方法和类
湾。抽象方法的主体部分必须用一对花括号 { } 括起来