首页 > 8-31 欢聚时代笔试
头像
沐源川水
编辑于 2020-09-02 16:54
+ 关注

8-31 欢聚时代笔试

题型 :

20道选择题 - 80分 (不定项选择)
1道编程题 - 10分
1道数据库问答(sql) -10分

选择题:

涉及知识点(印象比较深刻的):

  1. 多线程程序的输出(交出输出)

  2. 继承与多态 求输出。这道题我选错了....
    正确输出

    Father
    child:hhh
    1

    见代码

    public class TestFatherChild {
    
     public static void main(String[] args) {
         Father c = new Child("hhhh");
         System.out.println(c.x);
     }
    }
    
    class Father{
     int x = 1 ;
     Father(){
         System.out.println("Father");
     }
     Father(String str){
         System.out.println(" Father : " +str);
     }
    }
    class Child extends Father{
     int x = 2 ;
     Child(){
         System.out.println("Child");
     }
    
     Child(String str){
         System.out.println("Child : " +str);
     }
    }
  3. Iteger的常量池

  4. utf8的编码长度("java中文") 这个题我个人有点问题,汉字到底占3个字节还是4个字节?
    找到答案了一般是3个字节,自己在notepad里面测试也是一共9个字节 具体参见

  5. NIO特性(同步非阻塞)

  6. 进程的状态切换(可否由等待状态直接切换到运行态?不行!)

  7. 实现了Collection接口的类(除Map外的容器)

  8. IP地址的二进制表示
    还有些忘了.

编程题

水仙花数
找出比输入的n大的最小水仙花数;
水仙花数满足 各位的多次幂(位数长度次)和等于水仙花树本身:
如 153 = 111 + 555+333
比较金典的题目,我写的代码比较菜。虽然牛客上显示通过了所有测试用例。

import java.util.*;


class Solution {
    /**
     * 找到比输入的整数大的下一个水仙花数
     * @param n int整型 输入的整数
     * @return long长整型
     */
    public static void main(String[] args) {
        int  n = 108 ;
       Solution solution =  new  Solution() ;
       //System.out.println(solution.nextNarcissisticNumber(n));

    }
    public long nextNarcissisticNumber (int n) {
        long ans = n+1 ;
        boolean isShui ;
        while(!isShui( ans, n)){
            ans = ans +1 ;
        }
        return ans ;
    }

    boolean isShui( long a , int n) {
        long temp = a ;
        System.out.println("a : " + a);
        ArrayList<Long> list = new ArrayList<>();
        while(true){
            list.add(a % 10);
            a = a / 10 ;
            if(a != 0 );
            else break ;
        }
        for (Long l : list){
            System.out.println(l);
        }

        int len = list.size();
        long b = 0 ;
        for(Long l : list){
            int c = 1 ;
            for(int j = 0 ; j <len ; j++){
                c *= l ;
            }
            b += c ;
        }
        // System.out.println("a == b : "+ temp + " " + b );
        if (b==temp && temp >n)
            return true ;
        else  return  false;
    }
}

问答题

主要是sql的编写,学生表查成绩;
涉及到

联表查询  
count  
group by
order by
limit  

全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