2019-6-17之联通笔试题

2019-6-17之联通笔试题

本人是二本非科班应届生,自学的java,菜鸟一只,还请各位大佬多多指正。
笔试题全部是手写。个人手撸代码能力十分辣鸡。所以有思路但是可能并没有答对。
笔试的时候我看见好几个人拿着手机在百度,我表示一脸懵逼,然而我还是很自觉的写完交了。
ps:我问了hr什么时候出结果,她说当天出,所以我已经凉凉了。

java部分

1、接口抽象类的区别(比较简单,我就不写了)
2、补全二分法查找(同上题)
3、有n个service服务器,url={url1,url2…urln}请你设计一个调度算法,实现负载均衡

本人的思路是将这些url写在配置文件中,使用一个数组(list)来存放。通过原子类整型来定位url的位置,然后返回。
不知是否可行,大佬多多指教。

4、某电商需求,设计一个订单表,要求有处理优先级,在分布式高并发下,只允许有一个线程对某一个订单进行操作,并且优先级高的先被处理。使用数据库或者Redis实现该需求,如何实现,使用什么数据类型,怎么设计表结构,谈谈你的看法。

此题还请大佬指导

5、sql查询 table(id,name,age,amount,date),对应(id,姓名,年龄,使用流量,日期),要求查询出年龄在18-25岁之间,且使用总流量超过5000G的用户信息。

select id,name,age,sum(amount) sum_amount
from table
where age between 18 and 25
group by id
having sum_amount > 5000

6、抽象类A有一个方法public void talk(),普通类B有一个方法public void say(),写一个类C即要有A类的属性特征有可以调用B类的say()方法。

//这是我写的答案,不知道符不符合
class C extends A{
	B b = new B();
	public void say(){
		b.say();
	}
}

7、日志信息统计,用户访问信息日志格式为"user123||2019-06-18 12:13:14",统计一天中每个小时访问的用户数,日志文件(usr/log.txt)。

package com.junjie.quickstart.testLog;

import org.junit.Test;

import java.io.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class TestLog {
    @Test
    public void testLog() throws Exception{
        File file = null;
        BufferedReader reader = null;
        //使用map来存储数据,key为时间段,Set来存放用户名的hashCode,set的大小即为该时间段的访问人数。
        //使用set的原因是可以去重
        Map> map = new HashMap>();
        try {
            file = new File("D:/log.txt");
            reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
            String s;
            while (reader.ready()) {
                s = reader.readLine();
                System.out.println(s);
                //这里需要将"||"进行转义,不然得不到理想的结果
                //我做题的时候也不知道要转义,回来之后写的代码。
                String[] split = s.split("\\|\\|");
                String key = split[1].substring(0, 13);
                Set set = map.get(key);
                if( set == null){
                    HashSet newSet = new HashSet();
                    newSet.add(split[0].hashCode());
                    map.put(key,newSet);
                }else{
                    set.add(split[0].hashCode());
                }
            }
            //遍历打印结果,这里应为使用的是map打印出来时无序的,也可以使用list的到有序的结果,
           // 或者对hashMap进行排序
            for(Map.Entry> e : map.entrySet()){
                System.out.println(e.getKey() + "时的访问人数是" + e.getValue().size());
            }
        }finally {
            if(reader != null ){
                reader.close();
            }
        }
    }
}

js部分:

1、和java中的覆盖有点相似的选择题。
2、隐藏document中name="test"的所有元素

function f() {
            var elements = document.getElementsByName("test");
            for (var i = 0; i < elements.length; i++) {
                elements[i].hidden = true;
            }
        }

3、数组去重[1,2,3,4,2,4]–>[1,2,3,4]

	var arr = [1,2,3,4,2,4,5];
    var result = [];
    for (var i = 0; i < arr.length ; i++) {
        if(result.indexOf(arr[i]) < 0){
            result.push(arr[i]);
        }
    }
    console.log(result);

你可能感兴趣的:(求职之路)