京东2019春招京东Java开发试卷

题目分析

说实话觉得京东的题目比较偏基础,我这种菜鸡大部分的题目没复习的情况下还能有点思路


解空间树搜索算法

题目

分析

其实解空间树搜索算法就是我们见过的树的遍历方法,其实就是dfs和bfs。
题目中意思是一个节点可能有多次机会那么肯定是深度优先遍历算法。
广度其实就是一层一层不会出现多次,只有深度是这次到底才往回返一次,就是使用回溯法进行。因此选择回溯法

知识点总结

参考大佬博客:

https://blog.csdn.net/ncepuzhuang/article/details/8944991

两种遍历总结:


算法基本要素

题目

分析

1. 错误点:
    其实就是当时对于D答案查看不仔细,没看出竟然是数据机构????
2. 正确选项:
    算法基本要素=对数据对象的运算和操作+算法的控制结构

知识点总结

1. 算法的基本要素:
    1.1 数据对象的运算和操作
    1.2 控制结构

选择排序

题目

分析

开始时:900,512,613,700,810
第一趟后:512,900,613,700,810  512要和900更换位置
第二趟后:512,613,900,700,810  613要和900更换位置
第三趟后:512,613,700,900,810  700要和900更换位置

知识点总结

选择排序:获取未排序部分数据中最小的数据放到数组的最前面,以此类推


递归次数

题目

分析

分析计算步骤:
    x(8) = x(6)+ x(4) +1 = 9
    x(6) = x(4)+ x(2) +1 = 5
    x(4) = x(2)+ x(0) +1 = 3
但是此题目有点歧义,x(8)=9之后还会进行调用就还会有9次,一共是18次

知识点总结

递归调用逻辑执行,一步一步进行即可


线性链表

题目

分析

D 线性链表中个元素位置不一定连续,存储顺序也是任意的 D对
AB 双向链表的表头元素不一定在其他元素前面 AB错
C 数组是连续的,线性链表不是必须连续

知识点总结

1. 分类:
    1.1 单向链表 
    1.2 双向循环链表 
    1.3 循环链表
2. 定义:    
    2.1 具有链接存储结构的线性表,用一组地址任意的存储单元存放线性表中的数据元素,逻辑上相邻的元素在物理上不要求也相邻,不能随机存取。
    2.2 结点描述:结点(表示数据元素) =数据域(数据元素的映象) + 指针域(指示后继元素存储位置)

朴素模式匹配算法时间复杂度

题目

分析

1. 最坏时间算法:每次都匹配字串最后一位
因此:
    2.1 匹配次数为m
    2.2 匹配到主串的尾部:匹配次数为n-m+1
    2.3 所以结果是m*(n-m+1)

知识点总结

KMP模式匹配算法


广义表(Lists)

题目

分析

题目中的广义表E((a,(a,b),((a,b),c)))

1. 广义表长度:
    最大括号里面是(a,(a,b),((a,b),c)) --> 长度=逗号数0+1=1

2. 广义表深度:
    (a,(a,b),((a,b),c)):4+1=5
    a:0+1=1
    (a,b):1+1=2
    ((a,b),c):2+1=3     --> 深度=max(5,1,2,3)=5

知识点总结

1. 长度:最大括号里面的逗号数+1
2. 深度:最大括号根据逗号拆开的每个部分的括号匹配数+1的最大值

TCP协议

题目

分析

1. 多播服务的是UDP (网上视频会议、网上视频点播特别适合采用多播方式)

知识点总结

1. TCP面向连接 可靠传输
2. TCP可靠交付
3. TCP报文头部长 传输开销大

bash shell环境

题目

分析

cz在bash shell环境下是将前台任务转入后台

知识点总结


Order by子句

题目

分析

order by子句默认是asc(升序)

知识点总结

1. order by子句是根据指定列对结果集进行排序
2. 有两种方法 asc(升序默认)和desc(降序)

看UML图识别设计模式

题目

分析

1. 最投机取巧的就是观察类和接口名判断是生成器模式
2. 生成器模式也叫建造者模式,功能就是使用简单的对象一步步构成复杂对象

知识点总结


看描述识别设计模式

题目

分析

观察者模式:一个对象修改,依赖对象也会被自动通知

知识点总结

  • 观察者模式
    对象间存在一对多的关系,如果一个对象被修改,会自动通知它的依赖对象

  • 建造者模式/生成器模式
    使用对各简单的对象一步一步构建出一个复杂对象


linux指令修改权限

题目

分析

