京东2019校招笔试Java开发工程师笔试题

题目分析

这套题目考察的方面和深度我感觉都比较棒!!!但是答案错误太多了我吐了!!!


软件开发增量模型

题目

分析

AD就是互相矛盾
C适用于也是错误的,不应该是只需要客户化的工程项目    

知识点总结

瀑布模型(流程实施项目开发)+原型进化模型(系统按照功能分解为许多增量构建,然后不断地添加进系统直到交付给用户)


值类型和引用类型

题目

分析

1. 值类型变量赋值: 数据复制,创建一个同值得新对象
2. 引用类型变量赋值: 只是把对象引用的指针赋给变量,共用一个内存地址
3. 值类型一般是基本数据类型,不是封装的 C错误
4. 值类型没有实例 B错误
5. 值类型变量可以作为引用类型的成员变量存储在堆里面 D错误

知识点总结


操作系统避免死锁

题目

分析

说实话我感觉这道题有歧义,我觉得选D(傲娇不承认答案A)

知识点总结

  • 产生死锁

    1. 互斥 :存在一个资源每次只能被一个进程使用,若别的进程也要使用该资源,需要等待知道其占用者用完释放。
    2. 占有并等待 :部分分配,允许进程在不释放其已经分得的资源的情况下请求并等待分配的资源
    3. 不可抢占 :有些系统资源是不可抢占的,系即当某个进程已经获得这种资源后,只能由自身使用完释放。
    4. 循环等待 :若干个进程形成环形链,链中的每一个进程都在等待该链中下一个进程所占用的资源。
  • 避免死锁

    破坏四个条件其中一个就会避免死锁


奇数和算法

题目

分析

1. 计算是1+3+5+7+9+11+..+999
2. 所以i的计数肯定是i=i+2 然后s和i的变化要看顺序

知识点总结

其实最简单的就是自己写一个对比或者执行一遍即可

递归法

题目

分析

1. 递归法很容易崩 执行不出来所以执行效率肯定比递推法效率低

知识点总结

1. 递归就是一层一层调用 所以代码很简洁清晰
2. 递归会有很多次重复,然后递归调用占用大量内存空间,一旦执行次数过大就会无法执行
3. 递归法执行效率低

字符串比较

题目

分析

1. 这就跟c语言判断一样,一个一个字符对比。
2. 这道题对比A<D,还要结果是真 所以选择 <

知识点总结

比较的是ASCII码 从第一位开始判断

看代码判断结果

题目

分析

不管i取何值 (-1)*i永远是负数,所以ABC错误

知识点总结

取值测试

运算符优先级

题目

分析

知识点总结


如何确定一棵二叉树

题目

分析

我觉得AB都可以(不知道为啥是单选..)

知识点总结

只要告诉三种遍历其中之二即可

求小顶堆左子节点

题目

分析

知识点总结

小顶堆: 每个节点的值 <= 左右孩子节点的值


求子串

题目

分析

字符串有8个字符
非空子串数为8+7+...+2+1=8*9/2=36
加上一个空串,总共的子串数量为37

知识点总结

计算公式: n(n+1)/2+1  (等差数列求和) 

求二叉树总结点数

题目

分析

1. 叶子节点个数=度为2的节点个数+1
2. 所以n2=4 
3. 所以最终sum=n0+n1+n2=5+3+4=12

知识点总结

叶子节点值和度为2节点个数关系:n0=n2+1

排序算法

题目

分析

简单选择排序、快速排序、冒泡排序、堆排序

知识点总结


求哈夫曼树带权路径长度

题目

分析

根据构造哈夫曼树,然后计算权值

知识点总结

根据构造哈夫曼树(每次选最小的两个构成新的节点),然后计算权值(节点值*深度)

循环链表

题目

分析

关键字:依次  所以只能选循环链表

知识点总结

1. 双向链表: 从中间一个点,必须先往左一次再掉头往右一次才能遍历
2. 循环链表: 只要沿着一个方向一直走下遍历

TCP/IP各层及协议分布

题目

分析

ssh是应用层协议

知识点总结

1. SSH是secure shell缩写
2. 建立在应用层基础上的安全协议(比较可靠)

数据链路层设备

题目

分析

数据链路层是交换机

知识点总结

1. 应用层: 网关
2. 网络层: 路由器(分组交换)    
3. 数据链路层: 网桥 交换器
4. 物理层: 中继器(再生数字信号) 集线器(放大信号)

分组交换和电路交换

题目

分析

打电话有保证  电路交换
手机上网无保证 分组交换

知识点总结

