• 写在前面,几个月没怎么看过Java,昨天上午突然决定参加一下这个笔试,然后立马投了简历。晚上参加远程笔试,题目不算难,算是普通水平,算法题也没有难到不会写。但我还是把实现栈会写的写错最气人)的那题写错了,交完答案,重新看了一眼题,瞬间就骂自己sb,脑子当时不知道在想什么???这么简单的题,都给写错,怕是没机会参与面试了。不过也好,趁着最后一个月,多投几个简历,复习一下自己几个月没看的Java。最后,吐槽一下,纸上写代码简直是活受罪啊啊啊,强烈推荐算法题还是在线上编程比较好,另外就是我写的字太难看了(我是辣鸡,只会嘤嘤嘤…)。最后,不管结果如何,总结一下至关重要,另外也告诫自己,下一次遇到这种简单的题目就别写错了。在写错,自己就真是个sb了。

简答题

  • 写出你用过的linux命令,举例说明其中几个的具体用法。

    • mkdir、chomd、apt-get update、ifconfig、vim、cd、…(用法就不说了,不懂的Google)
  • 写出TCP的三次握手和四次握手的过程。

    • 三次握手:假设 A 为客户端,B 为服务器端。首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。B 收到 A 的确认后,连接建立。

    • 四次挥手:假设 A 为客户端,B 为服务器端。首先A 发送连接释放报文,FIN=1。B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据。当 B 不再需要连接时,发送连接释放报文,FIN=1。A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。B 收到 A 的确认后释放连接。

  • 将一个句子按单词反序。比如 “the sky is blue”,反序后变为 “blue is sky the”?

 public static String reverse(String S) {String[] strs = S.trim().split(" ");StringBuilder sb = new StringBuilder();for (int i = strs.length - 1; i >= 0; i--) {sb.append(strs[i]);sb.append(" ");}return sb.toString().trim();}
  • 一张学生成绩表score,部分内容如下:
    name course grade
    张三 操作系统 67
    张三 数据结构 86
    李四 软件工程 89
    用一条SQL 语句查询出每门课都大于80 分的学生姓名。

这题这不会写,好久好久没写过SQL语句了,问题这就暴露出来了。看来自己需要好好复习一下SQL语句了。

答案:
select distinct name from score where name not in (select name from score where grade <= 80);
  • 接口和抽象类的区别是什么?

    • 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
    • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
    • 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
    • 一个类只能继承一个抽象类,而一个类却可以实现多个接口。(JDK 1.8 以后,接口里可以有静态方法和方法体了。)
  • 集合类用过哪些,分别列举出来,并指出它们各自使用了那些数据结构。

    • ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap、ConcurrentHashMap…
  • Spring的IOC和AOP是什么? Spring有哪些优点?谈谈你对spring的理解。

    • IOC:控制反转(Inversion of Control),即创建被调用者的实例不是由调用者完成,而是由 Spring 容器完成,并注入调用者。
    • AOP:面向切面,允许你定义方法拦截器切入点对代码进行干净地解耦,它实现了应该分离的功能,降低代码的耦合度。

编程题

  • 实现一个栈,包含栈的基本操作(pop、push、top、size)。
public class Stack {Queue<Integer> in;Queue<Integer> out;public Stack() {in = new LinkedList<>();out = new LinkedList<>();}public int pop() {return out.poll();}public void push(int x) {in.add(x);while (!out.isEmpty()) {in.add(out.poll());}Queue tmp = in;in = out;out = tmp;}public int top() {return out.peek();}public int size() {return (in.size()+out.size());}
}
class MyStack {Queue<Integer> queue;public MyStack() {queue = new LinkedList<Integer>();}public void push(int x) {int n = queue.size();queue.offer(x);for (int i = 0; i < n; i++) {queue.offer(queue.poll());}}public int pop() {return queue.poll();}public int top() {return queue.peek();}public int size() {return queue.size();}
}
// 用数组实现栈,缺点是数组的大小已经固定。因此栈的最大容量也已经确定。
class Stack {int[] stack;int i;public Stack() {stack = new int[1000];i = 0;}public void push(int x) {stack[i++] = x;}public int pop() {return stack[i--];}public int top() {return stack[i];}public int size() {return i+1;}
}
  • 给定一个无序数组arr,找到数组中未出现的最小正整数
例如arr = [-1, 2, -3, 4]。返回1
arr = [1, 2, 3, 4]。返回5[要求]
时间复杂度尽可能的低。
public static int minInt(int[] arr) {int len = arr.length;for (int i = 0; i < len; i++){if (arr[i] > 0 && arr[i] < len) {int tmp = arr[arr[i]-1];arr[arr[i]-1] = arr[i];arr[i] = tmp;}}for (int i = 0;i < len; i++) {if (arr[i] != i+1) {return i+1;}}return len+1;}

