• 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)
     

    1. public static void main(String[] args) {
    2. Scanner sc = new Scanner(System.in);
    3. String str = sc.nextLine();
    4. int left = 0;
    5. int right = 0;
    6. int count = 0, max = 0;
    7. String str2 = new String();
    8. for (int i = 0; i < str.length(); i++) {
    9. if (str.charAt(i) < '0' || str.charAt(i) > '9') {
    10. // 此时是字母部分 :
    11. continue;
    12. }
    13. // 此时是数字部分
    14. left = i;
    15. while (i < str.length() && !(str.charAt(i) < '0' || str.charAt(i) > '9')) {
    16. i++;
    17. count++;
    18. }
    19. // 此时 走到了 i 为字母的地方
    20. count = i - left;
    21. right = i;
    22. if (count > max) {
    23. // 更新 数字字符串
    24. str2 = str.substring(left, right);
    25. max = count;
    26. count = 0;
    27. }
    28. i = i - 1;
    29. }
    30. System.out.println(str2);
    31. }

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

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

  • 相关阅读:
    CleanShot X for Mac v4.7 屏幕截图录像工具(保姆级教程,小白轻松上手,简单易学)
    sealos 离线安装k8s
    clickhouse--json字段类型及基于json相关函数进行行列转换
    Hadoop完全分布式搭建
    SpringBoot2.1.9 MongoDB逻辑操作
    高斯混合模型(GMM)和高斯过程回归(GPR)的学习
    Linux常用命令
    Linux系统python(虚拟)环境的迁移
    解析java中的文件字节输入流
    Mysql—六大日志
  • 原文地址:https://blog.csdn.net/m0_65601072/article/details/128038909