Java日常刷题第十一天

选择题

1.类 ABC 定义如下:

1 . public  class  ABC{

2 .     public  double  max( double  a, double  b) {   }

3 .

4 . }

将以下哪个方法插入行 3 是不合法的。(B)
A.public float max(float a, float b, float c){ }
B.public double max (double c, double d){ }
C.public float max(float a, float b){ }
D.private int max(int a, int b, int c){ }
解析:这题考的是对方法重载(overload)的理解。
重载要求:在同一个类中,有两个或两个以上的方法,
1、方法名一致;
2、形参列表不一致,即:形参个数不一致 或 形参类型不一致 或 不同类型的形参的顺序不一致(其中有一项不一样即可),并且与形参变量名是否相同无关;
3、方法返回值类型可以一样,也可以不一样。
2 如下Java语句

double x= 3.0;
int y=5;
x/=–y;
执行后, x的值是(D)
A.3
B.0.6
C.0.4
D.0.75
解析:--y和y--,前者优先级最高参与运算之前减1。y--优先级最低一般参与运算之后再减1,区别开这两种情况 这类题就简单了
3 Math.round(11.5) 等于:(C)
A.11
B.11.5
C.12
D.12.5
解析:Math.round()方法实现的时候是将原来的数字加上0.5后再向下取整,有0.5的地方,加上0.5再向下取整。这就好理解多了,注意向下是指小于等于它的最大整数
4 方法通常存储在进程中的哪一区(D)
A.堆区
B.栈区
C.全局区
D.方法区
解析:Java运行时的数据区包括:(其中前两个是线程共享的)
1.方法区(Method Area) 存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
2.堆(Heap) 存放对象实例,几乎所有对象实例都在这里分配内存
3.虚拟机栈(VM Stack) 描述的是Java方法执行的内存模型:每个方法在执行的同时会创建一个Stack Frame(方法运行时的基础数据结构)用于存储局部变量表、操作数栈、动态连接、方法出口等信息
4.本地方法栈(Native Method Stack) 与虚拟机栈了类似,不过则为虚拟机使用的到的Native方法服务。(有的虚拟机譬如Sun HotSpot虚拟机直接把本地方法栈和虚拟机栈合二为一)
5.程序计数器(Program Counter Register) 可看作当前线程所执行的字节码的行号的标识器
5关于Float,下列说法错误的是©
A.Float是一个类
B.Float在java.lang包中
C.Float a=1.0是正确的赋值方法
D.Float a= new Float(1.0)是正确的赋值方法
解析:Float是类,float不是类.
查看JDK源码就可以发现Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中.
Float正确复制方式是Float f=1.0f,若不加f会被识别成double型,double无法向float隐式转换.
Float a= new Float(1.0)是正确的赋值方法,但是在1.5及以上版本引入自动装箱拆箱后,会提示这是不必要的装箱的警告,通常直接使用Float f=1.0f.
6经过强制类型转换以后,变量a,b的值分别为多少?B

short a =128;
byte b =(byte) a;

A.128 127
B.128 - 128
C.128 128
D.编译错误
解析:[1000 0000]作为补码表示-128不是算出来的, 是规定的,因为-0原码[1000 0000]在用原码规则来表示数是没有意义的,就浪费了这个编码, 所有要让这个编码有意义,就 整出来取反+1这套规则刚好能把-0原码【1000 0000】整到了-127【1000 0001】后面,所以用它来表示-128, 逻辑也正确: -128 = -127 - 1 = 【1000 0001】 - 1 = 【1000 0000】, 然后就把这套规则命名为补码,所以-0原码【1000 0000】在补码系统中表示-128不是推导的,是直接将-0原码【1000 0000】在补码系统中直接规定为补码表示-128

1.short类型,a的二进制是:0000 0000 1000 0000;
2.强制转换byte是8位,所以截取后的长度是8位,正数用源码表示,负数用补码表示,第一位是符号。
3.因此,a截取后8位的二进制是:1000 0000,第一位是1,表示是一个负数,第一位为1表示是负数 即000 0000 是补码,要求出原码 而补码的补码即原码 000 0000取反加1后得1000 0000 即128,二进制的值是128,所以结果是 -128。
7下面有关maven和ant的描述,描述错误的是?
A.Ant 没有正式的约定如一个一般项目的目录结构,你必须明确的告诉 Ant 哪里去找源代码
B.Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里
C.maven和ant都有“生命周期”的概念,当你输入一个命令后,maven或者ant会执行一系列的有序的步骤,直到到达你指定的生命周期
D.Ant构建文件默认命名为build.xml,Maven默认构建文件为pom.xml
解析:Ant和Maven都是基于Java的构建(build)工具。理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷。Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。
Ant特点 ›
没有一个约定的目录结构 ›必须明确让ant做什么,什么时候做,然后编译,打包 ›没有生命周期,必须定义目标及其实现的任务序列 ›没有集成依赖管理
Maven特点
›拥有约定,知道你的代码在哪里,放到哪里去 ›拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 ›只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情 ›拥有依赖管理,仓库管理
8设有下面两个赋值语句:

a = Integer.parseInt(“1024”);

b = Integer.valueOf(“1024”).intValue();

下述说法正确的是(D)
A.a是整数类型变量,b是整数类对象。
B.a是整数类对象,b是整数类型变量。
C.a和b都是整数类对象并且它们的值相等。
D.a和b都是整数类型变量并且它们的值相等。
解析:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过Intvalue转换成int,所以选择D
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
9What is displayed when the following is executed;(A)

double d1=-0.5;
System.out.println(“Ceil d1=”+Math.ceil(d1));
System.out.println(“floor d1=”+Math.floor(d1));
A.Ceil d1=-0.0
floor d1=-1.0
B.Ceil d1=0.0
floor d1=-1.0
C.Ceil d1=-0.0
floor d1=-0.0
D.Ceil d1=0.0
floor d1=0.0
E. Ceil d1=0
floor d1=-1
解析:ceil:大于等于 x,并且与它最接近的整数。
floor:小于等于 x,且与 x 最接近的整数。
10Model-View-Controller(MVC) is an architectural pattern that frequently used in web applications. Which of the following statement(s) is(are) correct?(ABC)
A。Models often represent data and the business logics needed to manipulate the data in the application
B。A view is a (visual) representation of its model. It renders the model into a form suitable for interaction, typically a user interface element
C。A controller is the link between a user and the system. It accepts input from the user and instructs the model and a view to perform actions based on that input
D。The common practice of MVC in web applications is, the model receives GET or POST input from user and decides what to do with it, handing over to controller and which hand control to views(HTML-generating components)
E。None of the above
翻译:
MVC是一种在web应用中常用的架构,下列说法正确的是()

A. 模型通常代表应用程序中的数据以及用于操纵数据的业务逻辑;

B. 视图是其对应的模型的可视化呈现,视图 将模型渲染成适合于交互的形式(通常为用户界面元素);

C. 控制器是用户与系统之间的纽带,它接受用户输入,并指示模型和视图基于用户输入执行操作(处理数据、展示数据);

D. MVC模式在web应用中的常见实践是:模型接受来自于用户的GET或POST请求数据并决定如何处理,模型将用户数据转交给控制器,控制器将控制权转交给视图(视图由HTML生成);

E. 以上全不是。
解析:D应该是controller接收用户post或者get方式的请求

模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
视图(view) 用户与之交互的界面、在web中视图一般由jsp,html组成
控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的作用。 本题中显然D错误,应该是控制器接收请求,并将其交给模型进行处理,

猜你喜欢

转载自blog.csdn.net/yangyuCISCO/article/details/83512774