JAVA保融科技面试题

0.1计算机表示为什么会出现0.1000000001?
计算机内部使用二进制,0.1转化成二进制为0.0 0011无限循环的小数。

==和equals的区别:
==比较内存地址,equals比较内存地址的值。

为什么要同时重写hashcode和equals,hashcode有什么作用?
不同环境下hashcode的算法可能不同,导致hashcode值相等,俩对象不相等,此时需要
equals进行判断。单用equals效率太低。
hashcode用于效率的查找,用位置%长度得到hashcode,确定位置。

ArrayList和LinkedList的区别:
ArrayList基于动态数组实现,访问速度快,LinkedList基于链表,内存大,批量增删效果好

在查看增加情况下,ArrayList和LinkedList哪个好?
arraylist的add()可以返回布尔值,添加成功返回true。
linux系统,cpu报警,怎么去排查,怎么去定位
先用top命令找到异常cpu高的PID进程,
再用top -H -p 进程ID查看异常线程
将高cpu占比的线程PID转换成16进制
使用printf “%x\n” 线程PID
Jstack[进程ID] igrep -A 10[线程ID的16进制]
连续几次导出进程的堆栈信息,并搜索异常代码
线程池核心线程数怎么判断?
先看cpu核数
再看线程池是cpu密集型还是IO密集型
cpu密集型:核数+1
IO :核数*2
IO :核数 / (1-阻塞系数)

  1. List item

为什么需要考虑线程安全:
对于静态变量,一旦静态变量被修改,其他对象均对修改可见,线程不安全。
线程不安全的可见性:一个线程对共享变量进行了修改,能够被其他线程及时看到,1改完
还没来得及改回来就被2看见,导致1的动作全都白做了。

  1. List item

数据库索引的作用,怎么提升查找效率?
索引:保存在磁盘文件,就像是目录,用于提高数据库查询速度,提高数据库排序效率。
索引采用B+树,每个节点存储多个元素,每个内节点有多个分支,节点元素包括键值和数
据,所有叶子节点都在同一层,深度相同。搜索时根据数值大小决定走哪个分支,一点一
点搜索到数据。
like查询会走索引吗?
like模糊查询
前通配 走全表
后通配 走索引
数据库什么字段适合加索引?
表的主键和外键
数据量超过300
经常与其他表进行连接,连接字段应该加索引
加索引之后会有什么影响?
查询速度会变快
加快表与表之间的连接
在使用分组和排序子句检索时,减少查询中分组和排序的时间。

  1. List item

SQL优化
避免使用select *
1.
使用union all 代替 union
2.
小表驱动大表select嵌套-子查询
3.
批量操作插入删除数据
4.
多用limit
5.
用连接查询代替子查询
6.
连接查询 inner join
7.join的表不宜过多
浏览器发送请求到程序之前会发生什么情况?
解析输入的URL,生成HTTP格式的请求
1.
根据URL域名从本地的hosts文件查找是否有映射IP,没有就将域名发送给电脑配置的
DNS进行域名解析,得到IP地址
2.
浏览器通过操作系统将请求通过四层网络协议发送出去
3.
途中经过路由器,交换机,最后到达服务器。
4.
服务器收到请求,根据指定的端口,将请求传递给绑定了该端口的应用程序
5.
本题到此为止。
程序收到请求数据后,按照http协议的格式进行解析,得到所要访问的servlet
6.
然后servlet处理请求
7.
应用程序得到相应结果后封装成HTTP响应的格式,发送给浏览器所在的服务器。
8.
服务器再发送给浏览器,浏览器解析并渲染。

猜你喜欢

转载自blog.csdn.net/m0_52773286/article/details/127262733