Java知识点复习

最近考Java所以做了点java题复习,总结归纳出一些易错点。
1.下列叙述哪些是正确的?
A.final类不可能有子类
B.abstract类中只能有abstract方法
C.abstract类中可以有非abstract方法,但该方法不可以用final修饰。
D.不可以同时用final和abstract修饰一个方法。

#AD
解析:对于B,C,abstract类中可以有非abstract方法,但是非abstract方法都可以使用final修饰,表示不能被重写/覆盖。

2 java的接口()
A可以存在一个或者多个构造方法;
B至少需要一个构造方法
C通常声明了一些未确定类型的成员变量
D通常声明了一些没有具体实现方法的成员方法。
#D java接口的定义如此

3 int t=y=1; System.out.println(t==y),输出结果为——true.

4.java语言中的类可以多重继承(x)
解析:在java中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承。

5.java的垃圾回收机制自动回收程序已不再使用的对象。(√)

6.数组是简单数据类型。(x)
解析:数组,指针,结构是三种常见的复杂数据类型。

7.整型数据(java)在不同平台下长度不同。(x)

8.java中的指针类型和C语言指针类型一样。(x)
解析:java引用与C语言指针的区别有以下几方面:
1、现象
指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变,总是指向最初的对象。
2、编译
程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。
3、类型
引用其值为地址的数据元素,java封装了的地址,可以转成字符串查看,长度可以不必关心;C指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int。
4、内存占用
所占内存:引用声明时没有实体,不占空间。C指针如果声明后会用到才会赋值,如果用不到不会分配内存。
5、内存溢出
JAVA引用的使用权限比较小,不会产生内存溢出。C指针是容易产生内存溢出的,所以程序员要小心使用,及时回收。
6、本质
JAVA中的引用和C中的指针本质上都是想通过一个别名,找到要操作的目标(变量对象等),方便在程序里操作。所不同的是JAVA的办法更安全,使用更加方便些,但没有了C的灵活,高效。

8.类的成员至少有一个属性和一个方法。(√)
解析:如果类中没有,则系统会自动创造一个方法。但是属性可以没有。类中可以有多个构造方法,每个构造方法名字必须和类名相同,不能有返回类型和具体返回值,可以有无参数。

9.开发与运行java程序的三个步骤分别为:1.编译源程序 2.编译生成字节码,3.解释运行字节码。
解析:编译源程序生成字节码由java编译机完成,解释运行由虚拟机完成。

10.在类中如果没有定义访问控制符,默认为deafult,但是在接口中默认为public,这就很容易导致父类方法的公开性被降低,从而出错。

11.在一个java文件中只能有一个类可以被定义为public类型。

12.java两类应用程序java Application和java applet,其中applet可以在浏览器上运行。

13.java applet类中一些常用的方法为:init(), paint(), stop(), start(),
其中在浏览器执行applet程序时,init()最先被执行。

14.指出正确的表达式()
A.byte=128;
B.Boolean=null;
C.long =0xfffL
D.double =0.9239d;
#C
byte的范围为-128-127
boolean取值应该为true或者false
double 必须定义一个变量名

15.java语言中java.lang.Object是所有类的根。

下列( )语句关于Java中内存回收的说明是正确的。
A.程序员必须创建一个线程来释放内存
B.内存回收程序允许程序员直接释放内存
C.内存回收程序负责释放无用内存
D.内存回收程序可以在指定的时间释放内存对象
#C

17.java applet源文件不再需要main方法,但是必须有且只有一个类扩展了Applet类,我们把这个类称作java Applet源文件的主类。

18.一道有关继承的题目:
class Car extends FourWheelVehicle
{
public void b()
{
System.out.println(“Car b”);
super.b();
}
public void c()
{
System.out.println(“Car c”);
}
}
class FourWheelVehicle extends Vehicle
{
public void b()
{
System.out.println(“Four WheelVehicle b”);
a();
}
}
class Bus extends FourWheelVehicle
{
public void a()
{
System.out.println(“Bus a”);
}
public void c()
{
b();
System.out.println(“Bus c”);
}
}
class Vehicle
{
public void a()
{
System.out.println(“Vehicle a”);
}
public void b()
{
System.out.println(“Vehicle b”);
}
}

public class Output
{
public static void main(String []args)
{
Vehicle vechilel =new Car();
FourWheelVehicle fwvehicle=new Bus();
Vehicle vehicle2=new FourWheelVehicle();
Object ob=new FourWheelVehicle();
vechilel.a();
vechilel.b();
fwvehicle.a();
fwvehicle.b();
vehicle2.a();
((Vehicle) ob).a();
((Car)vechilel).b();
((Bus)fwvehicle).c();

}

}

输出结果为:
Vehicle a
Car b
Four WheelVehicle b
Vehicle a
Bus a
Four WheelVehicle b
Bus a
Vehicle a
Vehicle a
Car b
Four WheelVehicle b
Vehicle a
Four WheelVehicle b
Bus a
Bus c

下列哪个布局管理器使用的是组件的最佳尺寸( )
A.GridLayout B.BorderLayout C. FlowLayout D.CardLayo
C是最佳尺寸,A是网格布局,B是东南西北中布局,D顾名思义卡片布局

19.改错
class T
{
static int a=1;
public double AREA(int k)
{
a=a-1;
}
}
解析:方法定义为static;
易错:class T
{
static int a=1;
public double AREA(int k)
{
return a;
}
}这是未错的

20.java中静态的方法可以直接用类名调用,否则要创立一个对象调用。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值