你知道的越多,你不知道的越多。

2020校招Java笔试题相关推荐

  1. 用友2020校招java笔试题_用友Java类笔试题大全

    如下为大家汇总的是一份用友Java类笔试题,欢迎大家关注! 1.Hashtable和HashMap有什么区别? a.Hashtable是继承自陈旧的Dictionary类的,HashMap继承自Abs ...

  2. 用友2020校招java笔试题_2020年快手校招JAVA岗笔试第三题-Go语言中文社区

    题目描述: 将两个内容合并,每次,取第一行四个,取第二行5个.把多余的直接补在最后即可. 解题代码 import java.util.Scanner; public class Main_3 { pu ...

  3. 小红书2020校招数据分析笔试题卷四 解析

    小红书2020校招数据分析笔试题卷四 解析 单选题 多选题 填空题 简答题 题目来自小红书2020校招数据分析笔试题卷四 单选题 如果在小红书商城中某一商户给一产品定价,如果按照全网最低价500元定价 ...

  4. 华为校招java笔试题库_华为校招Java笔试题库,看你会不会做

    1.在java中如果声明一个类为final,表示什么意思? 答:final是最终的意思,final可用于定义变量.方法和类但含义不同,声明为final的类不能被继承. 2.父类的构造方法是否可以被子类 ...

  5. 小红书2020校招前端笔试题卷三

    小红书2020校招前端笔试题卷三题目地址 第一题 第一题我做错了以为是选错误的 第二题 第三题 解: JS中的执行机制(setTimeout.setInterval.promise.宏任务.微任务), ...

  6. 小红书2020校招算法笔试题卷一

    小红书2020校招算法笔试题卷一 字符串倒序 薯队长带着小红薯参加密室逃脱团建游戏,首先遇到了反转游戏,小红薯们根据游戏提示收集了多个单词线索,并将单词按要求加一个空格组 成了句子,最终要求把句子按单 ...

  7. 贝壳找房校招java笔试题_2020年最新贝壳找房java面试题分享

    下面要给大家带来的是2020年最新的一个贝壳找房java面经,具体内容是面试题介绍,一起来看看都问了哪些问题吧! 一.面试题 1.Java的特性你了解吗? 2.一个Java文件里面允许多个类被声明为p ...

  8. 京东校招java笔试题_京东2018校招技术笔试编程题汇总

    1.回文 分析 暴力枚举一下check回文,可以确定出最后答案的一半,就可以得到答案了. 参考代码 #include using namespace std; bool isPalindrome(st ...

  9. 小米2020校招Android笔试题

    1.对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是()排序. 增量为3的希尔排序,15 8 4 三个排序 4 8 15,9 ...

  10. 京东校招java面试题_2018京东校招Java笔试题

    相比阿里巴巴,京东的题都是考研基础题,加上一点java基础知识和linux命令. 1. 单选题(19道题,每题2分): 1)4个并发进程都需要5个同类资源,则至少需要多少个资源,才不会导致死锁? 2) ...

最新文章

  1. AOP in Asp.net MVC
  2. 从ICLR 2022看什么是好的图神经网络?
  3. UGUI_不规则按钮的响应区域
  4. 【测绘程序设计】坐标正算神器V1.0(附C/C#/VB源程序)
  5. jzoj4025-找回密码【后缀自动机】
  6. SAP License:SAP顾问该不该参与数据搜集
  7. Java8中检查字符串在数组中是否存在
  8. 在Docker上运行微服务
  9. typora的安装和配置
  10. 90KB的3D游戏(像CS一样)[汇编界又一奇迹]绝对震撼,操作和CS一样!
  11. 百度指数 爬虫 更新版
  12. 新手必备!最全电路基础知识讲解
  13. ajax向后台传递参数为对象实例
  14. VS中如何导入并且播放音乐
  15. 求解立方根 java
  16. STC89C516驱动DS12C887时钟模块
  17. 教你如何有效防止DDos攻击?
  18. 刀片服务器的机箱显示器,刀片服务器机箱如何配置网络交换器端口
  19. BP神经网络原理与matlab实现
  20. JSONPath库:使用类似Xpath的语法解析JSON数据

热门文章

  1. 新手如何Reverces(3自动化逆向篇)
  2. [蓝桥杯] 扩散 (Python 实现)
  3. Pr 音频效果参考:振幅与压限
  4. java输出100以内的所有质数
  5. labelImg 的pip安装
  6. 大创和互联网加_大创?科研立项?互联网+大赛?创业大赛?……你还在纠结吗?...
  7. 关于stm32通过can与epos控制器建立通信,从而控制Maxon电机运转并且实时检测电机参数
  8. 流行的后台管理系统模板总结
  9. 太开放计算机软件快上课,[计算机软件及应用]CAXA电子图版上课.ppt
  10. 运动目标检测之关键帧提取、二帧差法及三帧差法