1. 电路交换 有预留,且分配一定空间,提供专用的网络资源,提供有保证的服务,应用于电话网;
2. 分组交换 无预留,且不分配空间,存在网络资源争用,提供有无保证的服务。分组交换可用于数据报网络和虚电路网络。我们常用的Internet就是数据报网络,单位是Bit。

后退N帧协议

题目

分析

滑动窗口协议有
    1、停止等待协议,发送窗口=1,接受窗口=1;
    2、退后N帧协议,发送>1,接收=1;
    3、选择重传协议,发送>1,接收>1;

知识点总结

滑动窗口协议有
    1、停止等待协议,发送窗口=1,接受窗口=1;
    2、退后N帧协议,发送>1,接收=1;
    3、选择重传协议,发送>1,接收>1;

避免拥塞控制

题目

分析

慢开始
拥塞避免
快重传
快恢复

知识点总结

拥塞控制算法四种:
    慢开始
    拥塞避免
    快重传
    快恢复

TCP三次挥手ACK

题目

分析

知识点总结

每次都要发ack确定


预防Ddos方法

题目

分析

我感觉选A和B  
a减少重传次数 b减少半连接重传总时长

知识点总结

1. 半连接:服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称为半连接。
2. 攻击客户端通过发包器,在短时间内伪造大量不存在的IP地址,
3. 向服务器不断地发送SYN包,服务器回复确认包SYN/ACK,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发SYN/ACK直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
4. SYN攻击是一个典型的DDOS攻击。所以缩短超时时间和半连接数目都可以解决。

linux加载指令

题目

分析

1. -r: 将文件系统作为只读文件系统进行安装,而不考虑它先前在 /etc/file systems 文件中指定的内容或者先前的任何命令行选项。
2. ro : 将已安装的文件指定为只读文件,而不考虑它先前在 /etc/file systems 文件中指定的选项或者先前的任何命令行选项。缺省值是 rw。

知识点总结


软连接

题目

分析

我觉得答案选C 不接受反驳

知识点总结

1. 软连接知识点:
    1.1 可以有自己的文件属性和权限
    1.2 可以对不存在的文件/目录创建软连接
    1.3 软连接可以交叉文件系统
    1.4 创建软连接,连接计数i_nlink不会增加 

Ext3日志文件系统特点

题目

分析

我觉得四个选项都有 所以选ABCD

知识点总结

1、高可用性:系统使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统。
 2、数据的完整性:避免了意外宕机对文件系统的破坏。
 3、文件系统的速度:因为ext3的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之Ext2文件系统并来说,性能并没有降低。 
4、数据转换 :“由ext2文件系统转换成ext3文件系统非常容易。
 5、多种日志模式

DHCP协议作用

题目

分析

为网络中主机分配IP地址 

知识点总结

1. DHCP)是一个局域网的网络协议,使用UDP协议工作,
2. 主要有两个用途:
    1. 给内部网络或网络服务供应商自动分配IP地址给用户
    2. 内部网络管理员作为对所有计算机管理的手段。

获取本地ip地址

题目

分析

1. ipconfig 是win10系统
2. ifconfig 是linux系统

知识点总结

1. ipconfig 是win10系统
2. ifconfig 是linux系统

获取本地cpu使用率

题目

分析

1. top可以得到本地cpu使用情况

知识点总结

A ifconfig命令 : 被用于配置和显示Linux内核中网络接口的网络参数。
B uptime命令 : 打印系统总共运行了多长时间和系统的平均负载。
C top命令 : 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。
D netstat命令 : 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

设置环境变量指令

题目

分析

1. export 设置环境变量
2. env 创建环境变量
3. cat 用于连接文件并打印到标准输出设备
4. echo 显示文字并且修改颜色

知识点总结

1. export 设置环境变量
2. env 创建环境变量
3. cat 用于连接文件并打印到标准输出设备
4. echo 显示文字并且修改颜色

第一范式(1NF)

题目

分析

1. 第一范式保证原子性
2. 第二范式不存在部分依赖 B错误
3. 第三范式不存在传递依赖 AD错误

知识点总结

1. 第一范式保证原子性 (不可拆分)
2. 第二范式不存在部分依赖
3. 第三范式不存在传递依赖 

Sql语句

题目

分析

由于结果里面有两个表而且要table1所以要left左连接 AB错误
而left semi join表示只打印出左边表的key C错误

知识点总结

1. 两个表要找一个表的完全内容只能是 left/right连接
2. 然后考虑是否是全部输出

Mysql数据库引擎MyISAM(以前默认的)

题目

分析

1. Innodb支持事务和行级锁 所以A错误    

知识点总结