1. 考点:就是linux指令和文件权限修改
2. 思路:
    2.1 使用chomd命令改变文件权限
    2.2 owner group others三种身份对应read write execute三种权限
    2.3 增加可读不可写所以第一组和第三组默认为0,第二组中添加r-x即可 chomd+050
    2.4 因为对于目录,要浏览r必须赋予进入x的权限

知识点总结


shell语句生成/test文件

题目

分析

1. >/test:输出重定向,没有文件就创建
2. 反引号(''):其中的命令执行后返回结果
3. touch指令: touch /test

知识点总结

1. 反引号 :将反引号其中的命令执行后返回结果
2. touch指令 :创建/xxx文件
3. > :输出重定向

shell头

题目

分析

1. A是执行
2. B是注释
3. C是错误的

知识点总结


shell脚本参数

题目

分析

1. $1 : 传递给脚本/函数的第一个参数
2. $? : 退出状态/函数返回值

知识点总结


Redis数据类型

题目

分析

1. 四个都是 主要是加了s之后迷惑人

知识点总结

redis一共包含5种数据类型
    ①字符串 String (最基本的类型,可包含任意数据)
    ②哈希 Hash (String类型的field、value映射表)
    ③列表 List (字符串列表,有序不唯一)
    ④集合 set (字符串集合,无序唯一)
    ⑤集合排序 zset (字符串集合,可以通过设置分数score进行排序)

Redis内容

题目

分析

Redis使用数据分片引入哈希槽(hash slot)来实现

知识点总结

1. 主要为了方便数据读取,所以redis主要消耗内存资源
2. redis集群之间是异步复制
3. 分区可以让redis管理更大内存

JVM新生代

题目

分析

1. 新生代区域分为: Eden from to 三个区域

知识点总结

1. Java堆是JVM管理最大的一块内存空间,主要存放各种类的实例对象。
2. Java堆
     2.1 新生代(Young) Eden / From Survivor / To Survivor
     2.2 老年代(Old)
3. 堆大小通过参数 -Xms -Xmx指定         
4. java每次只会使用eden和其中一块survivor区域来为对象服务,所以无论如何都有一块survivor区域是空闲的

示意图:


符号运算级

题目

分析

1. 优先级: ++/-- > 四则运算
2. 所以这道题就是先减b之后a-- 然后减b后a--

知识点总结

优先级


JVM内存部分

题目

分析

1. stacks栈 A对
2. PC寄存器就是程序计数器 B对
3. Heap堆  C对
4. Head Frame D错没出现    

知识点总结


JAVA数据类型大小

题目

分析

1. int是四个字节 所以A错
2. double是八个字节 所以C错
3. long是八个字节 所以D错

知识点总结

//8种基本类型:    
    1. byte : 1
    2. int : 4
    3. long : 8
    4. char : 2
    5. float : 4 
    6. double : 8
    7. boolean : 1

Integer包装类

题目

分析

Integer范围是[-128,127] 范围内是true 超过范围是false

知识点总结

1. Integer范围是 -128 - 127
2. 只要是在范围内就是被缓存了,每个对象的内存地址都是相同的。超过就新建一个Integer对象。

字符串方法(split()方法底层)

题目

分析

没找到分隔符会把字符串当一个长为1的字符串数组,所以选1

知识点总结

split方法默认是找不到就输出长度为1的字符串数组

前后端数据过程

题目

分析

ABC选项的数据都是不可信数据 D对

知识点总结

前后端数据采用信息安全部发布的XSSFilter做进行相应编码

开放定址法(解决哈希冲突)

题目

分析

1. HashMap 链地址法(链表方式连接)
2. ThreadLocal 开放地址法(纯数组连接)

知识点总结

1. HashMap 链地址法(链表方式连接)
2. ThreadLocal 开放地址法(纯数组连接)

线程同步问题

题目

分析

1. CountDownLatch:允许一个/多个线程等待特定情况,同步完成线程中其他任务

知识点总结

1. CountDownLatch:
    允许一个/多个线程等待特定情况,同步完成线程中其他任务.(例如:百米赛跑)
2. CyclicBarrier:
    让指定数量的线程等待期他所有的线程都满足某些条件之后才继续执行.(例如:坐车人齐了才可以走)

volatile和synchronized区别

题目

分析

synchronized:原子性 + 有序性 + 可见性
volatile:有序性 + 可见性(缺一个原子性)

知识点总结

1. volatile:
    1.1 线程同步的轻量级实现
    1.2 修饰变量

2. synchronized:
    2.1 为了减少获得锁和释放锁带来的性能消耗引入偏向锁和轻量级锁以及其它各种优化
    2.2 修饰方法和代码块

java参数传递

题目

分析

