松鼠AI二面笔试真题+面经(4.25)

松鼠AI面经

1.自我介绍+实习+项目(特别深挖实习,实习磕巴了半天主要是真不记得业务了,最后才问了项目,讲了其中一个项目的整个业务流程,数据库设计,业务模块设计,其中的难点和解决方案。。。。这部分问了得20分钟)

2.jvm内存结构?实例对象放在那个位置?堆的内存结构是怎么样的?垃圾回收有那些算法?展开说一个?说一个垃圾回收器的回收有哪些步骤?那些阶段会产生STW。

3.线程池模型?有那些参数?你项目中如何创建的线程池?你的线程池怎么设置的核心线程数和最大线程数?这两个参数有什么意义?有调整过核心线程数和最大线程数嘛?

剩下一些也都是常见的八股,具体记不清了,八股总体时间就10分钟出头。

反问阶段

对实习生的培养机制?面试结果多久出?面试表现和不足?

答:基础不错,但是实习不够深刻,项目还行,base上海,来了肯定是要做事的,我们这边业务比较忙,要996

笔试真题如下

以下是我面试写的答案 不一定对,耗时25分钟(笔试期间开着摄像头的,还接了个别的公司的电话

Java笔试

1. 【选择题】char类型占( B)个字节

A、1

B、2

C、3

D、4

2. 【选择题】下列说法正确的有(C)

A . class 中的 constructor 不可省略

B . constructor 必须与 class 同名,但方法不能与 class 同名

C . constructor 在一个对象被 new 时执行

D .一个 class 只能定义一个 constructor

3. 【选择题】 以下( B )不是合法的标识符

A、 STRING

B、 x3x;

C、 void

D、 de$f

4. 【选择题】以下程序的运行结果是:( B )

Java

public class Increment{

public static void main(String args[]) {

int a;

a = 6;

System.out.print(a);

System.out.print(a++);

System.out.print(a);

}

}

A. 666

B. 667

C. 677

D. 676

5. 【选择题】下列输出结果是( D )

Java

int a = 0;

while(a < 5){

switch(a){

case 0:

case 3:a = a + 2;

case 1:

case 2:a = a + 3;

default:a = a + 5;

}

System.out.print (a);

A、 0

B、 5

C、 10

D、 其他

6. 【选择题】执行下面代码结果( B )

a. for(int i=0;;){

System.out.println(”这是 "+i);

break;

}

A、 语法错误,缺少表达式2和表达式3

B、 死循环

C、 程序什么都不输出

D、 输出:这是0

7. 【选择题】分析如下Java程序的代码所示,则编译运行后的输出结果是( C)

Java

public class Test {

int count=9;

public void count1(){

count=10;

System.out.print("count1="+count + ";");

}

public void count2(){

System.out.print("count2="+count);

}

public static void main(String[ ] args) {

Test t=new Test();

t.count1();

t.count2();

} }

A、count1=9;count2=9

B、count1=10;count2=9

C、count1=10;count2=10

D、count1=9;count2=10

8. 【选择题】下列代码输出为(B )

Java

public class ReferencesTest

{

static class Student {

private String name;

}

public static void main(String[] args) {

Student studentA = new Student();

studentA.name = "aaa";

Student studentB = new Student();

studentB.name = "bbb";

setName(studentA.name, "ccc");

setName(studentB, "ccc");

System.out.println(studentA.name + ", " + studentB.name);

}

private static void setName(String name, String newName) {

name = newName;

}

private static void setName(Student student, String newName) {

student.name = newName;

}

}

A、aaa, bbB

B、aaa, ccc

C、ccc, ccc

D、ccc, bbB

9. 【选择题】以下( D )代码,能够对数组正确初始化 ( 或者是默认初始化 ) 。

A、 int[] a;

B、 a = {1, 2, 3, 4, 5};

C、 int[] a = new int[5]{1, 2, 3, 4, 5};

D、 int[] a = new int[5];

10. 【选择题】根据下面的代码,String s = null;会抛出NullPointerException异常的(AC)。[两项]

A) if( (s!=null) & (s.length()>0) )

B) if( (s!=null) & & (s.length()>0) )

C) if( (s==null) | (s.length()==0) )

D) if( (s==null) || (s.length()==0) )

删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例 1:

输入:head = [1,2,3,4,5], n = 2

输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1

输出:[]

示例 3:

输入:head = [1,2], n = 1

输出:[1]

//快慢指针

Public ListNode removeListNode(ListNode head, int n){

ListNode badNode = new ListNode(-1);

badNode.next = head;

ListNode fast = badNode;

ListNode slow = badNode;

Int times = 1;

While(fast != null && times <= n){ //快指针先移动n次

fast = fast.next;

times++;

}

//之后一起移动

While(fast != null){

fast = fast.next;

slow = slow.next;

}

slow.next = slow.next.next;

return badNode.next;

}

全部评论
请问哪里投递的啊
点赞 回复 分享
发布于 04-29 16:09 四川

相关推荐

12 15 评论
分享
牛客网
牛客企业服务