- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java⾯试题及答案整理(2022年最新版,持续更新)
发现⽹上很多Java⾯试题都没有答案,所以花了很长时间搜集整理出来了这套Java⾯试题⼤全~
这套互联⽹ Java ⼯程师⾯试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java⾯试、Spring、微服务、
Linux、Springboot、SpringCloud、MQ、Kafka ⾯试专题
本⼈发现⽹上虽然有不少Java相关的⾯试题,但第⼀未必全,第⼆未必有答案,第三虽然有答案,但未必能在⾯试中说,所以在本⽂⾥,会
不断收集各种⾯试题,并站在⾯试官的⽴场上,给出我⾃⼰的答案。
如果不背 Java⾯试题的答案,肯定⾯试会挂!这套7000多页的Java⾯试题 PDF ⼤全,希望对⼤家有帮助哈~
Class ⽂件是⼀组以 8 位字节为基础单位的⼆进制流。各个数据项严格按顺序排列。
Class ⽂件格式采⽤⼀种类似于 C 语⾔结构体的伪结构来存储数据。这样的伪结构仅仅有两种数据类型 :⽆符号数和表。
⽆符号数:是基本数据类型。以 u1、u2、u4、u8 分别代表 1 个字节、2 个字节、4 个字节、8 个字节的⽆符号数,能够⽤来描写叙述数
字、索引引⽤、数量值或者依照 UTF-8 编码构成的字符串值。
表 :由多个⽆符号数或者其它表作为数据项构成的复合数据类型。全部表都习惯性地以 _info 结尾。
原⼦性 :
原⼦,即⼀个不可再被分割的颗粒。原⼦性指的是⼀个或多个操作要么全部执⾏成功要么全部执⾏失败。
可见性:
⼀个线程对共享变量的修改,另⼀个线程能够⽴刻看到。(synchronized,volatile)
有序性 :
程序执⾏的顺序按照代码的先后顺序执⾏。(处理器可能会对指令进⾏重排序)
Bootstrap ClassLoader(启动类加载器) Extention ClassLoader(扩展类加载器) App ClassLoader(应⽤类加载器)
线程调度器选择优先级最⾼的线程运⾏,但是,如果发⽣以下情况,就会终⽌线程的运⾏ :
1、 线程体中调⽤了yield⽅法让出了对cpu的占⽤权利
2、 线程体中调⽤了sleep⽅法使线程进⼊睡眠状态
3、 线程由于IO操作受到阻塞
4、 另外⼀个更⾼优先级线程出现
5)在⽀持时间⽚的系统中,该线程的时间⽚⽤完
冒泡排序⼏乎是个程序员都写得出来,但是⾯试的时候如何写⼀个逼格⾼的冒泡排序却不是每个⼈都能做到,下⾯提供⼀个参考代码 :
对象头区域此处存储的信息包括两部分:1、对象 ⾃⾝的运⾏时数据( MarkWord ),占8字节 存储 hashCode、GC 分代年龄、锁类型标
记、偏向锁线程 ID 、 CAS 锁指向线程 LockRecord 的指针等, synconized 锁的机制与这个部分( markwork )密切相关,⽤
markword 中最低的三位代表锁的状态,其中⼀位是偏向锁位,另外两位是普通锁位。2、对象类型指针( Class Pointer ),占4字节 对象
指向它的类元数据的指针、 JVM 就是通过它来确定是哪个 Class 的实例。
实例数据区域 此处存储的是对象真正有效的信息,⽐如对象中所有字段的内容
对齐填充区域 JVM 的实现 HostSpot 规定对象的起始地址必须是 8 字节的整数倍,换句话来说,现在 64 位的 OS 往外读取数据的时候
⼀次性读取 64bit 整数倍的数据,也就是 8 个字节,所以 HotSpot 为了⾼效读取对象,就做了对齐,如果⼀个对象实际占的内存⼤⼩不
是 8byte 的整数倍时,就补位到 8byte 的整数倍。所以对齐填充区域的⼤⼩不是固定的。
Tomcat Valve——Tomcat 4引⼊的新技术,它允许您将Java类的实例链接到⼀个特定的Catalina容器。
同步块是更好的选择,因为它不会锁住整个对象 (当然你也可以让它锁住整个对象)。同步⽅法会锁住整个对象,哪怕这个类中有多个不相
关联的同步块,这通常会导致他们停⽌执⾏并需要等待获得这个对象上的锁。
同步块更要符合开放调⽤的原则,只在需要锁住的代码块锁住相应的对象,这样从侧⾯来说也可以避免死锁。
运⾏时常量池是⽅法区的⼀部分,Class ⽂件中除了有类的版本、字段、⽅法、接⼝等描述信息外,还有⼀项信息是常量池表,⽤于存放编
译器⽣成的各种字⾯量与符号引⽤,这部分内容在类加载后存放到运⾏时常量池。⼀般除了保存 Class ⽂件中描述的符号引⽤外,还会把
符号引⽤翻译的直接引⽤也存储在运⾏时常量池。
运⾏时常量池相对于 Class ⽂件常量池的⼀个重要特征是动态性,Java
文档评论(0)