1:不支持事务、不具备AICD特性(原子性、一致性、分离性、永久性);
2:表级别锁定形式(更新数据时锁定整个表、这样虽然可以让锁定的实现成本很小但是同时大大降低了其并发的性能);
3:读写相互阻塞(不仅会在写入的时候阻塞读取、还会在读取的时候阻塞写入、但是读取不会阻塞读取);
4:只会缓存索引(myisam通过key_buffer_size来设置缓存索引,提高访问性能较少磁盘IO的压力、但是只缓存索引、不缓存数据);
5:读取速度快、占用资源比较少;
6:不支持外键约束、只支持全文检索;
7:是MySQL5.5.5版本之前的默认存储引擎;

sql语句索引

题目

分析

b+树的数据项是复合的数据结构
    比如(name,age,sex)的时候,b+数是按照从左到右的顺序来建立搜索树的
    比如当(张三,20,F)这样的数据来检索的时候,
    b+树会优先比较name来确定下一步的所搜方向,如果name相同再依次比较age和sex,最后得到检索的数据
所以C错误 -- 但当(20,F)这样的没有name的数据来的时候,b+树就不知道下一步该查哪个节点

知识点总结

索引的最左匹配特性


Delete和Truncate table区别

题目

分析

执行速度:  drop> truncate > delete  A对

知识点总结


根据描述写sql语句

题目

分析

1. 要查每个国家的用户人数肯定要有限制所以CD错误
2. B选项只能查到某个国家的人数 所以要用group by语句

知识点总结

考察select语句和分组语句

备忘录模式

题目

分析

1. 听着名字就感觉是备忘录模式存放

知识点总结

1. 备忘录模式: 适合恢复某个类的先前状态(类似于快照功能)

适配器模式

题目

分析

1. 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2. 适配器模式:将一个类的接口转换成另外一个客户希望的接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
3. 桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

知识点总结

1. 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2. 适配器模式:将一个类的接口转换成另外一个客户希望的接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
3. 桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

代码执行顺序

题目

分析

静态初始化代码块 > 初始化代码块 > 构造函数
1. 先加载static块 输出D
2. 然后执行main方法 输出A
3. 执行代码块 输出C
4. 执行Main方法 输出B
5. 有一次执行代码块 输出C
6. 执行Main方法 输出B
7. 最终结果为: DACBCB

知识点总结


Integer和int区别

题目

分析

1. Integer相当于string是写死的 所以值不会变
2. int值传递不会影响int的结果
3. 最终结果应该还是10 10

知识点总结

1. Integer范围是[-128,127]
2. Integer是写死的 所以值不会变

String实例问题

题目

分析

1. s1生成之后 s2生成的时候发现s1已经有了 所以指向了s1位置 所以 s1==s2为true
2. s3重新生成对象 所以s1==s3为false

知识点总结

考虑生成实例对象的问题

Java类加载1.0

题目

分析

1. static和final同时修饰的变量,类没初始化的时候就可以访问 所以没有输出OK
2. 最后直接输出JD

知识点总结

static和final同时修饰的变量,类没初始化的时候就可以访问

Java类加载2.0

题目

分析

1. 和上道题区别是JD这次是实例对象
2. 所以还是需要先打印OK然后打印JD    

知识点总结


Java类加载3.0

题目

分析

1. 和上道题区别就是实例在下面
2. 其实没啥区别所以还是OKJD

知识点总结


父子继承类1.0

题目

分析

和上面题一样 static和final修饰的变量不经过类初始化 所以只有C输出

知识点总结


父子继承类2.0

题目

分析

因为这道题c变量没有static和final共同修饰
所以先静态代码块输出A然后输出C

知识点总结


类加载器加载原理

题目

分析

其实就是先输出Test然后调用方法输出静态代码快的A

知识点总结


异常try catch 执行顺序

题目

分析

1. 先调用方法执行try语句输出A
2. 执行fun2()方法 执行之后输出C
3. 但是还是先不输出D 然后调回finally语句输出B
4. 最后输出D
5. 最后的顺序就是: ACBD

知识点总结

try中含有return时,如果return中调用了函数或者表达式,会先执行,如果还有finally的话,会继续执行完finally的内容再返回。

list集合扩容

题目

分析

10 15 22 33 49 73 109 所以是6次

知识点总结

初始值为10 只有增长幅度为1.5倍

Object类方法

题目

分析

1. 应该是equals()方法

知识点总结

1. clone方法
2. getClass方法
3. toString方法
4. finalize方法
5. equals方法
6. hashCode方法
7. wait方法
8. notify方法
9. notifyAll方法

线程池参数问题

题目

分析

