Practise test day2

一.单选

1. A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:

1. A a0=new A();

2. A a1=new B();

3. A a2=new C();

问以下哪个说法是正确的(D)

A 只有第一行能通过编译

B 第1、2行能通过编译,但第3行编译出错

C 第1、2、3行能通过编译,但第2、3行运行时出错

D 第1行,第2行和第3行的声明都是正确的

解析:只要是子类,不需要是直接子类,都可以向上转型。

能否向上转型,使用is a 原则读一下。

2.
下面代码将输出什么内容:()
public class SystemUtil{
    public static boolean isAdmin(String userId){
        return userId.toLowerCase()=="admin";
    }
    public static void main(String[] args){
        System.out.println(isAdmin("Admin"));
    }
}

A true

B false

C 1

D 编译错误

使用==来判断两个引用对象是否都指向同一对象

考点:字符串常量池 ==与equals()的区别

3.

解析:

Test test = null;会出现空指针异常,这个引用不指向任何对象。

但是hello()方法是一个静态方法,静态方法的调用不依赖于任何对象。

 

5.

 解析:Alpha没有提供构造方法,系统会默认提供一个不带参数的构造方法。

 解析:static不能定义局部变量,可以定义成员变量。

实例变量:一个变量被static修饰就是类变量,只能放在类里面,不能放在方法中。

            1.无法修改和操作   2.不能定义在局部方法中

实例变量是声明在类内而不是方法中

局部变量才是声明在方法中

7.

解析:使用abstract关键字定义抽象类。abstract修饰符可以修饰方法和类。

8.

解析:construct构造方法可以重载。

9.

解析:成员变量可以赋值,但是不能进行运算,运算要放在方法中。

成员变量是定义在类中,方法体之外的变量。

声明抽象方法没有花括号。

10.

 二.编程题

[编程题]排序子序列 排序子序列_牛客笔试题_牛客网


 OR62 倒置字符串  倒置字符串_牛客题霸_牛客网

解题思路:逆置字符串(创建reverse()---使用双指针法)

1.将整个数据进行逆置

2.每个单词进行逆置

import java.util.*;

public class Main{
    public static void reverse(char[] array,int start,int end) {
        while(start < end) {
            char tmp = array[start];
            array[start] = array[end];
            array[end] = tmp;
            start++;
            end--;
        }
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine();
        char[] ch = s.toCharArray();
        int len = ch.length;
        //1、整体进行了逆置
        reverse(ch,0,len-1);
        int i = 0;//遍历ch数组
        while( i < len ) {
            int j = i;
            while(j < len && ch[j] != ' ') {
                j++;
            }
            if(j < len) {
                reverse(ch,i,j-1);
                i = j+1;
            }else{
                reverse(ch,i,j-1);
                i = j;
            }
        }
        String str = new String(ch);
        System.out.println(str);
    }
}

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鹿小伟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值