java基础程序改错题

java基础程序改错题1 如果要建立一个 java scut computer 的包 叙述正确的是 A 只需在代码中加入 package java scut computer 一个语句 并且必须放在代码的第一行 B 只需在代码中加入 package java scut 一个语句 C 必须在代码中加入 package java scut 和 package java scut computer 两个语句 D

大家好,我是讯享网,很高兴认识大家。



1,如果要建立一个java.scut.computer的包,叙述正确的是?

A.只需在代码中加入“package java.scut.computer;”一个语句,并且必须放在代码的第一行
B.只需在代码中加入“package java.scut;”一个语句
C.必须在代码中加入“package java.scut;”和“package java.scut.computer;”两个语句
D.在代码中,不一定是第一句,只要是类定义前,加入package语句即可

(D )正确答案A
此题有争议,以标准答案为准
实际上在Java语言规范中,不允许package name以“java”开头,不然会报一个java.lang.SecurityException 的错误。因为假如我们允许包名以java开头,那么我们完全可以编写和jdk标准包下一模一样的类,如Java.lang.Integer。因此在虚拟机进行类或接口解析时可能会发生冲突。一句话总结就是:假如允许包名以java开头,可能会导致命名空间污染的问题



2,子类要调用继承自父类的方法,必须使用super关键字。
A.正确
B.错误

( A )正确答案B

1、子类构造函数调用父类构造函数用super
2、子类重写父类方法后,若想调用父类中被重写的方法,用super
3、未被重写的方法可以直接调用。
4、子类不能访问父类的私有方法 用super也不行



3,下面有关java object默认的基本方法,说法错误的是?
A.equals(Object obj) 指示某个其他对象是否与此对象“相等”
B.copy() 创建并返回此对象的一个副本
C.wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法
D.toString() 返回该对象的字符串表示

(A)正确答案B
java object默认的基本方法中没有copy(),含有如下方法:
getClass(), hashCode(), equals(), clone(), toString(), notify(), notifyAll(), wait(), finalize()



4,JDK1.8版本之前,抽象类和接口的区别,以下说法错误的是

A.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。
B.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
C.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法默认都是 public abstract 类型的。
D.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has-a"关系,interface表示的是"is-a"关系。

正确答案D
反了,abstract class表示的是"is-a"关系,interface表示的是"has-a"关系。
其他选项正确。


5,下面哪个行为被打断不会导致InterruptedException:

A.Thread.join
B.Thread.sleep
C.Object.wait
D.CyclicBarrier.await
E.Thread.suspend

正确答案E
抛InterruptedException的代表方法有:
java.lang.Object 类的 wait 方法
java.lang.Thread 类的 sleep 方法
java.lang.Thread 类的 join 方法
另外CyclicBarrier的await方法也会爆 InterruptedException



6,从内存实现或者反射的角度来看,关于继承的说法正确的是
注:此处的继承不代表能调用

A.子类将继承父类的所有的数据域和方法
B.子类将继承父类的其可见的数据域和方法
C.子类只继承父类public方法和数据域
D.子类只继承父类的方法,而不继承数据域

(B)正确答案A
子类可以继承父类的全部数据域和方法,但是这里继承代表的是“拥有”,即:只是拥有父类的全部数据域和方法,但不具备对某些私有数据域或私有方法的使用权(调用)。


7,Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是

A.ArrayList和LinkedList均实现了List接口
B.ArrayList的访问速度比LinkedList快
C.添加和删除元素时,ArrayList的表现更佳
D.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

(AB)正确答案ABD
A:ArrayList和LinkedList都实现List接口,Hashset实现Set接口
BC:Arraylist在内存中基于数组实现,可以通过为止找到地址查找快,增加删除需要修改其后面的所以元素所以慢。LinkedList在内存中基于链表存放,查找慢,修改快。
D:HashMap运行任何键值对。即使是null也是支持的


8,Java中关于继承的描述正确的是

A.一个子类只能继承一个父类
B.子类可以继承父类的构造方法
C.继承具有传递性
D.父类一般具有通用性,子类更具体

(ABC)正确答案ACD
在java中,子类构造器会默认调用super()(无论构造器中是否写有super()),用于初始化父类成员,同时当父类中存在有参构造器时,必须提供无参构造器,子类构造器中并不会自动继承有参构造器,仍然默认调用super(),使用无参构造器。因此,一个类想要被继承必须提供无参构造器。


