java刷题day 03

选择题:

 解析:

  1. 父类private的成员变量,根据权限修饰符的访问控制范围,只有在类内部才能被访问,就算是他的子类,也不能访问。
  2. 这里如果将Person p = new Child();改成 Person p = new Person();代码依然无法通过编译,因为子类作用域中访问不到父类的私有变量,无法为其生成正确的字节码。
  3. 另外,一个Java文件中不能有两个public类。

  解析:

        继承中的创建子类对象时会通过子类的构造方法先帮助父类进行构造,但题目中的父类拥有带一个参数的构造方法, 所以此时就不会提供不带参数的构造方法,但因为我们的子类中没有通过super(s) 帮助父类进行构造所以此时就会报错编译错误.

  解析:构造方法可以有多个 (重载)

  解析:

  1. catch不能省略,要通过catch来捕获异常
  2. finally是可以省略的,如果加上了finally 那么就一定会执行 finally中的代码

  解析:外部对引用对象的改变会反映到我们的对象上

  解析:

A:实例方法调用超类(父类)的实例方法需要通过 super. 来调用

B:实例方法不能直接调用超类的类方法(类方法就是被 static 修饰的方法) ,这里就需要通过类名进行调用 如 :Test.sum 

D:实例方法去调用其他类的实例方法需要其他类的对象才能调用

  解析:

这里主要考察字符串常量池 与 == 比较是否为一个对象

str1 会将 hello 放入到字符串常量池

但是 str2 中 he 拼接了一个 llo 就会产生一个新的对象,是放在上的 
所以==比较两个对象的地址值,所以打印的结果为 false

  解析:

  1. 异常是类,需要new
  2. 不需要e,直接类名就好

  解析:

ArrayList底层是数组,LinkedList底层是双向列表,HashMap底层是数组加列表

A:在 Map 那章说过, HashMap 是可以 将null当作 键和值的

B:ArrayList 和 LinkedList 是实现了List接口的, 这里再初始数据结构那文,有一张图 上面就可以看到

C:ArrayList底层是数组,每次增加和删除元素都需要挪动元素,时间复杂度能达到 O(N),效果不佳

D : 前提是确定下标的情况下 ,ArrayList是比 LinkedList快一点

  解析:不一定,

程序题:

链接:字符串中找出连续最长的数字串_牛客题霸_牛客网 (nowcoder.com)
 

   public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int left = 0;
        int right = 0;
        int count = 0, max = 0;
        String str2 = new String();
        for (int i = 0; i < str.length(); i++) {

            if (str.charAt(i) < '0' || str.charAt(i) > '9') {
                // 此时是字母部分 :
                continue;
            }
            // 此时是数字部分
            left = i;
            while (i < str.length() && !(str.charAt(i) < '0' || str.charAt(i) > '9')) {
                i++;
                count++;
            }
            // 此时 走到了 i 为字母的地方
            count = i - left;
            right = i;
            if (count > max) {
                // 更新 数字字符串
                str2 = str.substring(left, right);
                max = count;
                count = 0;
            }
            i = i - 1;

        }
        System.out.println(str2);
    } 

 数组中出现次数超过一半的数字_牛客题霸_牛客网 (nowcoder.com)
 

import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution (int[] numbers) {
        Arrays.sort(numbers);//数组排序
        int n = numbers.length;
        int ans = numbers[n / 2]; //数组中间的数字
        return ans;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值