一、杭州网易游戏
(1)java编写一个题,输出当前目录下的文件目录,需要判断一个东西是目录还是路径?
import java.io.File;
import java.nio.file.Files;
public class FileDirectory {
public static void getFiles(File dir) {
//如果当前文件或目录存在
if(dir.exists()){
//如果是目录,则:
if(dir.isDirectory()){
//打印当前目录的路径
System.out.println(dir);
//获取该目录下的所有文件和目录组成的File数组
File[] files = dir.listFiles();
//递归遍历每一个子文件
for(File file : files){
getFiles(file);
}
}
//如果是文件,则打印该文件路径及名称
else{
System.out.println(dir);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\Users\\gaoyue\\Desktop\\大规模数据集");
getFiles(file);
}
}
(2)你的爱好有哪些?你都读过哪些书?
读书和慢跑。
东野圭吾的《嫌疑人X的献身》、《白夜行》、《幻夜》、郭敬明的《幻城》、《明朝那些事》、《盗墓笔记》、《钢铁是怎样炼成的》、《小王子》
二、大疆笔试
(1)Employee表中包含所有员工,他们的经理也属于员工,每个员工都有一个id,此外还有一列对应员工的经理的id,给定Employee表,编写一个SQL查询,该查询可以获取收入超过他们经理的员工的姓名。
未知解
未知解
(2)leetcode45题:跳跃游戏II
代码实现:
class Solution {
public int jump(int[] A) {
if(A.length<=1){
return 0;
}
int i=0;//当前所跳的长度
int j=0;
int count = 0;
while(i<A.length){
if(i+A[i]>=A.length-1){
count++;
return count;
}
int temp = Integer.MIN_VALUE;//下一步所能跳到的最远距离
for(int k=i+1;k<=i+A[i];k++){
if(temp<k+A[k]){
temp=k+A[k];
j=k;
}
}
i=j;//确定在当前位置需要跳的长度,使在当前位置跳的长度加上在下一位置的跳跃长度是最大的
count++;
}
return 0;
}
}
三、阿里杭州支付宝打探情况面试
(1)你认为java那一部分最难?
多线程、并发处理
(2)数学建模的过程?
当时有些忘了,被批的很惨。
(3)说一说高并发秒杀项目?
说自己提出的4个优化,他说这一套流程完全不对。
(4)问自己毕设过程的详细步骤,问hadoop框架是不是自己搭建的。
四、美团(北京)实习一面
(1)编程
编写归并排序算法
(2)你知道哪些java集合?
常见的集合接口Set、List、Map等,其中Set和List继承自Collection。
Collection是一组对象的集合,而Map存储的方式不一样,它是以键值对的方式存放多个对象的。
Set和List又有区别,Set中的元素无序且不重复,而List中的元素则是有序且允许重复的。
Set、List、Map等都是接口类,定义的是规范,具体使用时,还是需要其实现类的实例。一般我们见的比较多的就是HashSet、TreeSet、ArrayList、LinkedList、HashMap、Vector、HashTable。
Set:HashSet、TreeSet
HashSet和TreeSet的区别是什么?
HashSet:HashSet中的元素是无序的,集合元素可能是null,但只能放入一个null。当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法。其规则是如果两个对象通过equals方法比较返回true时,其hashCode也应该相同。另外,对象中用作equals比较标准的属性,都应该用来计算hashCode的值。
TreeSet:TreeSet是SortedSet接口的唯一实现类。TreeSet中的元素是自动排好序的,不允许放入null值。
注:两个set中元素都不能重复。
List:ArrayList、LinkedList
Map:HashMap
(3)JVM的作用
a.一次编译,处处运行
b.自动完成内存的分配和回收
(4)关于String
java中字符串对象创建有两种方式,一种为字面量形式,如String str=“droid”;另一种就是使用new这种标准的构造对象的方法,如
String str = new String("adroid");
当代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用。
当我们使用new来构造字符串对象的时候,不管字符串常量池中有没有相同的对象的引用,新的字符串都会在堆中被创建。
(5)线性表有哪些?
线性表是一个序列,即它的元素是有顺序的,第一个元素没有前驱元素,最后一个元素没有后继元素,其他的元素都有一个前驱元素和后继元素。
java中线性表包括数组、ArrayList、Vector、LinkedList
(6)关于对Hadoop的理解
五、美团实习(北京)二面
1、二维数组的大小固定,每次向数组的左上角和右下角放入值,怎么统计每次放入值后数组中所有数的和?
2、IOC的底层原理,以及IOC和工厂方法模式的联系?
3、Spring事务的底层原理?
4、写sql语句,输出1月到5月每个月有多少天?(面试官说group by 用的不对)
5、int a 和 int b的hashcode一样吗?
我说一样,面试官说不一样。
6、说一下拆箱和装箱
7、测试自己系统QBS,即最大高并发量是多少?
8、你在什么情况下会用到equals和hashcode?
9、mysql数据库的两种执行引擎,Myisam和Innodb的区别?
10、创建多线程有几种方式?区别是什么?
答三种,Runnable、Thread、Callable
11、数据库的索引作用?为什么快?为什么使用B+树,而不是使用红黑树什么的?
答因为稳定
12、怎么样使一个线程在其他线程执行完之后再执行?
用join()方法。
13、你应用spring,感觉IOC有哪些不方便的地方?
14、sleep和wait的区别?
15、spring事务的底层实现原理?
六、贝壳找房(链家网)(offer)
1、一面
(1)数据库索引有哪些?主键索引和唯一索引的区别?
(2)http1.0和http1.1的区别?
答:HTTP中常用的有两个版本,一个是HTTP1.0,另一个是HTTP1.1。在HTTP1.0中每一个命令和应答都会触发一次TCP连接的建立和断开。而从HTTP1.1开始,允许在一个TCP连接上发送多个命令和应答,从而,大量减少了TCP连接的建立和断开操作,从而也提高了效率。
(3)画三次握手,四次分手的图?
(4)写代码,数的前序遍历?
(5)算法题:对于一个链表,不知道头结点,如何删除一个中间节点?
(6)mysql数据库隔离级别?
(7)innodb执行引擎和MyIsAm执行引擎的区别?
(8)写sql语句,借书表,学生表,书籍表,统计出所借书的总数大于2的学生id和学生姓名。
(9)AOP的底层实现原理。
2、二面
(1)对于一个数组,请找出数组中所有和为k的数对并输出。(时间复杂度需为O(n))。
(2)int类型和String类型的hashCode分别是什么?
(3)String在内存模型中是怎么样存储的?
3、三面
(1)你想加入一个什么样的团队?
(2)你认为你是一个很努力的人吗?
七、百度智能云
1、一面
(1)四次挥手是什么?timewait状态在哪个阶段进入?四次挥手编写中,java程序中的函数调用(一般是系统函数,涉及到socket编程,没答上)
(2)IOC和AOP是什么?AOP底层实现原理?
(3)redis的zsort数据类型?
sorted set中的每一个元素一个分数(score),用于排序
(4)redis和memcache的区别?
(5)数据库索引的实现原理?B+树和红黑树的区别?
(6)java多线程,执行interrupt()方法后会发生什么?对于抛出异常后,若一直没有人处理,异常会一直一直向上抛,最后会怎么办?
(7)java多线程,执行sleep()函数后会发生什么?
(8)算法一:将句子反转,但是每个单词不能反转(可以利用二次反转);
算法二:查找带环链表的入口节点。
2、二面
(1)说一说JVM内存模型(我说的好像都不是他想要的)。
(2)mysql数据库中的数据都存储在磁盘(外存),redis中的数据存储在内存(他的意思是这样是不对的)。
(3)算法题,有一个字符串数组,统计数组中出现次数在前k名的字符串?如果数据量太大,内存放不下怎么办?
(4)问项目
(5)BIO,NIO和AIO的区别?
(6)redis的垃圾回收机制
八、杭州阿里
1、一面
(1)说说你从大学到研究生期间所有的成就
(2)问项目
(3)JDK8有哪些特性?
(4)看过AOP和IOC的源码吗?
(5)开发的流程?测试的流程?(我想到的,她都说不对)
(6)怎么样测试高并发秒杀系统的QBS?
集群、CyclicBarrier
(7)mybatis的Mapper中sql语句中参数用什么符号?
答:用‘#’号。
他说用‘#’号和用'%'都可以,问区别是什么?
答:不知道
(8)memcache和redis的区别?
(9)算法题,有一个字符串(好多个ip地址)数组,统计数组中出现次数在前k名的字符串?如果数据量太大,内存放不下怎么办?如果要测试这个程序应该怎么样测试?
答:遍历字符串数组,将字符串作为key,它出现的次数作为value,利用HashMap存储各个字符串出现的次数,最后对字符串出现的次数降序排序,输出前k个字符串即可。
可以用Hadoop,根据word count,先map,再reduce,统计每个字符串出现的次数。将最后的结果输出,然后进行排序,得到最后所需要的字符串。
(10)TCP了解多少?
(11)JVM中的GC算法?
九、京东
1、试探面
(1)HashMap的底层实现原理?put操作是如何是实现的?、
答:数组加链表,put操作是,根据key的hashcode映射到相应的桶号,遍历相应的链表,如果存在相同的key,则用新值代替旧值,并返回旧值,否则将新的Entry对象插入到链表的头部。
(2)mysql数据库的执行引擎有哪些?有什么区别?
(3)事务的4个特性分别是什么?
(4)UDP和TCP的区别?
(5)session和cookie的区别?
(6)你的手里还有没有其他的offer?
如实说,尽量不要说公司的名字和具体薪资
(7)快速排序的过程?时间复杂度是多少?
答:将数据的第一个元素作为关键字,将比关键字小的元素放在关键字的左边,将比关键字大的元素放在关键字的右边,分别对这两部分继续进行排序,直到整个序列有序。
2、一面
(1)数据库索引都有哪些?问:知道联合索引吗?
答:不知道
(2)怎么样添加索引?例如select * from student where stu=1;
答:不知道
(3)知道哪些锁?
(4)知道的排序算法都有哪些?
(5)JVM垃圾回收算法有哪些?
(6)CMS收集器和G1收集器?
(7)SpringMVC中什么部分用到了什么设计模式?
(8)final类型的HashMap中,元素能不能改变?
final定义的list和map中添加操作并不是修改原有变量的内存指向地址,只是给这个地址中增加了更多的值而已。但是final String s ="123" s = " 456"; 这等于指向了两个内存地址。 final的意思是不可变最终的 是指他内存中所指向的内存地址是不可变是最终的
答:MVC设计模式,追问MVC分别都是什么?
IOC工厂方法模式,AOP中由JDK动态代理和Cglib动态代理实现
是否有单例模式?答:有,关于spring bean方面(这方面有待深入了解)
(8)有没有真正实现过什么的设计模式?遇到的困难是什么?
(9)项目中遇到的难点是什么?
(10)HashMap和Treemap的区别?红黑树的底层实现原理是怎么样的?
(11)数据库的表联结?inner join是先笛卡尔积,再执行join操作。笛卡尔积很麻烦,怎么样可以跳过笛卡尔积操作?
答:我们在进行表连接查询的时候一般都会使用JOIN xxx ON xxx的语法,ON语句的执行是在JOIN语句之前的,也就是说两张表数据行之间进行匹配的时候,会先判断数据行是否符合ON语句后面的条件,再决定是否JOIN。
因此,有一个显而易见的SQL优化的方案是,当两张表的数据量比较大,又需要连接查询时,应该使用 FROM table1 JOIN table2 ON xxx的语法,避免使用 FROM table1,table2 WHERE xxx 的语法,因为后者会在内存中先生成一张数据量比较大的笛卡尔积表,增加了内存的开销。
3、二面
(1)说项目?问项目具体的代码实现细节?
记不太清。。。后悔做过项目后,没有好好看项目,哭哭哭哭哭
他说redis中存储不应该是一条记录,而是所有的秒杀产品,因为mysql数据库不能许多用户同时访问,mysql的QBS也就几百左右。
(2)什么是乐观锁和悲观锁?
(3)什么是事务?
答:事务的四个特性
(4)怎么样实现生产者和消费者模式?
答:用阻塞队列。
问:除了阻塞队列,还有没有其他的实现方法?
答:不知道
问:用notify和wait怎么实现生产者-消费者?
答:用一个信号量,他说需要用两个信号量,一个信号量标识空,另一个信号量标识满。
(5)有两个操作在两个独立的系统中,所以不能用事务,怎么样保证这两个独立操作的一致性?
答:两个系统之间相互通信,像TCP三次握手那样,进行相互确认。他说差不多,在不同的系统中,若要真正的保持一致性,有些困难。
(6)HashMap和HashTable的区别?
(7)get和post的区别是什么?
I:GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源。
II:GET是幂等的,即读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求对资源的改变并不是相同的;进一步的,GET不会改变服务器上的资源,而POST会对服务器的资源进行改变。
III:GET请求的数据会附在URL之后,即将请求数据放置在HTTP报文的请求头中,以?分割URL和传输数据,参数之间以&相连。特别地,如果数据是英文字母/数字,原样发送;否则,会将其编码为application/x-www-form-urlencoded MIME 字符串(如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII);而POST请求会把提交的数据则放置在是HTTP请求报文的 请求体 中。
IV:POST的安全性要比GET的安全性高,因为GET请求提交的数据将明文出现在URL上,而POST请求参数则被包装到请求体中,相对更安全。
V:GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的。
(8)是否用过springboot?
十、上海爱数公司
1、一面
(1)你知道哪些linux命令?
(2)说一说jdk、jre和jvm?
JVM就是我们常说的java虚拟机,它是Java实现跨平台最核心的部分,所有的java程序会首先被编译为class字节码文件,该文件可以在虚拟机上被执行,也就是说class文件并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
JRE与JVM、JDK的区别_jre jse_我是小傻瓜的博客-CSDN博客
(3)说一说数据库的范式?
(4)说一说项目中遇到的难点?
(5)了解哪些新科技?例如云计算、人工智能、大数据
2、二面
(1)mysql数据库String类型字段的索引是用什么算法实现的?
(2)
十一、中兴
1、一面
(1)将你所有的项目都说一下(本科做的陶瓷项目没有准备,说的很乱!)
(2)数据库索引是用什么实现的?什么是B+树?除了叶子节点外,其他节点存储数据吗?
答:B+树。
(3)做过哪些多线程的东西?
写过生产者-消费者模式
(4)说说JVM的五个区?哪些是线程共享的?
(5)java源码中,哪些方法是native的?
十二、猫眼娱乐
1、Thread和Runnable的区别?
只能继承一个Thread,可以实现多个Runnable.
使用时,Runnable实现类的对象作为Thread对象的参数。
使用Thread的时候是这样调用的:
new MyThread().start();
new MyThread().start();
而使用Runnable的时候是这样调用的:
new Thread(m).start();
new Thread(m).start();
m是Runnable实现类的对象。
2、mybatis中#和$的区别?
3、事务默认使用哪种隔离级别?
重复读是 MySQL 的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。
4、常用的设计模式有哪些?
代理模式、观察者模式、单例模式、工厂方法模式、适配器模式
说太少了
5、String为什么是不可变类?
final修饰
6、写一个单例模式?
写错。。。
7、多线程中,run()函数和start函数的区别?
(1)start()方法来启动线程,真正实现了多线程运行。这时无需等待run方法体代码执行完毕,可以直接继续执行下面的代码;通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的。这里方法run()称为线程体,它包含此线程要执行的内容,run方法执行结束,此线程终止。然后CPU再调度其他线程。
(2)run()方法当作普通方法的方式调用的时候。程序还是要顺序执行,要等待run方法体执行完毕后,才可继续执行下面的代码。程序中只有主线程这一个线程,其程序执行路径只有一条,这样就没有达到多线程的目的。
记住:多线程是分时利用CPU,宏观上让所有线程一起执行,也叫并发。
十三、快手一面
1、什么时候会进行重排序?
2、sychronized的底层实现原理?
3、redis分布式?
4、redis的RDB为什么降低redis的效率?
5、sychronized在1.6之后的改进?
6、LinkedList有关特性?
7、happen-before是什么?
说涉及到7、8条说明
8、内存漏洞是什么?
9、volatile为什么是不用加锁的?
10、java实现同步,除了加锁外还有什么?
threadlocal、countdownlatch
11、Hadoop细节?
12、算法:反转链表
13、java内存都有哪些?注意不是jvm内存
十四、秒针面试(offer)
1、一面
(1)说项目
(2)手写算法题
输入 :
A B(表示A赢B)
C D(表示C赢D)
...........
输入一个查询项(例如A),输出所有A赢的人和所有赢A的人。
思路:
利用两个HashMap
(3)算法题
给出三个文件,每个文件中都有好多的字符串,输出在三个文件中都出现过的字符串(无论在一个文件中出现几次,只要出现过一次,就算出现过)。
思路:
依次读入三个文件,将字符串出现的次数存在一个HashMap里,字符串作为key,字符串出现的次数作为value,只要字符串在一个文件中出现过,字符串对应的出现次数就加一。最后,输出所有出现次数为3的字符串。
进一步升级:如果文件很大,内存中装不下一个文件,怎么办?
思路:每读入文件中的一个字符串,就用该字符串的hash值对10取余,将该字符串和该字符串原来所在的文件编号放入相应的新文件中,这样三个文件中的字符串就存入到了10个文件中,并且相同字符串一定爱同一个文件中。扫描每个新文件,将三个旧文件标号都有的字符串输出即可。
(4)概率题
一台机器,一年出故障的概率是0.64,请问前半年正常,后半年出故障的概率是多少?
设一个变量x:
(1-x)+(1-x)*x = 0.64,解出x后即是最后的解。
第一年没出故障,第二年出故障的概率是多少?
(1-0.64)+0.32 * 0.64
2、二面
(1)java,生成对象实例除了new外,还有哪些方法?
I、利用反射机制,CreateInstance instance = CreateInstance.class.newInstance();
II、对象是通过ObjectInputStream类的readObject()方法创建的,那么Java虚拟机通过从输入流中读入的序列化数据来初始化那些非暂时性(non-transient)的实例变量。
III、利用clone方法
无论何时我们调用一个对象的clone方法,jvm就会创建一个新的对象,将前面对象的内容全部拷贝进去。用clone方法创建对象并不会调用任何构造函数。
要使用clone方法,我们需要先实现Cloneable接口并实现其定义的clone方法。
public class CloneTest implements Cloneable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public CloneTest(String name, int age) {
super();
this.name = name;
this.age = age;
}
public static void main(String[] args) {
try {
CloneTest cloneTest = new CloneTest("wangql",18);
CloneTest copyClone = (CloneTest) cloneTest.clone();
System.out.println("newclone:"+cloneTest.getName());
System.out.println("copyClone:"+copyClone.getName());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
执行
newclone:wangql
copyClone:wangql
(2)说一说类加载机制
(3)算法(说思路)
leetcode-----longest valid parentheses(最长有效括号长度)
(4)怎么样解决秒杀项目中,秒杀地址暴露的问题?项目还能再怎么优化?
(5)valitile怎么保证可见性?
(6)用过哪些数据结构?
(7)sychronized和ReetrantLock的区别?
(8)HashMap底层实现原理?
(9)JVM是怎么验证class文件是否有错误的?
(10)java,反射是怎么样生成对象的?
3、三面
(1)你感觉你的家庭怎么样?你感觉你的父母都是什么样的人?对你有什么影响?
(2)你感觉吉林大学和东北大学差的多吗?
(3)说说上午面试的体验,感觉面试官怎么样?
(4)老师为什么不让出去实习?
(6)现在都拿了什么offer?
(7)你感觉你高考没考好吗?
(8)家里都有什么人?父母都是干什么工作的?
十五、猿辅导
1、一面
(1)自我介绍
(2)说高并发秒杀项目,这个项目是实际应用的,还是自己练手的?
(3)手写代码:
用一个容量为100的数组实现一个队列?
思路:
为了从队头删除元素时,不频繁的移动元素,维护两个计算器insert和delete,分别记录下一个元素要插入的位置和要删除的元素。
(4)说社区检测项目,该项目的并行方法和其他并行方法(pscan)有什么不同?
十六、用友面试(offer)
1、一面
(1)说说Spring中都有哪些注解?
(2)从maven到最后,怎么样在pom.xml中和其他配置文件中配置mybatis相关的东西的?
没说好
(3)事务ACID都是什么?
(4)redis中的数据在关机后就消失了吗?
是要考虑redis持久化相关的知识,redis持久化包含RDB和AOF两种方式。
(5)说说Hadoop都了解哪些?
(6)除了mybatis外,还有哪些持久化框架?
知道hibernate,但是没有用过。
(7)面试官:说一说你的高并发秒杀项目?说说怎么测试该系统的高并发性的?
我:感觉面试官对这个项目比较感兴趣,答用Jmeter测试。
面试官:除了用Jmeter测试外,还可不可以用别的方式进行测试系统的高并发性?
我:没想出来。。。。。。
面试官:传统的使用ajax进行访问秒杀方法,我们可以用一个java程序访问秒杀方法。
面试官:mysql的高并发量比较小,所以应将把所有的商品信息放入redis数据当中。
(8)面试官:一个tomcat的访问量比较小,如何应用多个tomcat,处理多个请求?
我:不知道。。。。。。。
面试官:可以利用Apache或者nginx,将不同用户发来的请求分配到多个tomcat进行处理?
Apache:
全球应用最广泛的http服务器,只支持静态网页,比如asp、PHP等动态网页不支持。免费。
Nginx:
定义:Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。也是由于它的特性,其应用非常广。
主要功能:反向代理。
正向代理:在某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。
反向代理:是用来代理服务器的,代理我们要访问的目标服务器。大力服务器接受请求,然后将请求转发给内部网络的服务器(集群化)。并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。
Nginx在反向代理上,提供灵活的功能,可以根据不同规则采用不同的转发策略,设置好后,不同的请求就可以走不同的服务器。
负载均衡:多在高并发的情况下使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。
Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)
、 动静分离:Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。Nginx可以根据配置对不同的请求做不同转发,这是动静分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。
(9)建议看58沈剑的关于高并发的博客,其博客名称为“架构师之路”。
(10)建议每学到新知识,都要坚持写博客,这会成为以后宝贵的财富。要注意对博客进行分类。
(11)当多个用户同时秒杀某一商品,读到的商品数量都为1,同时进行减库存的的操作。如何解决这种超卖的问题?
队列或者是乐观锁
2、二面(hr面)
(1)经历过最悲伤的事
(2)现在拿到几个offer
(3)用一分钟介绍自己
(4)你感觉自己比较好的数学逻辑思维是怎么样培养起来的?
(5)你的兴趣爱好?跑步是每天都跑吗?读过哪些书?
(6)你有什么想问我的?
(7)你的理想薪资是多少?
(8)你同学用两个字来评价你,会说什么?
十七、京东
1、电话一面
(1)说项目
(2)java虚拟机5个分区
(3)关于String字符串的存储位置
(4)你有什么问题想问我的?
(5)建议,做实验时,用真实的数据集,比较有说服力。
2、电话二面
(1)JVM怎么调优?
(2)