9,往OuterClass类的代码段中插入内部类声明, 哪一个是错误的:

A:class InnerClass{
public static float func(){return f;}
}
B:abstract class InnerClass{
public abstract float func(){}
}
C:static class InnerClass{
protected static float func(){return f;}
}
D:public class InnerClass{
static float func(){return f;}
}

正确答案:ABCD

主要考核了这几个知识点:
1.静态内部类才可以声明静态方法 AD
2.静态方法不可以使用非静态变量 C
3:定义抽象方法不可以有函数体 B



10,以下JAVA程序的运行结果是什么

讯享网
 



11,以下各类中哪几个是线程安全的?

A.ArrayList
B.Vector
C.Hashtable
D.Stack

正确答案:BCD
集合中线程安全的类有:vector,hashtable,stack,enumeration,除此之外均是非线程安全的类与接口


12,有关线程的叙述正确的是

A.可以获得对任何对象的互斥锁定
B.通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定
C.线程通过使用synchronized关键字可获得对象的互斥锁定
D.线程调度算法是平台独立的

正确答案CD
C:线程的互斥锁机制:synchronized,lock,condition
D:平台独立性是指可以在一个平台上编写和编译程序,而在其他平台上运行。那么Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,那么本地程序转化成的字节码在各个平台都是一样的。也就是说和哪个平台没有关系


13,关于 Socket 通信编程,以下描述错误的是:

A.服务器端通过new ServerSocket()创建TCP连接对象
B.服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
C.客户端通过new Socket()方法创建通信的Socket对象
D.客户端通过new ServerSocket()创建TCP连接对象

( C)正确答案D


14,Math.floor(-8.5)=

A.(float)-8.0
B.(long)-9
C.(long)-8
D.(double)-9.0

讯享网

ceil: 求大于参数的最小整数。返回double类型

 

round: 对小数进行四舍五入后的结果。返回int类型

 

A.ConcurrentHashMap使用synchronized关键字保证线程安全
B.HashMap实现了Collction接口
C.Array.asList方法返回java.util.ArrayList对象
D.SimpleDateFormat是线程不安全的

(B)正确答案D
A选项中,ConcurrentHashMap 使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全。
B中,HashMap实现了map接口
C中,应该是Arrays.asList(),其将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的内部


16,下面有关webservice的描述,错误的是?
A.Webservice是跨平台,跨语言的远程调用技术
B.Webservice通信机制实质就是json数据交换
C.Webservice采用了soap协议(简单对象协议)进行通信
D.WSDL是用于描述 Web Services 以及如何对它们进行访问

(D)正确答案B
Webservice是跨平台,跨语言的远程调用技术;
它的通信机制实质就是xml数据交换;
它采用了soap协议(简单对象协议)进行通信


17,以下哪项陈述是正确的?

A.垃圾回收线程的优先级很高,以保证不再 使用的内存将被及时回收
B.垃圾收集允许程序开发者明确指定释放 哪一个对象
C.垃圾回收机制保证了JAVA程序不会出现 内存溢出
D.进入”Dead”状态的线程将被垃圾回收器回收
E.以上都不对

18,

java 改错题 java答案错误_子类

A.1,2,2
B.1,2,3
C.1,3,3
D.1,3,2

(B)正确答案D


19,下面属于java包装类的是?

A.String
B.Long
C.Character
D.Short


20,Java类Demo中存在方法func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )

 
 

A.func1


B.func2


C.func3


D.func4

道题考的是数据类型转换问题。由大到小需要强制转换,由小到大不需要。


A:return; 没有返回值,错误


B:short → float 无须强制转换,正确


C:long → float 无须强制转换(这个最选项容易出错),正确。

float占4个字节为什么比long占8个字节大呢,因为底层的实现方式不同。


浮点数的32位并不是简单直接表示大小,而是按照一定标准分配的。


第1位,符号位,即S


接下来8位,指数域,即E。


剩下23位,小数域,即M,取值范围为[1 ,2 ) 或[0 , 1)


然后按照公式: V=(-1)^s * M * 2^E


也就是说浮点数在内存中的32位不是简单地转换为十进制,而是通过公式来计算而来,通过这个公式虽然,只有4个字节,但浮点数最大值要比长整型的范围要大。

D:double → float 没有强制转换,错误。

小讯
上一篇 2024-12-30 12:20
下一篇 2024-12-26 10:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10516.html