京东Java工程师社招面经

1、手撕代码。牛客题霸上的原题,可以去看看:NC19 子数组的最大累加和问题

2、SpringIOC/AOP的实现

(1)IOC(控制反转)就是依赖倒置原则的一种代码设计思路。就是把原先在代码里面需要实现的对象创建、对象之间的依赖,反转给容器来帮忙实现。

(2)AOP底层实现原理:动态代理


3、Kafka的文件存储机制

Kafka中消息是以topic进行分类的,生产者通过topicKafka broker发送消息,消费者通过topic读取数据。然而topic在物理层面又能以partition为分组,一个topic可以分成若干个partitionpartition还可以细分为segment,一个partition物理上由多个segment组成,segment文件由两部分组成,分别为“.index”文件和“.log”文件,分别表示为segment索引文件和数据文件。这两个文件的命令规则为:partition全局的第一个segment0开始,后续每个segment文件名为上一个segment文件最后一条消息的offset值。


4、进程和线程

1)进程是操作系统资源分配的最小单位,线程是CPU任务调度的最小单位。一个进程可以包含多个线程,所以进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。

2)不同进程间数据很难共享,同一进程下不同线程间数据很易共享。

3)每个进程都有独立的代码和数据空间,进程要比线程消耗更多的计算机资源。线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。

4)进程间不会相互影响,一个线程挂掉将导致整个进程挂掉。

5)系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。


5、tcpudp区别

1TCP面向连接,UDP是无连接的,即发送数据之前不需要建立连接。

2TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。

3TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4)每一条TCP连接只能是点到点的,UDP支持一对一,一对多,多对一和多对多的交互通信。

5TCP首部开销20字节,UDP的首部开销小,只有8个字节。

6TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。

#京东##Java工程师##社招##面经#
全部评论

相关推荐

1 30 评论
分享
牛客网
牛客企业服务