JAVA保融科技面试题

本文涵盖了Java面试中的常见问题,包括二进制表示、对象比较、哈希码、数据结构选择、Linux性能排查、线程池设计、线程安全、数据库索引优化以及SQL与HTTP协议理解。深入讨论了如ArrayList与LinkedList的区别、CPU异常排查步骤、线程池核心线程数计算方法、索引对查询性能的影响以及SQL优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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进制]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值