京东面试

文章目录

面试题

  • 基本数据类型
  • 各占多少字节,short 占 2 个,int 占 4 个字节
  • JVM 内存模型
  • 垃圾回收算法
  • StringBuffer 和 StirngBuilder、String
  • Linux查看进程、查看网络端口
  • MySQL InnoDB 和 MyISAM 的区别
  • 聚簇索引和非聚簇索引
  • 复合索引(也就是联合索引… …)
  • 隔离级别
  • MyBatis 的标签 比如<select ><insert><delete><update><foreach>
  • Spring两大特性:控制反转/依赖注入、面向切面编程
  • AOP 的应用

关于项目:
私聊是怎么实现的,群聊是怎么实现的?
考虑过延迟吗?
每个终端和服务器是一直保持连接吗?
实际场景中如果连接断开怎么办?是服务器端检查状态还是客户端检查?

表的设计做过吗?设计表的时候遵循的原则?
关联查询的效率高吗?
中间件接触过吗,像Redis、MQ
如果有一亿个学生,给定一个学生的学号,查询它的全部信息
前端技术接触过吗?

复盘

1.基本数据类型
boolean1 byte1 short2 char2 int4 float4 double6 long8
    
2.JVM 内存模型
    线程私有的是 程序计数器 和 栈;程序计数器是存放当前字节码指令的地址;栈是方法执行的模型,方法的调用和执行完毕对应着一个栈帧入栈和出栈,栈中有局部变量表,在编译时期确定大小,之后不会改变;还有方法出口、动态链接;堆是数组和对象分配空间的地方,物理可以是不连续的,会分为新生代和老年代,根据它们对象生命周期的特点进行垃圾回收;方法区存放和类相关的信息,比如 类信息、类变量,运行时常量池是在方法区中的。
    
3.StringBuffer 和 StirngBuilder、String
    String 底层是 final 修饰的 char 类型的数组,所以是不可变的;
     StringBuffer 每个方法都用了 synchronized 关键字,所以是线程安全的;而 StringBuilder 是线程不安全的。
     “+”如果都是常量,就会创建的字符串常量放置到字符串常量池中;如果有非常量的,JDK 1.5 之后是创建 StringBuilder 对象,然后使用 append 方法,而JDK 1.5 之前是 StringBuffer 对象。
    
4.Linux查看进程
     静态的:ps 指令;动态的:top 指令,每 5 秒更新一次。
    
5.联合索引
    比方说以 c1 和 c2 建立联合索引,那就只会建立一个 B+ 树,按照 c1 和 c2列 的大小进行排序,这个包含两层含义:
(1)先把各个记录和页按照 c1 列进行排序。
(3)在记录的 c1 列相同的情况下,采用 c2 列进行排序。
    
6.MyBatis 的标签
sql语句 <select> <insert> <delete> <update>
配置Java对象和查询结果集中列名对应的关系 <resultMap>
动态sql拼接 <if><foreach>
格式化输出 <where><set>
关联映射 一对多:<collection> 一对一:<association>
引用常量 <include>
    
7.AOP 的应用
捕获异常
安全检查
日志
缓存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值