D中 集合和maps元素也是传递对象,所以和C一样应该是对的

知识点总结

1. 改变基础类型参数不会影响原始参数值
2. 改变对象参数引用只是修改形参保存的地址,但是不会影响原始引用
3. 修改一个对象的属性影响对象参数
4. 修改集合和Maps对象和第三条一样

spring代理配置

题目

分析

使用aop:aspectj-autoproxy标签
<aop:aspectj-autoproxy proxy-target-class="true"/>

知识点总结

1. jdk动态代理(默认)
2. cglib代理

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 题目分析
  2. 2. 解空间树搜索算法
    1. 2.1. 题目
    2. 2.2. 分析
    3. 2.3. 知识点总结
  3. 3. 算法基本要素
    1. 3.1. 题目
    2. 3.2. 分析
    3. 3.3. 知识点总结
  4. 4. 选择排序
    1. 4.1. 题目
    2. 4.2. 分析
    3. 4.3. 知识点总结
  5. 5. 递归次数
    1. 5.1. 题目
    2. 5.2. 分析
    3. 5.3. 知识点总结
  6. 6. 线性链表
    1. 6.1. 题目
    2. 6.2. 分析
    3. 6.3. 知识点总结
  7. 7. 朴素模式匹配算法时间复杂度
    1. 7.1. 题目
    2. 7.2. 分析
    3. 7.3. 知识点总结
  8. 8. 广义表(Lists)
    1. 8.1. 题目
    2. 8.2. 分析
    3. 8.3. 知识点总结
  9. 9. TCP协议
    1. 9.1. 题目
    2. 9.2. 分析
    3. 9.3. 知识点总结
  10. 10. bash shell环境
    1. 10.1. 题目
    2. 10.2. 分析
    3. 10.3. 知识点总结
  11. 11. Order by子句
    1. 11.1. 题目
    2. 11.2. 分析
    3. 11.3. 知识点总结
  12. 12. 看UML图识别设计模式
    1. 12.1. 题目
    2. 12.2. 分析
    3. 12.3. 知识点总结
  13. 13. 看描述识别设计模式
    1. 13.1. 题目
    2. 13.2. 分析
    3. 13.3. 知识点总结
  14. 14. linux指令修改权限
    1. 14.1. 题目
    2. 14.2. 分析
    3. 14.3. 知识点总结
  15. 15. shell语句生成/test文件
    1. 15.1. 题目
    2. 15.2. 分析
    3. 15.3. 知识点总结
  16. 16. shell头
    1. 16.1. 题目
    2. 16.2. 分析
    3. 16.3. 知识点总结
  17. 17. shell脚本参数
    1. 17.1. 题目
    2. 17.2. 分析
    3. 17.3. 知识点总结
  18. 18. Redis数据类型
    1. 18.1. 题目
    2. 18.2. 分析
    3. 18.3. 知识点总结
  19. 19. Redis内容
    1. 19.1. 题目
    2. 19.2. 分析
    3. 19.3. 知识点总结
  20. 20. JVM新生代
    1. 20.1. 题目
    2. 20.2. 分析
    3. 20.3. 知识点总结
  21. 21. 符号运算级
    1. 21.1. 题目
    2. 21.2. 分析
    3. 21.3. 知识点总结
  22. 22. JVM内存部分
    1. 22.1. 题目
    2. 22.2. 分析
    3. 22.3. 知识点总结
  23. 23. JAVA数据类型大小
    1. 23.1. 题目
    2. 23.2. 分析
    3. 23.3. 知识点总结
  24. 24. Integer包装类
    1. 24.1. 题目
    2. 24.2. 分析
    3. 24.3. 知识点总结
  25. 25. 字符串方法(split()方法底层)
    1. 25.1. 题目
    2. 25.2. 分析
    3. 25.3. 知识点总结
  26. 26. 前后端数据过程
    1. 26.1. 题目
    2. 26.2. 分析
    3. 26.3. 知识点总结
  27. 27. 开放定址法(解决哈希冲突)
    1. 27.1. 题目
    2. 27.2. 分析
    3. 27.3. 知识点总结
  28. 28. 线程同步问题
    1. 28.1. 题目
    2. 28.2. 分析
    3. 28.3. 知识点总结
  29. 29. volatile和synchronized区别
    1. 29.1. 题目
    2. 29.2. 分析
    3. 29.3. 知识点总结
  30. 30. java参数传递
    1. 30.1. 题目
    2. 30.2. 分析
    3. 30.3. 知识点总结
  31. 31. spring代理配置
    1. 31.1. 题目
    2. 31.2. 分析
    3. 31.3. 知识点总结
,