java面试题_度小满一面_java面经汇总

题目来自牛客,  题的答案都是我个人理解的,仅仅只作为复习用.因个人水平有限,不合理的地方请多多指正.

 

1 给n个1-100间的数怎么排序?计数排序时间空间复杂度

归并排序,快速排序,插入排序,冒泡排序,选择排序 ,桶排序(没用过)


2.图如何存储?

一、邻接矩阵法  二、邻接链表法 三、十字链表法 四、多重链表法


3.如何判断图是否有环?时间复杂度?

  1. 求出图中所有顶点的度,
  2. 删除图中所有度<=1的顶点以及与该顶点相关的边,把与这些边相关的顶点的度减一
  3. 如果还有度<=1的顶点重复步骤2
  4. 最后如果还存在未被删除的顶点,则表示有环;否则没有环

4.说说list,set,map之间的区别,哪些能存null

这是个大问题,建议详细学习下,集合涉及很多考点 敲黑板的重点

  • List(对付顺序的好帮手): 存储的元素是有序的、可重复的。
  • Set(注重独一无二的性质): 存储的元素是无序的、不可重复的。
  • Map(用 Key 来搜索的专家): 使用键值对(kye-value)存储,类似于数学上的函数 y=f(x),“x”代表 key,"y"代表 value,Key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。

 


5.collection与Collections的区别呢?

Collection 是一个集合接口(集合类的一个顶级接口)list,set 都实现与它。它提供了对集合对象进行基本操作的通用接口方法.

Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。


6.jvm内存模型,哪些会oom?

jvm中存在五个区域(堆区,方法区,本地方法栈,虚拟机栈,程序计数器)

随着对象的增多且与GC Roots都有可达路径
–》堆溢出(OOM): -Xmx 设置堆max大小 -Xms设置堆初始大小
–》 内存泄漏 :长生命周期的obj持有短生命周期的obj的引用,例如长生命周期的单例对象持有一个无用对象。

(2)虚拟机栈

随着栈帧的增加
–》栈溢出(OOM):无法申请足够的内存 -Xss 设置栈大小
–》stackOverFlowError: 一般为递归造成 线程请求栈深度 > JVM允许深度

(3)方法区

1.8改为元空间 至于本地内存有关 -XX:MaxPermSize 设置大小

常见OOM原因:

1.一次性加载的数据量过大,如一次从数据库去除过多数据或从excel读取过多数据

2.集合类中有对对象的引用,使用完后为清空,是的jvm不能回收

3.代码中存在死循环或者循环中产生过多重复的对象实体

4.第三方插件中的bug

5.启动参数设置过小

 


7.如何使虚拟机栈oom?

用new不停申请内存就可能会发生


8.Linux常用的命令有哪些?

ls ,rm, mkdir, ps, grep , tail ,  cd ,find , chmod (权限)


9怎么用mkdir创建多级目录?

 mkdir  -p  aaa/bbb/ccc   


10.less和more的区别,head和tail的区别

 less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示

tail命令和head 命令非常相似,只不过它是打印文件的尾部内容,head打印的是头部内容


11.用什么命令交换文本文件中的两行

不会


12.chmod改权限的参数777

chmod 777  文件或目录    即可修改权限


13.TCP/IP模型

å¨è¿éæå¥å¾çæè¿°


14.应用层有哪些协议?

(1)域名系bai统(Domain Name System,DNS):用于实现du网络设备名字到IP地址映射的网络服务zhi。

(2)文件传dao输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。

(3)简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能。

(4)超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。

(5)简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。

(6)远程登录协议(Telnet):用于实现远程登录功能。


15.http与https的区别

HTTP特点:

  1. 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
  2. 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
  3. 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
  4. 简单快速、灵活
  5. 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性

HTTPS特点:

基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护


16.加密算法有哪些?具体的对称和非对称的有哪些

MD5算法 SHA1算法  HMAC算法 RSA算法

对称加密算法 是应用较早的加密算法,又称为 共享密钥加密算法

非对称加密算法,又称为 公开密钥加密算法。它需要两个密钥,一个称为 公开密钥 (public key),即 公钥,另一个称为 私有密钥 (private key),即 私钥


17线程和进程的区别,协程是什么?

1.进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。还存在资源开销、包含关系、内存分配、影响关系、执行过程等区别...

2.同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源相互独立。

协程是比线程更小的一种执行单元,你可以认为是轻量级的线程

 

18.进程通信方式

IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值