前三个参数是 核心线程 最大线程池 保持时间
所以说一定会有5个线程不会被结束

知识点总结


线程执行

题目

分析

最终执行顺序是 Thread 1 Thread 2 main

知识点总结


linux文件权限问题

题目

分析

说实话我感觉BCD都对

知识点总结


算数运算符的指令形式

题目

分析

>= 就是 ge greater than or equal

知识点总结

EQ 就是 EQUAL等于 
NE就是 NOT EQUAL不等于 
GT 就是 GREATER THAN大于 
LT 就是 LESS THAN小于 
GE 就是 GREATER THAN OR EQUAL 大于等于 
LE 就是 LESS THAN OR EQUAL 小于等于

指令执行结果

题目

分析

echo就是更改输出颜色
expr是修改环境变量 应该输出的是0

知识点总结


修改权限(春招出过这道题目)

题目

分析

1. 4 2 1 / r w x 就是对应的读 写 执行
2. 所以应该是 0 5(4+1) 0 

知识点总结


bash脚本文件开头(#!)

题目

分析

1. 开头就是 #!

知识点总结


获取上一条命令的返回码($?)

题目

分析

$? 可以获取上一条命令的返回码

知识点总结


linux执行文件

题目

分析

先../返回到根目录 然后> 找到目录 最后 echo执行结果

知识点总结


标准输出和错误重定向

题目

分析

1. 错误重定向 2>
2. 标准输出 >
3. 同时的话就是 &>

知识点总结

1. 错误重定向 2>
2. 标准输出 >
3. 同时的话就是 &>

抽象工厂模式

题目

分析

1. 铁桌子和木桌子的例子印象深刻
2. 虽然图看不清但是大概看出样子就觉得是A

知识点总结


×

纯属好玩

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

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

文章目录
  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. 看代码判断结果
    1. 8.1. 题目
    2. 8.2. 分析
    3. 8.3. 知识点总结
  9. 9. 运算符优先级
    1. 9.1. 题目
    2. 9.2. 分析
    3. 9.3. 知识点总结
  10. 10. 如何确定一棵二叉树
    1. 10.1. 题目
    2. 10.2. 分析
    3. 10.3. 知识点总结
  11. 11. 求小顶堆左子节点
    1. 11.1. 题目
    2. 11.2. 分析
    3. 11.3. 知识点总结
  12. 12. 求子串
    1. 12.1. 题目
    2. 12.2. 分析
    3. 12.3. 知识点总结
  13. 13. 求二叉树总结点数
    1. 13.1. 题目
    2. 13.2. 分析
    3. 13.3. 知识点总结
  14. 14. 排序算法
    1. 14.1. 题目
    2. 14.2. 分析
    3. 14.3. 知识点总结
  15. 15. 求哈夫曼树带权路径长度
    1. 15.1. 题目
    2. 15.2. 分析
    3. 15.3. 知识点总结
  16. 16. 循环链表
    1. 16.1. 题目
    2. 16.2. 分析
    3. 16.3. 知识点总结
  17. 17. TCP/IP各层及协议分布
    1. 17.1. 题目
    2. 17.2. 分析
    3. 17.3. 知识点总结
  18. 18. 数据链路层设备
    1. 18.1. 题目
    2. 18.2. 分析
    3. 18.3. 知识点总结
  19. 19. 分组交换和电路交换
    1. 19.1. 题目
    2. 19.2. 分析
    3. 19.3. 知识点总结
  20. 20. 后退N帧协议
    1. 20.1. 题目
    2. 20.2. 分析
    3. 20.3. 知识点总结
  21. 21. 避免拥塞控制
    1. 21.1. 题目
    2. 21.2. 分析
    3. 21.3. 知识点总结
  22. 22. TCP三次挥手ACK
    1. 22.1. 题目
    2. 22.2. 分析
    3. 22.3. 知识点总结
  23. 23. 预防Ddos方法
    1. 23.1. 题目
    2. 23.2. 分析
    3. 23.3. 知识点总结
  24. 24. linux加载指令
    1. 24.1. 题目
    2. 24.2. 分析
    3. 24.3. 知识点总结
  25. 25. 软连接
    1. 25.1. 题目
    2. 25.2. 分析
    3. 25.3. 知识点总结
  26. 26. Ext3日志文件系统特点
    1. 26.1. 题目
    2. 26.2. 分析
    3. 26.3. 知识点总结
  27. 27. DHCP协议作用
    1. 27.1. 题目
    2. 27.2. 分析
    3. 27.3. 知识点总结
  28. 28. 获取本地ip地址
    1. 28.1. 题目
    2. 28.2. 分析
    3. 28.3. 知识点总结
  29. 29. 获取本地cpu使用率
    1. 29.1. 题目
    2. 29.2. 分析
    3. 29.3. 知识点总结
  30. 30. 设置环境变量指令
    1. 30.1. 题目
    2. 30.2. 分析
    3. 30.3. 知识点总结
  31. 31. 第一范式(1NF)
    1. 31.1. 题目
    2. 31.2. 分析
    3. 31.3. 知识点总结
  32. 32. Sql语句
    1. 32.1. 题目
    2. 32.2. 分析
    3. 32.3. 知识点总结
  33. 33. Mysql数据库引擎MyISAM(以前默认的)
    1. 33.1. 题目
    2. 33.2. 分析
    3. 33.3. 知识点总结
  34. 34. sql语句索引
    1. 34.1. 题目
    2. 34.2. 分析
    3. 34.3. 知识点总结
  35. 35. Delete和Truncate table区别
    1. 35.1. 题目
    2. 35.2. 分析
    3. 35.3. 知识点总结
  36. 36. 根据描述写sql语句
    1. 36.1. 题目
    2. 36.2. 分析
    3. 36.3. 知识点总结
  37. 37. 备忘录模式
    1. 37.1. 题目
    2. 37.2. 分析
    3. 37.3. 知识点总结
  38. 38. 适配器模式
    1. 38.1. 题目
    2. 38.2. 分析
    3. 38.3. 知识点总结
  39. 39. 代码执行顺序
    1. 39.1. 题目
    2. 39.2. 分析
    3. 39.3. 知识点总结
  40. 40. Integer和int区别
    1. 40.1. 题目
    2. 40.2. 分析
    3. 40.3. 知识点总结
  41. 41. String实例问题
    1. 41.1. 题目
    2. 41.2. 分析
    3. 41.3. 知识点总结
  42. 42. Java类加载1.0
    1. 42.1. 题目
    2. 42.2. 分析
    3. 42.3. 知识点总结
  43. 43. Java类加载2.0
    1. 43.1. 题目
    2. 43.2. 分析
    3. 43.3. 知识点总结
  44. 44. Java类加载3.0
    1. 44.1. 题目
    2. 44.2. 分析
    3. 44.3. 知识点总结
  45. 45. 父子继承类1.0
    1. 45.1. 题目
    2. 45.2. 分析
    3. 45.3. 知识点总结
  46. 46. 父子继承类2.0
    1. 46.1. 题目
    2. 46.2. 分析
    3. 46.3. 知识点总结
  47. 47. 类加载器加载原理
    1. 47.1. 题目
    2. 47.2. 分析
    3. 47.3. 知识点总结
  48. 48. 异常try catch 执行顺序
    1. 48.1. 题目
    2. 48.2. 分析
    3. 48.3. 知识点总结
  49. 49. list集合扩容
    1. 49.1. 题目
    2. 49.2. 分析
    3. 49.3. 知识点总结
  50. 50. Object类方法
    1. 50.1. 题目
    2. 50.2. 分析
    3. 50.3. 知识点总结
  51. 51. 线程池参数问题
    1. 51.1. 题目
    2. 51.2. 分析
    3. 51.3. 知识点总结
  52. 52. 线程执行
    1. 52.1. 题目
    2. 52.2. 分析
    3. 52.3. 知识点总结
  53. 53. linux文件权限问题
    1. 53.1. 题目
    2. 53.2. 分析
    3. 53.3. 知识点总结
  54. 54. 算数运算符的指令形式
    1. 54.1. 题目
    2. 54.2. 分析
    3. 54.3. 知识点总结
  55. 55. 指令执行结果
    1. 55.1. 题目
    2. 55.2. 分析
    3. 55.3. 知识点总结
  56. 56. 修改权限(春招出过这道题目)
    1. 56.1. 题目
    2. 56.2. 分析
    3. 56.3. 知识点总结
  57. 57. bash脚本文件开头(#!)
    1. 57.1. 题目
    2. 57.2. 分析
    3. 57.3. 知识点总结
  58. 58. 获取上一条命令的返回码($?)
    1. 58.1. 题目
    2. 58.2. 分析
    3. 58.3. 知识点总结
  59. 59. linux执行文件
    1. 59.1. 题目
    2. 59.2. 分析
    3. 59.3. 知识点总结
  60. 60. 标准输出和错误重定向
    1. 60.1. 题目
    2. 60.2. 分析
    3. 60.3. 知识点总结
  61. 61. 抽象工厂模式
    1. 61.1. 题目
    2. 61.2. 分析
    3. 61.3. 知识点总结
,