蚂蚁-全球技术2022春招实习一面(凉经)
3.16已投 3.16测评 3.25日(星期五)9:00-11:00笔试
蚂蚁集团-支付宝事业线-商家开放技术 3.23 电话一面(过) 4.2约二面(拒绝)
蚂蚁集团-支付宝事业线-数字行业事业部 4.7约一面(拒绝)
蚂蚁集团-国际事业群-全球技术 4.12约一面 4.13 19:00 4.14挂(70分钟终极kpi面)
1.自我介绍
2.复盘笔试两道题,第一题过,谈到了Set?
3.你知道的Java集合中有哪些Set?(HashSet,SortedSet)HashSet底层原理是什么?SortedSet原理呢?
4.HashMap和HashTable和ConcurrentHashMap?
5.为什么会弃用HashTable而改用ConcurrentHashMap,主要体现在哪里?
6.HashMap是怎么进行扩容的?
7.谈到HashMap在JDK1.8之后的变化。为什么要使用红黑树?红黑树的结构是什么样的?
8.HashMap在进行扩容之后红黑树内部会进行调整吗?红黑树和平衡二叉树有什么异同?
9.回到笔试第二题,有五个数,每次找其中四个数-1,直到不满足同时有四个数可以减为止,问一共需要多少次?笔试完没有再研究?
10.简述一个项目和主要在里面负责的部分?
11.项目中用到的数据库是什么?数据库的引擎是什么?
12.InnoDB中的索引结构是什么?B+树和B树有什么区别?B+树做索引的好处?
13.那聚簇索引和非聚簇索引有什么区别?非聚簇索引是怎么走的?它存的是什么?
14.数据库的事物?ACID?
15.持久性是怎么保证的?(内存+redo log)
16.说一下redo log,undo log,binlog?
17.事物的隔离级别?RU和RC区别,解决了什么问题?RC和RR区别,解决了什么问题?
18.项目中数据库用到的什么隔离级别?那传播行为呢?
19.了解线程池吗?线程池有什么参数?
20.synchronized和volatile的区别?
21.Java的static方法用synchronized和实例方法用synchronized有什么区别?
21.1 现在用synchronized给一个静态代码块加锁,同时用两个线程去访问,会互斥吗?
21.2 用synchronized给一个对象中的非静态方法加锁,每次调用完Thread.sleep 五秒,会互斥吗?
1.Java的static方法用synchronized和实例方法用synchronized有什么区别?
Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。
1-1 同一个对象在两个线程中分别访问该对象的两个同步方法,互斥
因为锁针对的是对象,当对象调用一个synchronized方法时,其他同步方法需要等待其执行结束并释放锁后才能执行。
1-2 不同对象在两个线程中调用同一个同步方法,不会互斥
因为是两个对象,就相当于两个大房子,彼此之间互不干扰,具有两把钥匙。锁针对的是对象,并不是方法,所以可以并发执行,不会互斥。形象的来说就是因为我们每个线程在调用方法的时候都是new 一个对象,那么就会出现两个空间,两把钥匙。
Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。
2-1 用类直接在两个线程中调用两个不同的同步方法,互斥
因为对静态对象加锁实际上对类(.class)加锁,类对象只有一个,可以理解为任何时候都只有一个空间,里面有N个房间,一把锁,因此房间(同步方法)之间一定是互斥的。
2.同一个对象在两个线程调用synchronized修饰的static方法和用synchronized实例方***阻塞吗?
不会,因为锁的对象是不一样的,一个锁的类对象,一个是实例对象。