牛客练习
java专项01
- 在某个类A中存在一个方法:void set(int x),以下不能作为这个方法的重载的声明的是()
正确答案: A 你的答案: A (正确)
void set(int y)
int set(int x,double y)
double set(int x,int y)
void set(int x,int y)
分析:重载是一个类中多个同名的方法,它与返回参数,参数名无关,与参数类型的排列组合有关,(参数个数,顺序);
2.要在session对象中保存属性,可以使用以下哪个语句( )
正确答案: B 你的答案: B (正确)
session.getAttribute(“key”,”value”)
session.setAttribute(“key”,”value”)
session.setAttribute(“key”)
session.getAttribute(“key”)
分析: 获取属性用getAttribute 保存属性用setAttribute
属性是一个键值对,要把键值对内容都传递进去。
3. 下面的程序 编译运行后,在屏幕上显示的结果是()
public class Test {
public static void main(String args[]) {
int x, y;
x = 5 >> 2;
y = x >>> 2;
System.out.println(y);
}
}
正确答案: A 你的答案: D (错误)
0
2
5
80
分析: >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1,
“>>>表示无符号右移,也叫逻辑右移,该数不论正负,高位都补0”,即给该十进制数除以对应个数的2;
4.JSP分页代码中,哪个步骤次序是正确的?
正确答案: A 你的答案: B (错误)
先取总记录数,得到总页数,最后显示本页的数据。
先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。
先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。
先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。
分析:先拿总记录数,即count(*),再根据每页多少条记录,确定总页数,最后也就能显示本页的数据了。
5. 有以下程序段, 则下面正确的选项是()
public class MyThead extends Thread{
public static void main(String[] args) {
MyThead t=new MyThead();
MyThead s=new MyThead();
t.start();
System.out.println(“one.”);
s.start();
System.out.println(“two.”);
}
public void run() {
System.out.println(“Thread”);
}
}
正确答案: B C D 你的答案: D (错误)
编译失败
程序运行可能结果为:
one.
Thread
two.
Thread
程序运行可能结果是:
one.
two.
Thread
Thread
程序运行结果不稳定
6.下列正确的有()
正确答案: A C D 你的答案: A B (错误)
call by value不会改变实际参数的数值
call by reference能改变实际参数的参考地址
call by reference不能改变实际参数的参考地址
call by reference能改变实际参数的内容
java专项02
- 以下不属于构造方法特征的是()
正确答案: D 你的答案: D (正确)
构造方法名与类名相同
构造方法不返回任何值,也没有返回类型
构造方法在创建对象时调用,其他地方不能显式地直接调用
每一个类只能有一个构造方法
分析:一个类可以有多个构造方法,构造方法可以进行重载。
2. 以下类定义中的错误是什么?()
abstract class xy
{
abstract sum (int x, int y) { }
}
正确答案: C 你的答案: C (正确)
没有错误
类标题未正确定义
方法没有正确定义
没有定义构造函数
分析:抽象方法没有方法体,只定义功能;
3. 有如下代码:请写出程序的输出结果。
public class Test
{
public static void main(String[] args)
{
int x = 0;
int y = 0;
int k = 0;
for (int z = 0; z < 5; z++) {
if ((++x > 2) && (++y > 2) && (k++ > 2))
{
x++;
++y;
k++;
}
}
System.out.println(x + ”” +y + ”” +k);
}
}
正确答案: B 你的答案: B (正确)
432
531
421
523
分析:&& 操作符,要求所有条件都为true,结果才为true,它是短路与,当其第一个天剑为false,则不会判断后续天剑,直接返回false;
4. 设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue();
下述说法正确的是()
正确答案: D 你的答案: B (错误)
a是整数类型变量,b是整数类对象。
a是整数类对象,b是整数类型变量。
a和b都是整数类对象并且它们的值相等。
a和b都是整数类型变量并且它们的值相等。
分析: Integer.parseInt("");是将字符串类型转换为int的基础数据类型
Integer.valueOf("")是将字符串类型数据转换为Integer对象
Integer.intValue();是将Integer对象中的数据取出,返回一个基础数据类型int
5. 以下哪个类包含方法flush()?()
正确答案: B 你的答案: B (正确)
InputStream
OutputStream
A 和B 选项都包含
A 和B 选项都不包含
对于字符写出流,如FileWriter,必须要使用到flush将字符缓冲区的内容写到文件中。字符缓冲区的数据是按字符算的,必须集齐一个字符(汉字是2个字符或者3个字符)的数据才能将数据写入文件;
6.How should servlet developers handle the HttpServlet’s service() methond when extending HttpServlet?
正确答案: D 你的答案: D (正确)
They should override the service()method in most cases;
They should call the service()method from doGet()or doPost();
They should call the service()method from the init()method;
They should override at least one doXXX()method(such as doPost())
分析:至少重写一个doXXX方法,如doGet();重写service方法,还是会重写doXXX方法;所以直接重写doXXX()方法,减少开发工作量;
7.下列哪个是合法的 Java 标识符?( )
正确答案: B C 你的答案: B C (正确)
Tree&Glasses
FirstJavaApplet
First_Applet
273.5
分析:标识符只有英文字母,数字,下划线和$,而且数字不能做开头的。
8.关于身份证号,以下正确的正则表达式为( )
正确答案: A C 你的答案: B D (错误)
isIDCard=/ ^ [1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
isIDCard=/^ [1-9]\d{7}((9\d)|(1[0-2]))(([0|1|2]\d)|3[9-1])\d{3}$/;
isIDCard=/^ [1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
isIDCard=/^ [1-9]\d{5}[1-9]\d{3}((9\d)|(1[9-2]))(([0|1|2]\d)|3[9-1])\d{4}$/;
分析:[m-n] m - n的数字,/d是,0-9,15位身份证的构成:六位出生地区码+六位出身日期码+三位顺序码
18位身份证的构成:六位出生地区码+八位出生日期码+三位顺序码+一位校验码
java专项03
1.分析以下代码,说法正确的是()
public static void main(String[] args) {
System.out.println(val());
}
public static int val() {
int num = 5;
try {
num = num / 0;
} catch (Exception e) {
num = 10;
} finally {
num = 15;
}
return num;
}
正确答案: D 你的答案: D (正确)
运行时报错
程序正常运行,输出值为5
程序正常运行,输出值为10
程序正常运行,输出值为15
分析:num初始值为5;在try块中因为分母为0,抛出异常,执行catch块语句,num赋值为10,最有执行finally块中num赋值为15;所以最后返回15;
2.对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为()
正确答案: D 你的答案: D (正确)
float
char
short
double
分析:short,char ,byte->int->long->double;long->float;float,>double;
3.以下正确的是:
Integer a = 1;
Integer b = 1;
Integer c = 500;
Integer d = 500;
System.out.print(a == b);
System.out.print(c == d);
正确答案: B 你的答案: B (正确)
true、true
true、false
false、true
false、false
分析:对于Integer类型,它底层是有缓存的,默认是-128-127,上限可更改;如果对其赋值在缓存范围内,那就不会创建新的对象,直接从缓存中拿,否则就需要创建新的对象;八大基本类型的包装类除了float,double外都有缓存;Short,long,Byte为-128-127;但是byte类型范围为-128-127,所以它一定是从缓存中拿,另外两个超出就需要创建对象了哦;Character为0-127;Boolean是true,false;
4.下面输出的结果是:
public class IfTest{
public static void main(String[]args){
int x=3;
int y=1;
if(x=y)
System.out.println("Not equal");
else
System.out.println("Equal");
}
}
正确答案: C 你的答案: C (正确)
The output is “Equal”
The output in “Not Equal”
An error at line 5 causes compilation to fall.
The program executes but does not print a message.
分析:判断语句中使用的是赋值语句,Java并不会向C会赋值后与0进行比较,所以会报错。
5. 下列关于异常处理的描述中,错误的是()。
正确答案: D 你的答案: D (正确)
程序运行时异常由Java虚拟机自动进行处理
使用try-catch-finally语句捕获异常
可使用throw语句抛出异常
捕获到的异常只能在当前方法中处理,不能在其他方法中处理
分析:我们可以将异常声明出去,交给调用方法去处理。
6.java中下面哪些是Object类的方法()
正确答案: A B D 你的答案: A B D (正确)
notify()
notifyAll()
sleep()
wait()
分析:sleep是线程的方法;
7. 下列代码片段中,存在编译错误的语句是()
正确答案: B C D 你的答案: B C D (正确)
语句2
语句1
语句3
语句4
byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2); /*语句1*/
b6=b4+b5; /*语句2*/
b8=(b1+b4); /*语句3*/
b7=(b2+b5); /*语句4*/
System.out.println(b3+b6);
分析:语句一其实就是b3 = 3;int型赋值给byte型是需要强制转型的,对于final修饰的变量它的类型是不会变的,所以语句2是正确的;语句3,4除了有final修饰的变量,还有byte类型参与运算,所以效果和语句一是一样。
8.Test.main()函数执行后的输出是( )
class Test {
public static void main(String[] args) {
System.out.println(new B().getValue());
}
static class A {