java专项

1.类 ABC 定义如下:
public class ABC{
public int max( int a, int b) { }
}
将以下哪个方法插入行 3 是不合法的。( )。
public float max(float a, float b, float c){ }
public int max (int c, int d){ }
public float max(float a, float b){ }
private int max(int a, int b, int c){ }
解析:首先,了解重载的定义,Java的方法重载,就是在同一个类中可以创建多个方法,它们具有相同的名字,但具有不同的参数个数哥不同定义,调用方法时通过传递给它们的不同参数个数和类型来决定具体使用哪个方法。当方法同名时,至少需要下面之一不同: 1.参数个数不同 2.对应位置上的参数类型不同 看看B选项,方法同名不管,参数个数相同(都是2个),对应位置上的参数类型都相同(都是int类型),所以判断该方法不能插入。
2.以下关于 abstract 关键字的说法,正确的是()
abstract 可以与final 并列修饰同一个类。
abstract 类中不可以有private的成员。
abstract 类中必须全部是abstract方法。
abstract 方法必须在abstract类或接口中。
解析:1.abstract类不能与final,static使用。final修饰方法,子类可以调用,但不能覆盖;2.最好不要有private因为私有和抽象放在一起,子类如果想重写父类的私有方法根本继承不过来,也就无法重写;3.抽象类中可以有非抽象方法;4.抽象类中可以都是非抽象的,但是抽象方法一定要在类和接口中。
3.有程序片段如下,以下表达式结果为 true 的是( )
Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);
s==t
s.equals(t)
u.equals(s)
t.equals(u)
解析:题目A比较的是两个对象的地址,显然不同的对象地址不同,A是false。B同属于Float对象且值相等,true。C和D比较的对象不同,false。
4.下列代码中的错误是()
(1) public class Test
(2) {
(3) public static void main(String [] args)
(4) {
(5) int i;
(6) i+=1;
(7) }
(8) }
非法的表达式 i+=1
找不到符号i
类不应为public
尚未初始化变量i
5.try块后必须有catch块。()
正确
错误
解析:
catch可以省略,try的形式有三种:
try-catch
try-finally
try-catch-finally
但catch和finally语句不能同时省略!
7、 在异常处理中,以下描述不正确的有(D)
A.try块不可以省略
B.可以使用多重catch块
C.finally块可以省略
D.catch块和finally块可以同时省略
解析:用try-catch 捕获异常;用try-finally 清除异常;用try-catch-finally 处理所有的异常. 三者选一种即可
9、 在Java中,关于HashMap类的描述,以下错误的是(A)?
A.HashMap能够保证其中元素的顺序
B.HashMap允许将null用作值
C.HashMap允许将null用作键
D.HashMap使用键/值得形式保存数据
解析:
HashMap(集合)中值的存储是无序的,依靠键值来存取元素,一个键对应一个值,就是说通过键来找值,并且键值都可为空
10、下列说法正确的是(B)
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
解析:
B 类方法是指用static修饰的方法,普通方法叫对象方法。 A.this指的是当前对象,类方法依附于类而不是对象this会编译出错 C.类方法中也可以调用其他类的类方法。同时可以通过创建对象来调用普通方法 D.类方法中可以创建对象,所以可以调用实例方法
11、 以下对选择语句描述错误的是(A)
A.根据某一条件重复执行一部分代码直到满足终止条件为止
B.可以根据条件控制程序流程,改变程序执行的顺序
C.选择语句可以嵌套使用
D.当条件满足时就会执行相应的语句
解析:
流程控制语句分类:
顺序结构
选择结构:if语句、switch语句
循环结构:while语句、for语句
12、下面哪个选项正确创建socket连接?(B)
A.Socket s = new Socket(8080);
B.Socket s = new Socket(“192.168.1.1”,8080)
C.SocketServer s = new Socket(8080);
D.Socket s = new SocketServer(“192.168.1.1”,8080)
解析:
服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号)
客户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)
13、子类A继承父类B, A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是?©
A.父类B静态代码块->父类B构造函数->子类A静态代码块->父类B非静态代码块->子类A构造函数->子类A非静态代码块
B.父类B静态代码块->父类B构造函数->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块
C.父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数
D.父类B构造函数->父类B静态代码块->父类B非静态代码块->子类A静态代码块->子类A构造函数->子类A非静态代码块
解析:
会先执行静态代码块,因为静态代码块是类级别的,是在创建对象之前就执行的。因为子类继承了父类,所以父类的静态代码块会先执行,接着执行子类的静态代码块。 因为构造函数可能要给动态代码块的一些成员变量赋值,所以必须在这之前先执行动态代码块,要不然构造函数会出现相关的成员属性无定义。所以会先执行动态代码块,在执行构造函数。一般先按父类的执行,再按子类的执行
14、以下哪个不能用来处理线程安全(D)
A,synchronized关键字
B.volatile关键字
C.Lock类
D.transient关键字
解析:
transient,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。当一个变量不希望被持久化的时候,比如说一些账号密码,就可以用transient关键字来表示该变量不参与序列化过程。
15、 下列在Java语言中关于数据类型和包装类的说法,正确的是(B)
A.基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据类型
B.long和double都占了64位(64bit)的存储空间。
C默认的整数数据类型是int,默认的浮点数据类型是float。
D.和包装类一样,基本(简单)数据类型声明的变量中也具有静态方法,用来完成进制转化等。
解析:
1、整数类型byte(1个字节)short(2个字节)int(4个字节)long(8个字节)
2、字符类型char(2个字节)
3、浮点类型float(4个字节)double(8个字节)
16、 关于数据库连接的程序,以下哪个语句的注释是错误的(A)
A.Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); //指定MySQL JDBC驱动程序
B.String url=”jdbc:odbc:student_access”; //指定数据源为student_access
C.Connection con=DriverManager.getConnection(url); //创建连接指定数据库的对象
D.Statement stmt=con.creatStatement();//创建执行SQL语句的Statement对象
解析:
Class.forName(“com.mysql.jdbc.Driver”); //指定MySQL JDBC驱动程序
oracle.jdbc.driver.OracleDriver //oracle驱动
sun.jdbc.odbc.JdbcOdbcDriver//Access数据库
17、以下声明合法的是(B)
A.default String s
B.public final static native int w( )
C.abstract double d
D.abstract final double hyperbolicCosine( )
解析:
A:变量不能被defalut修饰
B:native修饰方法,native修饰的方法简单来说就是:一个Java方法调用了一个非Java代码的接口。
定义navtive方法时,并不提供实现体,因为其实现体是用非Java语言在外面实现的。native可以和任何修饰符连用,abstract除外。因为native暗示这个方法时有实现体的,而abstract却显式指明了这个方法没有实现体。
C:abstract修饰方法和类
D:final修饰的方法不能被重写。而abstract定义的方法没有实现,必须被子类重写,明显不能一起使用。
19.如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? ( )
正确答案: C
A.void drink() { …}
B.protected void drink() { …}
C.public void drink() { …}
D.以上语句都可以用在类Calf中
子类重写父类方法时,访问权限不能小于父类。接口的方法权限默认是publlic,子类只能是public。
20.方法通常存储在进程中的哪一区(D)
A,堆区
B,栈区
C,全局区
D,方法区
解析:1.栈区:存放函数的参数、局部变量等
2.堆区:存放对象
3.全局区(静态区):存放全局变量和静态变量
4.常量区:存放常量字符串
5.代码区:存放函数体的二进制代码
21. 在这里插入图片描述
解析:new Child(“John”, 10),为构造方法,选择下列三种中的第③个
①super可以访问父类中public、default、protected修饰的成员变量,不能访问private修饰的成员变量。格式为super.成员名称
②super可以访问父类中public、default、protected修饰的实例方法,不能访问private修饰的实例方法。格式为super.实例方法
③super可以访问父类中public、default、protected修饰的构造方法,不能访问private修饰的构造方法,格式为super(参数)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值