首页 > 京东一二三面面经及答案
头像
interviewtop
编辑于 2021-08-02 17:31
+ 关注

京东一二三面面经及答案

大家好,我是小牛, 微软程序员一枚,之前经常看见大家在 牛客上有 面经分享,但大多数没有答案。由于小牛和几个BAT小伙伴整理了相关八股文题库,这次就当一回工具人,把题目和对应的答案奉上。

这次面经基本都被我之前整理的大厂面试八股文涵盖了,有兴趣的同学可以点我头像,查看我之前的讨论贴查看我之前整理的八股文

Java八大基本数据类型,位数

byte: 占用1个字节,取值范围-128 ~ 127

short: 占用2个字节,取值范围-2^15^ ~ 2^15^-1

int:占用4个字节,取值范围-2^31^ ~ 2^31^-1

long:占用8个字节

float:占用4个字节

double:占用8个字节

char: 占用2个字节

boolean:占用大小根据实现虚拟机不同有所差异

Java访问修饰符

default: 默认访问修饰符,在同一包内可见

private: 在同一类内可见,不能修饰类

protected : 对同一包内的类和所有子类可见,不能修饰类

public: 对所有类可见

如何判断对象相等

首先开发者需要定义一下,什么情况下两个对象相等。其次完成定义后,重写equal方法。

equals是Object类提供的方法之一,每个Java类都继承自Object类,所以每个对象都具有equals这个方法。Object类中定义的equals方法内部是直接调用 == 比较对象的。但通过覆盖的方法可以让它不是比较引用而是比较数据内容。

不同数据类型之间如何转换

这里猜测是基本数据类型和Object类型。那就讲讲装箱拆箱。Java对基本数据类型和Object类型实现了自动类型转换。

对于Java基本数据类型,均对应一个包装类。

装箱就是自动将基本数据类型转换为包装器类型,如int->Integer

拆箱就是自动将包装器类型转换为基本数据类型,如Integer->int

JVM构成

线程私有的运行时数据区: 程序计数器、Java 虚拟机栈、本地方法栈。

线程共享的运行时数据区:Java 堆、方法区。

Redis主从复制

在主从复制中,有主库(Master)节点和从库(Slave)节点两个角色。从节点服务启动会连接主库,并向主库发送SYNC命令。

主节点收到同步命令,启动持久化工作,工作执行完成后,主节点将传送整个数据库文件到从库,从节点接收到数据库文件数据之后将数据进行加载。此后,主节点继续将所有已经收集到的修改命令,和新的修改命令依次传送给从节点,从节点依次执行,从而达到最终的数据同步。

通过这种方式,可以使写操作作用于主库,而读操作作用于从库,从而达到读写分离

Redis基本数据类型实现原理

字符串:采用类似数组的形式存储 list:采用双向链表进行具体实现 hash:采用hashtable或者ziplist进行具体实现 集合:采用intset或hashtable存储 有序集合:采用ziplist或skiplist+hashtable实现

Redis快的原因

  1. redis是基于内存的数据库,内存数据读取存储效率远高于硬盘型
  2. redis采用多路复用技术通过采用epoll的非阻塞IO,提升了效率

更多模拟面试

全部评论

(11) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