[java之牛客网每日练习]

java专项01

  1. 在某个类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

  1. 以下不属于构造方法特征的是()
    正确答案: 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 {
   
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心尘未泯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值