【283天】我爱刷题系列(42)

叨叨两句

  1. 继续改进学习方法,增长练习时间,脑图先第一版,以后慢慢迭代

牛客网——java专项练习022

1

设有下面两个赋值语句:java

a = Integer.parseInt("1024");
b = Integer.valueOf("1024").intValue();

下述说法正确的是()
正确答案: D安全

  1. a是整数类型变量,b是整数类对象。
  2. a是整数类对象,b是整数类型变量。
  3. a和b都是整数类对象而且它们的值相等。
  4. a和b都是整数类型变量而且它们的值相等。
intValue()是把Integer对象类型变成int的基础数据类型; 
parseInt()是把String 变成int的基础数据类型; 
Valueof()是把String 转化成Integer对象类型;(如今JDK版本支持自动装箱拆箱了。)
本题:parseInt获得的是基础数据类型int,valueof获得的是装箱数据类型Integer,而后再经过valueInt转换成int,因此选择D

2

枚举(enum)属于原始数据类型(primitive type)。
正确答案: B学习

  1. 正确
  2. 错误
在Java中,变量有两种类型,一种是原始类型,一种是引用类型。
原始类型一共有8种,它们分别是char,boolean,byte,short,int,long,float,double。在Java API中,有它们对应的包装类,分别是(首字母大写)Character,Boolean,Byte,Short,Integer,Long,Float,Double(char,int的变化稍微大点)。


枚举(enum)类型是Java 5新增的特性,它是一种新的类型,容许用常量来表示特定的数据片段,并且所有都以类型安全的形式来表示,是特殊的类,能够拥有成员变量和方法。

3

阅读下列程序,选择哪个是正确的输出结果指针

class HelloA{
public HelloA()
    {
        System.out.println("I’m A class ");
    }
    static
    {
    System.out.println("static A");
    }
}
public class HelloB extends HelloA{
    public HelloB()
    {
        System.out.println("I’m B class");
    }
    static{
        System.out.println("static B");
    }
    public static void main (String[] args){
        new HelloB();
    }
}

正确答案: Ccode

  1. static A I’m A class static B I’m B class
  2. I’m A class I’m B class static A static B
  3. static A static B I’m A class I’m B class
  4. I’m A class static A I’m B class static B
正确答案应该选C。 类的初始化顺序是: 一、初始化父类中的静态成员变量和静态代码块。 二、初始化子类中的静态成员变量和静态代码块。 三、初始化父类中的普通成员变量和代码块,在执行父类中的构造方法。 四、初始化子类中的普通成员变量和代码块,在执行子类中的构造方法。

4

given the following code,what will be the output?对象

class Value{
    public int i=15;
}
public class Test{
    public static void main(String argv[]){
        Test t=new Test( );
        t.first( );
    }
 
public void first( ){
    int i=5;
    Value v=new Value( );
    v.i=25;
    second(v,i);
    System.out.println(v.i);
}
 
public void second(Value v,int i){
    i = 0;
    v.i = 20;
    Value val = new Value( );
    v = val;
    System.out.println(v.i+" "+i);
   }
}

正确答案: A索引

  1. 15 0 20
  2. 15 0 15
  3. 20 0 20
  4. 0 15 20
可能有人会选择B,包括我刚开始也是。总觉得v不是已经指向了val了吗??为何仍是20呢?不该该是15吗?
其实,缘由很简单。如今咱们把second()换一下
publicvoidsecond(Value tmp,inti){
    i = 0;
    tmp.i = 20;
    Value val = newValue( );
    tmp = val;
    System.out.println(tmp.i+" "+i);
   }
这个tmp其实至关因而一个指向原来first中的V这个对象的指针,也就是对v对象的引用而已。可是引用是会改变所指的地址的值的。
因此在second中当tmp.i= 20的时候,就把原来first中的v的i值改成20了。接下来,又把tmp指向了新建的一个对象,因此在second中的tmp
如今指的是新的对象val,i值为15.
当执行完毕second后,在first中在此输出v.i的时候,应为前面second中已经把该位置的i的值改成了20,因此输出的是20.
至于疑惑v指向了val,其实只是名字的问题,在second中的v实践也是另外的一个变量,名字相同了而已,这个估计也是纠结的重点。
简单的总结,不对但愿能够提出来,谢谢!

5

ResultSet中记录行的第一列索引为?
正确答案: C 你的答案: C (正确)it

  1. -1
  2. 0
  3. 1
  4. 以上都不是
相关文章
相关标签/搜索