准备斑马网络一面(1)

0.1计算机表示为什么会出现0.1000000001?

计算机内部使用二进制,0.1转化成二进制为0.0 0011无限循环的小数。

==和equals的区别:
==:对于基本类型,比较的是值是否相等;对于引用类型,比较的是地址是否相等。
equals:比较的是对象是否相等,不能比较基本类型。
==比较内存地址,equals比较内存地址的值。

为什么要同时重写hashcode和equals,hashcode有什么作用?
重写equals方法和hashcode方法的目的就是为了实现一些合乎情理,切实际,在现实生活中经常出现的一些情景,针对这些情景来提出一些需求,为了满足这个需求从而采取的措施。如果不重写的话,在他的源码中比较的是俩个对象的地址值。

hashcode代表对象的地址说的是对象在hash表中的位置,物理地址说的对象存放在内存中的地址

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

ArrayList和LinkedList的区别
ArrayList基于动态数组实现,访问速度快,LinkedList基于链表,内存大,批量增删效果好
在查看增加情况下,ArrayList和LinkedList哪个好?
arraylist的add()可以返回布尔值,添加成功返回true。

linux系统,cpu报警,怎么去排查,怎么去定位
PID 进程id USER 进程所有者的用户名 PR 优先级
先用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改完
还没来得及改回来就被2看见,导致1的动作全都白做了。

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

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

斑马网络大概了解:
斑马,跑在互联网上的汽车

猜你喜欢

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