-
Notifications
You must be signed in to change notification settings - Fork 2
/
txt.txt
658 lines (532 loc) · 33 KB
/
txt.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
HashMap什么对象能做为key? 重写过hashCode和equals的对象,才能做为key
hashtable,concurrentHashMap,hashtable比较
如何用Java分配一段连续的1G的内存空间?需要注意些什么?
Servlet的生命周期?
countLatch的await方法是否安全,怎么改造
=======================================================================================================
=======================================================================================================
=======================================================================================================
=======================================================================================================
=======================================================================================================
=======================================================================================================
=======================================================================================================
producer-consumer 笔试
两线程交替打印 笔试
多线程模拟100分钱随机分给20个人,每个人最少分配到2分钱 笔试
ElasticSearch的查询过程
· 使用两种命令创建一个文件?
· 硬链接和软链接的区别?
· Linux常用命令有哪些?
· 怎么看一个Java线程的资源耗用?
· Load过高的可能性有哪些?
· /etc/hosts文件什么做用?
· 如何快速的将一个文本中所有“abc”替换为“xyz”?
· 如何在log文件中搜索找出error的日志?
· 发现磁盘空间不够,如何快速找出占用空间最大的文件?
· Java服务端问题排查(OOM,CPU高,Load高,类冲突)
· Java常用问题排查工具及用法(top, iostat, vmstat, sar, tcpdump, jvisualvm, jmap, jconsole)
· Thread dump文件如何分析(Runnable,锁,代码栈,操作系统线程ID关联)
· 如何查看 Java 应用的线程信息?
常用设计模式,策略模式的原理和应用
hashset
线程数 3个核心 8个最多 5个怎么创建
mybatis 一二级缓存
dobbuo
给定 n 个节点,以及每个节点上的一个数值,如果两个节点数值的最大公约数大于 1,那么在这两个点之间连一条边。求这个图的最大连通分量的节点个数。
100层楼,给两颗鸡蛋,找到鸡蛋在哪层会破。
接雨水
二叉树转双向链表
按层打印二叉树--每行打印一层
反转链表按 k
最长重复子串
数组值为 1-n,各出现一次,先加入 x(x 也是 1-n 的范围),找出 x
智力题:给十桶乒乓球(每桶中乒乓球数量无限),有一个桶的球重9g,其余桶均为10g。找到9g的那桶要测几次,如何测?
逻辑题:岛上n个人,有人红帽有人白帽,每人只能看到别人头上的帽子,且彼此不能交流,如若确认自己是红帽子的话可以离开岛。有经过的渔民说了一句“你们中至少一人是红帽!”请问接下来发生什么情况?
Linux的基本系统指令
Mybatis 的底层实现原理
分布式相关
Dubbo 的底层实现原理和机制
Dubbo 的原理,数据怎么流转的,怎么实现集群,负载均衡,服务注册和发现。重试转发,快速失败的策略是怎样的。
Dubbo 的服务请求失败怎么处理
一次 RPC 请求的流程是什么
1)服务消费方(client)调用以本地调用方式调用服务;
2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
3)client stub找到服务地址,并将消息发送到服务端;
4)server stub收到消息后进行解码;
5)server stub根据解码结果调用本地的服务;
6)本地服务执行并将结果返回给server stub;
7)server stub将返回结果打包成消息并发送至消费方;
8)client stub接收到消息,并进行解码;
9)服务消费方得到最终结果。
描述一个服务从发布到被消费的详细过程
分布式系统怎么做服务治理接口的
重连机制会不会造成错误
对分布式事务的理解
幂等性的概念
如何实现负载均衡,有哪些算法可以实现?
Zookeeper 的用途,选举的原理是什么?
zookeeper 原理和适用场景
zookeeper watch 机制
redis/zk 节点宕机如何处理
如何做一个分布式锁
zookeeper 的有序节点和 redis
分布式集群下如何做到唯一序列号:
雪花算法 github 已整理
Redis生成,mongodb 的 objectId,zk生成
http://www.cnblogs.com/haoxinyue/p/5208136.html
用过哪些 MQ,怎么用的,和其他 mq 比较有什么优缺点,MQ 的连接是线程安全的吗
nginx upstream 的 failover 机制
算法和数据结构以及设计模式
海量 url 去重类问题(布隆过滤器)
数组和链表数据结构描述,各自的时间复杂度
二叉树遍历
快速排序
BTree相关的操作
在工作中遇到过哪些设计模式,是如何应用的
hash 算法的有哪几种,优缺点,使用场景
数据库
MySQL InnoDB 存储的文件结构
索引树是如何维护的?
数据库自增主键可能的问题
MySQL 的几种优化
mysql 索引为什么使用B+树
数据库锁表的相关处理
索引失效场景
高并发下如何做到安全的修改同一行数据,乐观锁和悲观锁是什么,INNODB 的行级锁有哪2种,解释其含义
数据库会死锁吗,举一个死锁的例子,mysql 怎么解决死锁
实际场景问题,海量登录日志如何排序和处理SQL操作,主要是索引和聚合函数的应用
其他
maven 解决依赖冲突,快照版和发行版的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版 本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。release版本不允许修改,每次进行release版本修改,发布必须提升版本号。而snapshot一般是开发过程中的迭代版本,snapshot更新后,引用的项目可以不修改版本号自动下载构建。
maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件的版本号,可这样就明显不 符合要求和实际情况了。但是,如果是基于快照版本,那么问题就自热而然的解决了,而maven已经为我们准备好了这一切。
maven2会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在 mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务 器上下载。
所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom文件提示版本号来下载新的版本,直接mvn执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发,也不冲突MAVEN的版本管理原则。例如:
<dependency>
<groupId>com.xxx.yyy</groupId>
<artifactId>xxxxxxx</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
常见的缓存策略有哪些,你们项目中用到了什么缓存系统,如何设计的
设计一个秒杀系统,30分钟没付款就自动关闭交易(并发会很高)
分流 – 限流–异步–公平性(只能参加一次)–用户体验(第几位,多少分钟,一抢完) 容错处理
http://www.infoq.com/cn/articles/yhd-11-11-queuing-system-design
请列出你所了解的性能测试工具、监控工具
后台系统怎么防止请求重复提交?
常见的缓存策略有哪些,你们项目中用到了什么缓存系统,如何设计的
Cdn缓存,redis缓存,ehcache缓存等
Cdn 图片资源 js等, redis一主一从 echcache缓存数据
用 java 自己实现一个 LRU。
final int cacheSize = 100;
Map
分布式事务的原理,优缺点,如何使用分布式事务
Two Phase commit协议,优点是可以管理多机事务,拥有无线扩展性 确定是易用性难,承担延时风险,JTA,atomiks等
https://yq.aliyun.com/webinar/join/185?spm=5176.8067841.0.0.RL4GDa
什么是 restful,讲讲你理解的 restful
http://baike.baidu.com/link?url=fTSAdL-EyYvTp9z7mZsCOdS3kbs4VKKAnpBLg3WS_1Z4cmLMp3S-zrjcy5wakLTO5AIoPTopWVkG-IenloPKxq
如何设计建立和保持 100w 的长连接
服务器内核调优(tcp,文件数),客户端调优,框架选择(netty)
解释什么是 MESI 协议(缓存一致性)
MESI是四种缓存段状态的首字母缩写,任何多核系统中的缓存段都处于这四种状态之一。我将以相反的顺序逐个讲解,因为这个顺序更合理:
失效(Invalid)缓存段,要么已经不在缓存中,要么它的内容已经过时。为了达到缓存的目的,这种状态的段将会被忽略。一旦缓存段被标记为失效,那效果就等同于它从来没被加载到缓存中。
共享(Shared)缓存段,它是和主内存内容保持一致的一份拷贝,在这种状态下的缓存段只能被读取,不能被写入。多组缓存可以同时拥有针对同一内存地址的共享缓存段,这就是名称的由来。
独占(Exclusive)缓存段,和S状态一样,也是和主内存内容保持一致的一份拷贝。区别在于,如果一个处理器持有了某个E状态的缓存段,那其他处理器就不能同时持有它,所以叫“独占”。这意味着,如果其他处理器原本也持有同一缓存段,那么它会马上变成“失效”状态。
已修改(Modified)缓存段,属于脏段,它们已经被所属的处理器修改了。如果一个段处于已修改状态,那么它在其他处理器缓存中的拷贝马上会变成失效状态,这个规律和E状态一样。此外,已修改缓存段如果被丢弃或标记为失效,那么先要把它的内容回写到内存中——这和回写模式下常规的脏段处理方式一样。
说说你知道的几种 HASH 算法
一个在线文档系统,文档可以被编辑,如何防止多人同时对同一份文档进行编辑更新
点击编辑的时候,利用redis进行加锁setNX完了之后 expire 一下,也可以用版本号进行控制,
线上系统突然变得异常缓慢,你如何查找问题
逐级排查(网络,磁盘,内存,cpu),数据库,日志,中间件等也可通过监控工具排查。
算法:
八皇后问题,火车接龙, 高考分数线,5人抢答题概率,丢手绢问题
可能性,二叉树,递归,路径,排序,查找几个重点
实际场景问题解决,典型的 TOP K 问题
10 亿个数字里里面找最小的 10 个。
有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优。
2 亿个随机生成的无序整数,找出中间大小的值。
给一个不知道长度的(可能很大)输入字符串,设计一种方案,将重复的字符排重。
遍历二叉树。
有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,怎么找出来。
写一个字符串反转函数。
常用的排序算法,快排,归并、冒泡。快排的最优时间复杂度,最差复杂度。冒泡排序的优化方案。
二分查找的时间复杂度,优势。
一个已经构建好的 TreeSet,怎么完成倒排序。
什么是 B+树,B-树,列出实际的使用场景。
JAVA中的几种基本类型,各占用多少字节?
String, Stringbuffer, StringBuilder 的区别
Stringbuffer, StringBuilder 的 toString 方法
ArrayList 和 LinkedList 区别
有没有有顺序的 Map 实现类, 如果有, 他们是怎么保证有序的
TreeMap和LinkedHashMap是有序的(TreeMap默认升序,LinkedHashMap则记录了插入顺序)
抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象
接口可继承接口,并可多继承接口,但类只能单根继承
继承和聚合的区别在哪
继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;
nio 和 bio 的区别是啥,谈谈 reactor 模型
IO是面向流的,NIO是面向缓冲区的
为什么 CGlib 方式可以对接口实现代理
单例模式实现
public、private、protected、default 在应用设计中的作用
private:Java 语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以 及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect:介于 public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、 属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
请列出 5 个运行时异常
ClassCastException 类转换异常
IllegalArgumentException 非法参数异常
IndexOutOfBoundsException 数组越界异常
NullPointerException 空指针异常
ArrayStoreException 数据存储异常
java.lang.Object 对象中 hashCode 和 equals 方法的理解。在什么场景下需要重新实现这两个方法?如何在父类中为子类自动完成所有的 hashcode 和 equals 实现?这么做有何优劣?
Object 类中 equals 方法的实现:return (this == obj);比较的是二者的引用是否是同一个,如果业务需求中需要别的手段来判断二者实例是否同一个的时候,那么可以考虑重写equals方法,同时重写 hashcode 方法。
覆盖equals时总要覆盖hashCode,一个很常见的错误根源在于没有覆盖hashCode方法。在每个覆盖了equals方法的类中,
也必须覆盖hashCode方法。如果不这样做的话,就会违反Object.hashCode的通用约定,从而导致该类无法结合所有基于散列的集合一起正常运作,这样的集合包括HashMap、HashSet和Hashtable。
在应用程序的执行期间,只要对象的equals方法的比较操作所用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法都必须始终如一地返回同一个整数。
如果两个对象根据equals()方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果。
如果两个对象根据equals()方法比较是不相等的,那么调用这两个对象中任意一个对象的hashCode方法,则不一定要产生相同的整数结果。但是程序员应该知道,给不相等的对象产生截然不同的整数结果,有可能提高散列表的性能。
泛型的存在是用来解决什么问题
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。
HashSet 如何工作的
继承自HashMap,
private transient HashMap<E,Object> map;
private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
public HashSet() {
map = new HashMap<>();
}
自我介绍
讲一件你印象最深刻的事没事怎么解决的?
JAVA垃圾回收机制怎么工作的?
AOP是怎么实现的?
TCP/UDP的区别是什么?
MAP讲一下你对MAP的认识,然后谈一下HsahMap的性能,主要谈一下哈希冲撞
创造线程的几种方式,Thread和Runnable接口有什么区别?
说一下你做的聊天工具,如果遇到服务突然卡顿,怎么解决?
讲一下你对于Spring框架的了解
在Spring框架中如何更有效地使用JDBC?
你可以在Spring中注入一个null 和一个空字符串吗?
什么是Spring MVC?
Mysql数据库,索引是怎么使用的。
MySQL集群。假如集群出现延迟怎么处理。
你对分布式是否有所了解
你对数据结构了解么
浅析HashMap与ConcurrentHashMap的线程安全性
堆排序,快速排序
数据库的四大特征,数据库的隔离级别,
线程同步机制用的什么?当初为什么选择这个机制?
互斥和条件变量区别?互斥是阻塞的吗?当初为什么选择阻塞的机制?
JVM有哪三种垃圾回收器?
吞吐量优先选择什么垃圾回收器?响应时间优先呢?
如何进行JVM调优?有哪些方法?
如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?
从分布式系统部署角度考虑,分哪几层?
如何解决业务层的数据访问问题?
为了解决数据库服务器的负担,如何做数据库的分布?
线程池的底层实现以及常见的参数
数据结构基本都问了一遍:链表、队列等
Java内存模型:常问的JVM分代模型,以及JDK1.8后的区别,最后还问了JVM相关的调优参数
分布式锁的实现比较
J.U.C下的常见类的使用。ThreadPool的深入考察; BlockingQueue的使用
Java内存分代模型,GC算法, JVM常见的启动参数; CMS算法的过程。
volatile关键字有什么用(包括底层原理)
线程池的调优策略
spring cloud的服务注册与发现是怎么设计的?
分布式系统的全局id如何实现
分布式锁的方案,redis和zookeeper哪个个好,如果是集群部署,高并发情况下哪个性能更好。
相关的技术实现细节
数据库相关:索引、索引底层实现、mysql相关的行锁、表锁等
redis相关:架构设计、数据一致性问题
容器:容器的设计原理等
参与的项目,选一个,技术难度在哪里?
Collections.sort底层排序方式
负载均衡的原理
设计模式与重构,谈谈你对重构的理解
谈谈Redis相关的集群有哪些成熟方案?
再谈谈-致hash算法(redis)?
数据库索引,B +树的特性和建树过程。
mysql相关的行锁,表锁;乐观锁,悲观锁
谈谈多线程和并发工具的使用
讲讲Redis的架构和组件
Redis的数据一致性问题(分布式多节点环境&单机环境)
docker容器
高并发情况下,系统是如何支撑大量的请求的?
接着上面的问题,延伸到了中间件,kafka、 redis、 rocketmq、 mycat等 设计思路和适用场景等
最近上过.上哪些技术站点; 最近在看哪些书。
工作和生活中遇见最大的挑战,怎么去克服?
未来有怎样的打算
常用的 JVM 调优的参数都有哪些?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
synchronized与lock的区别
JVM自动内存管理,Minor GC与Full GC的触发机制
了解过JVM调优没,基本思路是什么
如何设计存储海量数据的存储系统
缓存的实现原理,设计缓存要注意
淘宝热门商品信息在 JVM 哪个内存区域
操作系统的页式存储
Lucene全文搜索的原理
你觉得自己适合哪方面的开发,为什么
那么你说说Java锁有哪些种类,以及区别
Http请求的过程与原理
TCP连接的特点
TCP连接如何保证安全可靠的
AOP的
动态代理与cglib实现的区别(这个,醉得很厉害)
那么你说说代理的实现原理呗
了解过字节码的编译过程吗(这个还真不知道)
分布式session如何管理,你有哪些方案
说一下快排的过程,写一下伪代码
了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
第一道是给你一个 shell 命令,执行的功能大概就是读取一个日志文件,然后根据日志里的某一字段排序,然后取前五,输出。大概考点就是:1.你得读懂这个有cat、有awk、有sort等等猛地一看还挺长的shell命令;2.实现它;3.时空间复杂度/效率;4.讲清楚。
第二道题目是反转字符串,大概就是把字符串“123456789”从中间分开,然后分别反转,然后输出,输出结果是“432159876”。大概考点就是:1.实现它;2.时空间复杂度/效率;3.讲清楚;4.尝试给出优化方案;
如何保证redis高并发及高可用
如何保证缓存与数据库的数据一致性
redis有哪些数据类型,谈谈适用场景
Redis线程模型
分布式缓存的第一个问题
如何保证消息队列的高可用性
如何保证消息队列的顺序性
分布式搜索引擎的架构
分布式搜索引l擎Elastic Search的工作流程
消息队列面试技巧总结
Redis replicatin以及master持久化对主从架构的安全意义
再深入Redis Replication的完整执行流程及原理
Redis的哨兵架构
Redis哨兵主备切换的数据丢失问题
深入解析Redis哨兵底层原理
Redis的持久化机制
Redis集群模式的原理
说说如何应对缓存雪崩以及穿透问题
Dubbo负载均衡及动态代理的策略
聊聊Dubbo的SP机制
基于Dubbo的服务治理、服务降级以及重试
分布式服务接口的幕等性
分布式服务接口请求的顺序性
设一计个类似Dubbo的RPC框架
ZooKeeper的适用场景
Redis & ZooKeeper两种分布式锁实现的优劣
分布ESession方案的实现
分布式事务解决方案
高并发系统的架构设计
分库分表
设计可动态打容缩的分库分表
分库分表之后全局id的生成
MySQL读写分离及主从同步延时解决方案
Hystrix隔离策略细粒度控制
基于request cache请求缓存技术优化批量商品数据查询接口
select * from table t where size > 10 group by size order by size的sql语句执行顺序?
如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署)
SQL什么情况下不会使用索引(不包含,不等于,函数)
一般在什么字段上建索引(过滤数据最多的字段)
如何从一张表中查出name字段不包含“XYZ”的所有行?
如何解决高并发减库存问题
MySQL主备同步的基本原理。
MySQL InnoDB、Mysaim的特点?
算法,二进制求和
第K大的数
int表示的范围
抽象和接[的区别
Object的方法
integer和int缓冲区的问题-127--128
jvm分区新生代,老年代
快速排序讲讲
俩个文件,每个文件十亿个URL ,找到重复的URL ,设计方案!
多线程你怎么用,讲-下多线程运行机制以及每个步骤线程池的变化(源码没看过)
Collection接口下的类每一 个都介绍一 下(源码介绍)
synchronized是什么机制
指令重排的意思是什么,为什么这么做,提高了什么效率,你计算机组成原理是不是忘记了呢(是呢)
reetrantL ock实现原理, state是什么类型的数据
数据库隔离级别
你最近的学习有什么收获,比如看书之类的(会问细节的,比如每章讲了什么或者问- 下细节知识
因为你读过的他可能读过好几遍)
你去年在计算机技术上看过的或者收获的知识
你觉得你哪]课程比较好
(斗胆说了个计算机网络) ,你可以详细介绍一 下http协议的内容吗,还有浏览器服务器通信的时候各个层发生了什么
一面(问了数据结构、jvm、锁等):
自我介绍和项目
HashMap底层如何实现?
Hash一致算法?
说说HashMap和ConcurrentHashMap的区别?treemap和HashMap的区别?
java的内存分区?
java对象的回收方式,回收算法?
CMS和G1了解吗?
CMS解决什么问题,说一下回收的过程?
CMS回收停顿了几次?
java栈什么时候会内存溢出,java堆呢,说一种场景?
集合类如何解决这个问题(软引用和弱引用),讲下这个两个引用的区别?
java里的锁了解哪些?
synchronized锁升级的过程(偏向锁到轻量锁再到重量级锁),分别如何实现的,解决的是哪些问题?
Tomcat的基本架构是什么?
什么是类加载器?
说说双亲委派模型机制?
GC的机制是什么?GC算法和回收策略?
未来的职业规划?
二面(线程、数据库、缓存、协议等):
讲一下项目
线程池由哪些组件组成?
有哪些线程池,分别怎么使用?拒绝策略有哪些?
什么时候多线程会发生死锁,写一个例子?
Redis的数据结构是什么?线程模型说一下?
讲讲Redis的数据淘汰机制?
说说Redis的数据一致性问题?
Redis的分布式怎么做?
RPC讲一下?
三次握手和四次挥手?如果没有三次握手有问题吗?
Http请求过程,DNS解析的过程?
InnoDB支持的四种事务隔离级别名称是什么?有什么区别?说说MySQL隔离级别?
事务的特性及慢查询?
BTree机制说一下?
说说MySQL常用的优化方法?
三面(分布式,消息队列等):
自我介绍
cap了解吗,分别指什么?
强一致性和弱一致性有什么方法来实现的?
负载均衡怎么实现?为什么这么做?
缓存雪崩说下?
MySQL主从复制怎么实现的?具体原理是什么?有什么优缺点?
讲讲分布式事务?
消息队列,用到什么场景(削峰,限流,异步)?
zk的性能瓶颈怎么克服?
讲了下kafka,怎么保证数据不丢失?确保消息不会重复消费?
消息送达确认是怎么实现的?
四面(从项目讲起):
说了自己的项目
主要用到的架构,做了些什么?
比较复杂的业务逻辑讲一下?
遇到很难解决的问题和突破收货
以后的打算和未来的职业发展,谈谈自己的看法
并发编程:
什么是多线程并发和并行?
什么是线程安全问题?
什么是共享变量的内存可见性问题?
什么是Java中原子性操作?
什么是Java中的CAS操作,AtomicLong实现原理?
什么是Java指令重排序?
Java中Synchronized关键字的内存语义是什么?
Java中Volatile关键字的内存语义是什么?
什么是伪共享,为何会出现,以及如何避免?
什么是可重入锁、乐观锁、悲观锁、公平锁、非公平锁、独占锁、共享锁?
讲讲ThreadLocal 的实现原理?
ThreadLocal 作为变量的线程隔离方式,其内部是如何做的?
说说InheritableThreadLocal 的实现原理?
InheritableThreadLocal 是如何弥补 ThreadLocal 不支持继承的特性?
CyclicBarrier内部的实现与 CountDownLatch 有何不同?
随机数生成器 Random 类如何使用 CAS 算法保证多线程下新种子的唯一性?
ThreadLocalRandom 是如何利用 ThreadLocal 的原理来解决 Random 的局限性?
Spring 框架中如何使用 ThreadLocal 实现 request scope 作用域 Bean?
并发包中锁的实现底层(对AQS的理解)?
讲讲独占锁 ReentrantLock 原理?
谈谈读写锁 ReentrantReadWriteLock 原理?
StampedLock 锁原理的理解?
谈下对基于链表的非阻塞无界队列 ConcurrentLinkedQueue 原理的理解?
ConcurrentLinkedQueue 内部是如何使用 CAS 非阻塞算法来保证多线程下入队出队操作的线程安全?
基于链表的阻塞队列 LinkedBlockingQueue 原理。
JVM
Java 内存分配?
Java 堆的结构是什么样子的?
什么是堆中的永久代(Perm Gen space)?
简述各个版本内存区域的变化?
说说各个区域的作用?
Java 中会存在内存泄漏吗,简述一下?
Java 类加载过程?
描述一下 JVM 加载 Class 文件的原理机制?
什么是类加载器?
类加载器有哪些?
什么是tomcat类加载机制?
类加载器双亲委派模型机制?
什么是GC? 为什么要有 GC?
简述一下Java 垃圾回收机制?
如何判断一个对象是否存活?
垃圾回收的优点和原理,并考虑 2 种回收机制?
垃圾回收器的基本原理是什么?
垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
深拷贝和浅拷贝?
System.gc() 和 Runtime.gc() 会做些什么?
如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
什么是分布式垃圾回收(DGC)?它是如何工作的?
Spring
为什么需要代理模式?
讲讲静态代理模式的优点及其瓶颈?
对Java 接口代理模式的实现原理的理解?
如何使用 Java 反射实现动态代理?
Java 接口代理模式的指定增强?
谈谈对Cglib 类增强动态代理的实现?
point cut,advice,Join point是什么?
join point 和 point cut 的区别?
怎么理解面向切面编程的切面?
谈谈对SpringAOP Weaving(织入)的理解?
谈谈SpringAOP Introduction(引入)的理解?
讲解OOP与AOP的简单对比?
讲解JDK 动态代理和 CGLIB 代理原理以及区别?
讲解Spring 框架中基于 Schema 的 AOP 实现原理?
讲解Spring 框架中如何基于 AOP 实现的事务管理?
谈谈对控制反转的设计思想的理解?
怎么理解 Spring IOC 容器?
数据库
MySQL 有哪些存储引擎啊?都有什么区别?
Float、Decimal 存储金额的区别?
Datetime、Timestamp 存储时间的区别?
Char、Varchar、Varbinary 存储字符的区别?
什么是索引?
对比一下B+树索引和 Hash索引?
MySQL索引类型有?
如何管理 MySQL索引?
对Explain参数及重要参数的理解?
索引利弊是什么及索引分类?
二叉树的转置是什么?
聚簇索引和非聚簇索引的区别?
B+tree 如何进行优化?索引遵循哪些原则?存储引擎会进行哪些自动优化?到底何时索引会失效?
索引与锁有什么关系?
还有什么其他的索引类型,各自索引有哪些优缺点?
谈谈对Innodb事务的理解?
说说数据库事务特点及潜在问题?
什么是MySQL隔离级别?
有多少种事务失效的场景,如何解决?
缓存
redis数据结构有哪些?
Redis缓存穿透,缓存雪崩?
如何使用Redis来实现分布式锁?
Redis的并发竞争问题如何解决?
Redis持久化的几种方式,优缺点是什么,怎么实现的?
Redis的缓存失效策略?
Redis集群,高可用,原理?
Redis缓存分片?
Redis的数据淘汰策略?
redis队列应用场景?
分布式使用场景(储存session)?
网络编程
TCP建立连接和断开连接的过程?
HTTP协议的交互流程,HTTP和HTTPS的差异,SSL的交互流程?
TCP的滑动窗口协议有什么用?
HTTP协议都有哪些方法?
Socket交互的基本流程?
讲讲tcp协议(建连过程,慢启动,滑动窗口,七层模型)?
webservice协议(wsdl/soap格式,与restt办议的区别)?
说说Netty线程模型,什么是零拷贝?
TCP三次握手、四次挥手?
DNS解析过程?
TCP如何保证数据的可靠传输的?
分布式
什么是CAP定理?
说说CAP理论和BASE理论?
什么是最终一致性?最终一致性实现方式?
什么是一致性Hash?
讲讲分布式事务?
如何实现分布式锁?
如何实现分布式 Session?
如何保证消息的一致性?
负载均衡的理解?
正向代理和反向代理?
CDN实现原理?
怎么提升系统的QPS和吞吐?
Dubbo的底层实现原理和机制?
描述一个服务从发布到被消费的详细过程?
分布式系统怎么做服务治理?
消息中间件如何解决消息丢失问题?
Dubbo的服务请求失败怎么处理?
对分布式事务的理解?
如何实现负载均衡,有哪些算法可以实现?
Zookeeper的用途,选举的原理是什么?
讲讲数据的垂直拆分水平拆分?