Day03:笔试题总结

Posted ohana!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day03:笔试题总结相关的知识,希望对你有一定的参考价值。

目录

一,选择题

二,编程题

1.字符串中展出连续最长的的数字串

2.数组中出现次数超过一半的数字


一,选择题

1.

解析:

1)对于父类的成员变量来说是私有的(private),在子类中无法调用

2)在同一个类中不能有两个public修饰的类(内部类除外,内部类是作为外部类的一个成员而存在) 

2.

解析:

 父类没有无参的构造方法,子类在创建对象时就会默认调用super,调用父类的无参构造方法,所以就会报错

3.

解析:

B.构造方法可以重载,可以有无参的,可以有只有一个参数的,也可以有多个参数的 

4.

解析:

 D.finally块可以不要即省略,但是catch块不能省略

5.

解析:

关于引用传递,当传递的对象是一个数组时,如果方法体的内容是更改某一个下标当中元素的值,那么就会反映到对象上 

6.

解析:

A.实例方法不能直接调用,如果是private就不能调用,这句话太绝对了

B.实例方法只能调用本类的类方法,超类的需要超类来调用

D.同B的分析

7.

解析:

“==”比较的是对象的地址,str1是直接从常量池中取到的,而对于str2,是拼接而来的,只要发生拼接就一定会new一个新的字符串,多以地址肯定不是相同的(堆上)

8.

解析: 

抛出异常是要new的,括号中直接输入抛出异常的描述即可

9.

解析:

A.map可以用null作为键,value值也可以为空,当null作为键时,他并不是返回值null的那种意思,他只是一个字符串

B.均实现了list接口

C.ArrayList底层是动态数组,因此,添加和删除都需要移动要添加位置后面的的所有元素,及其不方便,但是查找就非常的方便

D.如果要查找的元素是最后一个元素,其实就没有谁比谁快的说法了

10.

解析:

内部类就不一定是相同的

二,编程题

1.字符串中展出连续最长的的数字串

题目内容: 

解析:

1)对于这个字符串来说,首先要做的就是筛选每一段连续的数字串出来

2)我选择将每段数字串选出,并保存好,后面就直接进行长度对比,然后,得到结果字符串

解题代码

import java.util.*;

public class Main
    public static void main(String[] args)
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        List<String> list = new ArrayList<>();
        StringBuilder sb = new StringBuilder();
        //循环的作用是遍历整个字符串
        for(int i = 0;i < s.length();i++)
            char ch = s.charAt(i);
            //如果是字符属于0-9之间,sb就直接拼接
            //如果不是,那么就将这个字符串添加进list保存起来,并且将sb清空
            if(ch >= '0' && ch <= '9')
                sb.append(ch);
            else
                list.add(sb.toString());
                sb.delete(0,sb.length());
            
        
        list.add(sb.toString());
        String str = "";
        //循环遍历整个list,找出数字串当中长度最长的,并赋值给str
        for(int i = 0;i < list.size();i++)
            if(list.get(i).length() > str.length())
                str = list.get(i);
            
        
        System.out.println(str);
    

2.数组中出现次数超过一半的数字

题目内容:

解析:

1)直接使用HashMap结构进行保存,以数组元素做键,以出现的次数做值

2)以循环进行对比,找出出现次数超过一半的元素

解题代码:

import java.util.*;

public class Solution 
    public int MoreThanHalfNum_Solution(int [] array) 
        //用map存放每个元素出现的次数(以元素做键,以出现的次数做值)
        Map<Integer,Integer> m = new HashMap<>();
        for(int i = 0;i < array.length;i++)
            m.put(array[i],m.getOrDefault(array[i],0) + 1);
        
        int midpos = array.length / 2;
        int index = 0;
        //对每个元素出现的次数进行比较
        for(int i = 0;i < array.length;i++)
            if(m.get(array[i]) > midpos)
                index = i;
            
        
        return array[index];
    

以上是关于Day03:笔试题总结的主要内容,如果未能解决你的问题,请参考以下文章

Day02:笔试题总结

Day02:笔试题总结

记一次给我司应届实习生出笔试题(非大厂,大佬忽略)

微软2017校招笔试题3 registration day

面试中遇到的java笔试题(整理中)

对于移动平均算法,是计算某变量之前n个数值的算术平均,正确的说法是:----腾讯2016研发工程师在线模拟笔试题