自己真实经历过面试题

一、杭州网易游戏

(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)

     

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值