欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > java高频面试题(2024最新)

java高频面试题(2024最新)

2025/9/27 17:14:04 来源:https://blog.csdn.net/kaichekaihanma/article/details/142346457  浏览:    关键词:java高频面试题(2024最新)

HashMap使用哪些方法来解决哈希冲突?

  1. 使用链地址法(使用散列表)来链接拥有相同hash值的数据;
  2. 使用2次扰动函数(hash函数)来降低哈希冲突的概率,使得数据分布更平均;
  3. 引入红黑树进一步降低遍历的时间复杂度,使得遍历更快;

Java内存模型

​ 堆->用来存放对象,数组等信息;方法区->用来存放常量,静态变量,类信息等;虚拟机栈->用来存放局部变量等;本地方法栈->用来供程序调用native方法使用;程序计数器->用来记录程序运行到哪一步。

类加载机制

​ 加载-链接-初始化,链接又包含验证,准备,解析

​ 加载:通过全类名获取该类的二进制字节流,将字节流代表的静态存储数据结构转化为方法区中的运行时数据结构,在内存中生成一个代表该类的Class对象作为方法区这些数据的访问入口。

​ 验证:文件格式验证==》验证字节流是否符合Class文件格式规范。元数据验证==》对字节码描述的信息进行语义分析。字节码验证==》通过数据流和控制流分析,确定程序语义是合法的。符号引用验证==》确保解析动作能正确执行

​ 准备:是正式为类变量分配内存并设置类变量初始值的,这些内存都将在方法区中分配。注意:这时候分配的只包括类变量(static),不包括实例变量。初始值通常情况下是默认的零值。

​ 解析:就是虚拟机将常量池中的符号引用替换为直接引用的过程。也就是得到类,方法或字段在内存中的偏移量或指针

​ 初始化:是执行类构造器()方法的过程

更多更全面试题尽在:

https://pan.quark.cn/s/0700b37c6577

在这里插入图片描述

内存泄漏和内存溢出

内存泄漏只分配出去的内存回收不回来了
内存溢出指的是内存不够用,类如OOM

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词