视源股份CVTE 8.17 web后台开发笔试
20道选择题 + 2道编程题 + 1道问答题
选择题考得非常非常细,基本上每个选项之间差异不大,难度还是有的,而且其中有多选题。以下记录了我不太确定的一些题目
- 给出IPv4地址求出兼容的IPv6地址
- 给出子网掩码,求最大可以连接多少台主机
- 给出非连通无向图的边数,求至少需要多少个顶点
- java弱引用能转换为强引用吗?
- MySQL的关键字执行顺序
- synchronized是否具有传递性(父类方法加了synchronized,子类方法是否也继承)
编程题(给的是一个txt文本框,0代码提示,第一题还能自动补充括号,第二题真的就是个txt,很考验你的编码能力,核心代码模式。)
1. lc128 最长连续序列
public int longestConsecutive(int[] nums) {
if (nums.length < 2) {
return nums.length;
}
Arrays.sort(nums);
int temp = 1;
int result = 1;
for (int i = 1;i < nums.length;i++) {
int diff = nums[i] - nums[i - 1];
// 去重
if (diff == 0) {
continue;
}
// 连续
if (diff == 1) {
temp++;
}else {
// 不连续
result = Math.max(result, temp);
temp = 1;
}
}
return Math.max(result, temp);
}
2. 有一个文件里面存储了全国人口的年龄,年龄之间用逗号分隔,需要统计每个年龄的人数,年龄范围0~110 (没什么难度主要就是考验一下变成基本功,看看没有ide的情况能否写出来,使用io记得捕捉异常即可)
import java.util.*;
public class Test {
public static Object count(String filePath) {
try (BufferedReader br = new BufferedReader(new FileReader(new File(filePath)))) {
String info = br.readLine();
String[] ages = info.split(",");
long[] result = new long[111];
for (String age : ages) {
int index = Integer.parseInt(age);
result[index] = result[index]++;
}
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
问答题
给了一个业务系统,分析其高并发的场景有哪些,如果提高QPS和保证高可用,一些数据怎么保证实时性and准确性。
总的来说,考得太细了,知识盲区还是存在的,编程题不给调试的话基本上出点小问题就没了。估计凉凉了
#广州视源电子科技股份有限公司##Java##后端开发##秋招##笔经#