Java编程

牛客网java经典选择题解析

1、以下关于Integer与int的区别错误的是(D) A、int是java提供的8种原始数据类型之一 B、Integer是java为int提供的封装类 C、int的默认值为0 D、Integer的默认值为1 解析: D:包装类的默认值应该是null

2、public interface IService { String NAME=“default”; } 与上面等价表示是哪一项?(D) A、public String NAME=”default”; B、public static String NAME=”default”; C、private String NAME=”default”; D、public static final String NAME=”default”; 解析: 为什么是public:因为接口必然是要被实现的,如果不是public,这个属性就没有意义了; 为什么是static:因为如果不是static,那么由于每个类可以继承多个接口,那就会出现重名的情况; 为什么是final:这是为了体现java的开闭原则,因为接口是一种模板,既然是模板,那就对修改关闭,对扩展开放。 接口中默认修饰变量属性用:public static final;而默认方法的修饰符是:public abstract

3、代码行float t=5.1; int i=t; ,正确的是(A) A、代码不能编译 √ B、代码编译, i被设置为5 C、第二行若改为 int i=(byte)t 则可编译 D、第一行若改为 float t=5.1f 则可编译 解析: 考的是数据类型的转换,应该赋给最大值 类型转换: 由低到高的类型会自动转换 (最后赋值时一定要赋给高的) char

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

5、public class CharToString { public static void main(String[] args) { char myChar = ‘g’; String myStr = Character.toString(myChar); System.out.println(“String is: “+myStr); myStr = String.valueOf(myChar); System.out.println(“String is: “+myStr); } } 此代码片段输出正确的值是(A) A:String is: g String is: g B:String is: 103 String is: g C:String is: g String is: 103 D:String is: 103 String is: 103 解析: 返回的都是字符串,只有char变成 int 的时候才会变为对应的assic码

6、下面描述属于java虚拟机功能的是?(ABCD) A、通过 ClassLoader 寻找和装载 class 文件 B、解释字节码成为指令并执行,提供 class 文件的运行环境 C、进行运行期间垃圾回收 D、提供与硬件交互的平台 解析: A,C不用解释, B:B中JVM将字节码转换成不同平台(OS)下可执行的机器码指令。 D:D中说的与硬件交互是JVM机器指令与硬件的交互

7、以下可以正确获取结果集的有(AD) A、Statement sta=con.createStatement();ResultSet rst=sta.executeQuery(“select * from book”); B、Statement sta=con.createStatement(“select * from book”); ResultSet rst=sta.executeQuery(); C、PreparedStatement pst=con.prepareStatement(); ResultSet rst=pst.executeQuery(“select * from book”); D、PreparedStatement pst=con.prepareStatement(“select * from book”); ResultSet rst=pst.executeQuery(); 解析: AD正确 创建Statement是不传参的,PreparedStatement是需要传入sql语句

8、下列说法错误的有(ABCD) A、Java面向对象语言容许单独的过程与函数存在 B、Java面向对象语言容许单独的方法存在 C、Java语言中的非静态方法属于类中的成员(member) D、Java语言中的方法必定隶属于某一类(对象),调用方法与C语言的过程或C++语言的函数相同 解析: A、B:java不允许单独的方法,过程或函数存在,需要隶属于某一类中 C:java语言中的方法属于对象的成员,而不是类的成员。不过,其中静态方法属于类的成员 D:java调用方法和C调用过程,C+ + 的函数一样?肯定不一样。错

9、下面关于面向对象的一些理解哪些是错误的(C) A、面向对象的最重要的特性是支持继承、封装和多态 B、系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展 C、函数式的语言必然是面向对象的语言 D、面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口 E、过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装 F、Java和C++都是静态类型的面向对象编程语言 解析: C说的绝对了,其它选项肯定正确,记住即可

10、有关线程的叙述正确的是(CD) A、可以获得对任何对象的互斥锁定 x B、通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定 x C、线程通过使用synchronized关键字可获得对象的互斥锁定 √ D、线程调度算法是平台独立的 √ 解析: A、“任何对象”锁定,太绝对了,你能锁住你没有权限访问的对象吗? B、前半句话讲的是创建线程的方式,后半句讲的是锁定,驴头不对马嘴。 C、正确。 D、线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台独立的原因。

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注