天天看点

牛客java选择题每日打卡Day1

牛客java选择题每日打卡Day1

👩‍💻博客主页:京与旧铺的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创

😘系列专栏:java学习

👕参考网站:牛客网

💻首发时间:🎞2022年5月13日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

💬推荐一款模拟面试、刷题神器👉​​​点击进入网站​​

牛客java选择题每日打卡Day1

🛒导航小助手🎪

文章目录

  • ​​牛客java选择题每日打卡Day1​​
  • ​​🛒导航小助手🎪​​
  • ​​@[toc]​​
  • ​​👲选择题1​​
  • ​​👼选择题2​​
  • ​​👩‍🦱选择题3​​
  • ​​👸选择题4​​
  • ​​👧选择题5​​
  • ​​🤴选择题6​​
  • ​​抽象类​​
  • ​​接口​​
  • ​​👨‍🦱选择题7​​
  • ​​🧓选择题8​​
  • ​​👩‍🦰选择题9​​
  • ​​👳‍♂️选择题10​​
  • ​​🤴总结​​

👲选择题1

What is the result of compiling and executing the following fragment of code:

Boolean flag = false;
if (flag = true)
{
    System.out.println("true");
}
else
{
    System.out.println("false");
}      

Boolean修饰的变量为包装类型,初始化值为false,进行赋值时会调用Boolean.valueOf(boolean b)方法自动拆箱为基本数据类型,因此赋值后flag值为true,输出文本true。 如果使用==比较,则输出文本false。if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值。

👼选择题2

关于下面的程序Test.java说法正确的是( )。

public class Test {
    static String x="1";
    static int y=1;
    public static void main(String args[]) {
        static int z=2;
        System.out.println(x+y+z);
    }
}      

被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量

👩‍🦱选择题3

下面哪些描述是正确的:( )

public class Test {
    public static class A {
        private B ref;
        public void setB(B b) {
            ref = b;
        }
    }
    public static Class B {
        private A ref;
        public void setA(A a) {
            ref = a;
        }
    }
    public static void main(String args[]) {
    …
        start();
    ….
    }
    public static void start() { A a = new A();
        B b = new B();
        a.setB(b);
        b = null; //
        a = null;
    …
    }
}      
牛客java选择题每日打卡Day1

👸选择题4

定义:String s1 = “uml”; String s2 = “uml”; String s3= new String(“uml”); String s4= new String(“uml”);那么,s1==s2;s3 == s4;s1.equals(s3); 判断正确与否

该题考察的是String类创建的对象在JVM中的内存分配和**“equals”与“==”的区别**。

  • “==”比较的是地址和值。
  • “equals”比较的是值。
牛客java选择题每日打卡Day1

👧选择题5

牛客java选择题每日打卡Day1
牛客java选择题每日打卡Day1

其实value++是一个表达式,它在执行完毕后会返回value加1之前的值。从下面的反编译我们很容易就能看出来,var10001这个变量是用来保存value之前的值,然后让value+1了,再把i之前的值也就是我们保存的var10001返回给打印语句。从这个流程其实我们看得出是value先加1再打印,但是打印的是var10001,并不是value。所以应该是value先+1在打印。

🤴选择题6

抽象类

特点:

1.抽象类中可以构造方法

2.抽象类中可以存在普通属性,方法,静态属性和方法。

3.抽象类中可以存在抽象方法。

4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。

5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。

6,抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰

关键字使用注意:

抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。

接口

1.在接口中只有方法的声明,没有方法体。

2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final

3.在接口中的方法,永远都被public来修饰。

4.接口中没有构造方法,也不能实例化接口的对象。(所以接口不能继承类)

5.接口可以实现多继承

6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类。

7,接口可以继承接口,用extends

👨‍🦱选择题7

public class Print{
  static boolean out(char c){
    System.out.print(c);
    return true;
  }
  public static void main(String[] argv){
    int i = 0;
    for(out('A');out('B') && (i<2);out('C')){
      i++;
      out('D');
    }
  }
}      

for循环的执行顺序用如下表达式:

for(expression1;expression2;expression3){

expression4;

}

执行的顺序应该是:

1)第一次循环,即初始化循环。

首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;如果符合,则执行expression4,否则,停止执行;最后执行expression3。

2)第N(N>=2)次循环

首先执行expression2,判断在expression3是否符合在expression2要求;如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。如此往复,直至expression3不满足在expression2条件是为止。

总结:

总的来说,执行的顺序是一致的。先条件判断(expression2),再函数体执行(expression4),最后for执行(expression3)。往复…区别在于,条件判断的对象。第一次判断时,对象为初始化语句(expression1),后续的判断对象为执行后的结果(expression3)。

🧓选择题8

只有C对。

A、while(int i<7){i++;System.out.println("i is "+i);},int i要放在外面声明;

B、int j=3;while(j){ System.out.println("j is "+j);},java判断处为boolean类型,应该如j==3,j>1之类才行 ;不像C中,0可以表示假,非0可以表示真。java的真假就是true和false以及判别式。

C、int j=0;for(int k=0;j+k!=10;j++,k++){System.out.println("j is "+j+“k is” +k);},当j=5,k=5时循环结束;

D、int j=0; do{System.out.println("j is "+j++);if(j==3){continue loop;}}while(j<10);,continue loop前面没有标注出循环名loop,相当于未定义。

👩‍🦰选择题9

static void Main(string[] args)  
{  
    try  
    {  
        throw new AccessViolationException();  
        Console.WriteLine("error1");  
    }  
    catch (Exception e)  
    {  
        Console.WriteLine("error2");  
    }  
    Console.WriteLine("error3");  
}      

1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。 2.try{}中有异常,则异常下面代码不执行。 3.finally{}中代码必执行。

👳‍♂️选择题10

接口中的属性在不提供修饰符修饰的情况下,会自动加上public static final

注意(在1.8的编译器下可试):

(1)属性不能用private,protected,default 修饰,因为默认是public

(2)如果属性是基本数据类型,需要赋初始值,若是引用类型,也需要初始化,因为默认有final修饰,必须赋初始值;

(3)接口中常规的来说不能够定义方法体,所以无法通过get和set方法获取属性值,所以属性不属于对象,属于类(接口),因为默认使用static修饰。

🤴总结