![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java八股文
文章平均质量分 59
小田田_XOW
6年C++ 5年华为Java螺丝钉。不愿意创业,就永远有可能被动失业。从现在开始建立自己的事业。
朋友圈子创业 #小程序://朋友圈子/VMEWRjrOTum4Soa 有想法的朋友可以来聊一聊
展开
-
java八股文面试[JVM]——JVM性能优化
jvm优化 jvm命令原创 2023-09-04 19:26:05 · 684 阅读 · 0 评论 -
java八股文面试[JVM]——引用计数、可达性分析
要想进行垃圾回收,得先知道什么样的对象是垃圾。对于某个对象而言,只要应用程序中持有该对象的,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。弊端:如果,导致。循环引用 内存泄露 -->内存溢出。原创 2023-09-04 19:20:16 · 377 阅读 · 0 评论 -
java八股文面试[JVM]——对象的创建过程
对象创建过程原创 2023-09-04 19:06:22 · 52 阅读 · 0 评论 -
java八股文面试[JVM]——如何打破双亲委派模型
比较两个类是否“相等”,前提是这两个类由同一个类加载器加载,否则,即使这两个类来源于同一个Class 文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那么这两个类就必定不相等。一般情况下,自定义类加载器都是继承。原创 2023-09-04 14:54:09 · 773 阅读 · 0 评论 -
java八股文面试[JVM]——GC优化方案
定位到某行代码之后,跟到这段代码,然后继续单步执行或者二分的方式来定位最终出 Bug 的代码。了,取而代之的是元空间,且元空间是不是在JVM堆中的,而属于堆外内存,受最大物理内存限制。3. 如果使用了 Netty 堆外内存,那么可以自行监控堆外内存的使用情况,不需要借助第三方工具,我们是使用的“**进程id】, **看到结果,如果FGC的数量很高,且在不断增长,那么可以定位是由于。的过程中衍生出来的。,设定一个系统实际可达的最大的直接内存的值,默认的最大直接内存大小等于 -Xmx的值。原创 2023-09-04 14:17:12 · 645 阅读 · 0 评论 -
java八股文面试[JVM]——什么情况下会抛出OOM
JVM98%的时间都花费在内存回收每次回收的内存小于2%满足这两个条件将触发,这将会留给系统一个以做一些Down之前的操作,比如手动打印Heap Dump。并不是的时候才抛出一,业务需要比较多的内存,但是jvm分配的太少;二,GC回收内存的速度赶不上程序运行消耗内存的速度。三,存在情况,比如打开文件不释放、创建网络连接不关闭、不再使用的对象未断开引用关系、使用持有大对象引用等等,久而久之也会造成OOM。发生oom的区域主要在哪里呢?可以这么说,除了以外,其他区域。原创 2023-09-04 08:59:15 · 667 阅读 · 0 评论 -
java八股文面试[java基础]——字节码的组成
因为JVM针对各种和平台都进行了,无论在什么平台,都可以通过javac命令将一个.java文件编译成固定格式的字节码(.class文件)供JVM使用。之所以被称为字节码,是因为格式如下。原创 2023-09-04 08:46:32 · 199 阅读 · 0 评论 -
java八股文面试[java基础]——有没有可能两个不相等的对象有相同的hashCode
两个Test5对象实例相等(equals 返回true),但是放到HashSet中是两个。预期两个相同的放到Set集合中,应该只存在一个。公式刚好 31*66 +66 = 2112 = 31*65+97。查看String的hashCode源码可以看到:公式。实例:Aa BB有相同的hashCode值。A的ASCII码是65 B是 66。原创 2023-08-28 16:48:26 · 84 阅读 · 0 评论 -
java八股文面试[java基础]——笔试 java变量初始化顺序 代码执行顺序
进行初始化。哪怕变量定义散布在了方法定义之中,它们依然按照任意方法(包括了构造方法)被调用之前进行初始化。原创 2023-08-28 15:53:32 · 93 阅读 · 0 评论 -
java八股文面试[JVM]——类初始化过程
回顾类加载过程:原创 2023-08-28 15:22:15 · 225 阅读 · 0 评论 -
java八股文面试[JVM]——垃圾回收器
整堆收集器: G1由于整个过程中耗时最长的并发标记和并发清除过程中,收集器线程都可以与用户线程一起工作,所以总体上来说,CMS收集器的内存回收过程是与用户线程一起并发地执行。老年代收集器(新生代使用ParNew)参数控制:-XX:+UseConcMarkSweepGC 使用CMS收集器-XX:+ UseCMSCompactAtFullCollection Full GC后,进行一次碎片整理;整理过程是独占的,会引起停顿时间变长。原创 2023-08-26 11:34:40 · 1433 阅读 · 0 评论 -
java八股文面试[java基础]——笔试 用Stream求列表中最大值、最小值
2. stream().max()或stream().min()实现。3. stream().max()或stream().min()实现。2. Collectors.summarizingInt()实现。1. stream().reduce()实现。1. stream().reduce()实现。一、BigDecimal 求最大值和最小值。二、Integer 求最大值和最小值。原创 2023-08-26 10:41:58 · 1640 阅读 · 0 评论 -
java八股文面试[JVM]——JVM调优
知识来源:【2023年面试】JVM性能调优实战_哔哩哔哩_bilibili原创 2023-08-25 19:06:20 · 594 阅读 · 0 评论 -
java八股文面试[JVM]——JVM内存结构2
知识来源:【2023年面试】JVM内存模型如何分配的_哔哩哔哩_bilibili原创 2023-08-25 18:56:49 · 416 阅读 · 0 评论 -
java八股文面试[JVM]——元空间
JAVA8为什么要增加元空间。为什么要移除永久代?原创 2023-08-25 18:38:08 · 971 阅读 · 0 评论 -
java八股文面试[JVM]——双亲委派模型
1.当去加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委托给父加载器去完成。2.当ExtClassLoader去加载一个class时,它首先也不会去尝试加载这个类,而是把类加载请求委托给父加载器去完成。3.如果BootstrapClass加载失败(例如在JAVA_HOME/jre/lib里未找到该class),就会使用ExtClassLoader来尝试加载。原创 2023-08-25 15:48:32 · 1408 阅读 · 0 评论 -
java八股文面试[JVM]——类加载器
加载阶段简单来说就是:原创 2023-08-25 11:05:05 · 620 阅读 · 1 评论 -
java八股文面试[数据结构]——HashMap扩容优化
知识来源:原创 2023-08-25 08:52:35 · 519 阅读 · 0 评论 -
java八股文面试[java基础]——异常
出现异常时,程序会暂时中断执行,并根据产生异常的原因,创建对应异常类型的异常对象,并抛出给JVM捕获处理;等,编译器不会对这类错误进行检测,JAVA应用程序也不应对这类错误进行捕获,-一旦这类错误发生,应用程序通常会被终止,仅靠应用程序本身无法恢复;2.Exception类型的异常是可以在应用程序中进行捕获并处理的,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。1.throw关键字用来地出方法或代码块中的异常对象,检查异常和非检查异常都可以被抛出,在方法内部使用;原创 2023-08-24 14:44:44 · 477 阅读 · 0 评论 -
java八股文面试[java基础]——字节码
动态生成代码,接下来讲一下字节码技术相关的第三方类库,第三方框架的讲解是为了帮助大家了解字节码技术的应用方向,文档并没有对框架机制进行详细分析,有兴趣的可以去了解相关框架实现原理和架构,也可以后续为大家奉上相关详细讲解。说白了,ASM可以在不修改Java源码文件的情况下,直接对Class文件进行修改,改变或增强原有类功能。既然JVM运行时识别的只是.class文件,而文件格式我们也了解,那是不是只要我们能够。在熟悉了字节码原理的情况下,理解动态修改字节码技术会更加容易。定义语义,静态,动态?原创 2023-08-24 14:23:33 · 288 阅读 · 0 评论 -
java八股文面试[Spring]——如何实现一个IOC容器
IOC容器IOC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合,更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IOC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的使程序的整个体系结构变得非常灵活。在运行期,在外部容器动态的将依赖对象注入组件,当外部容器启动后,外部容器就会初始化。原创 2023-08-24 14:01:57 · 826 阅读 · 0 评论 -
java八股文面试[java基础]——CGLIB动态代理与JDK动态代理
CGLIB。原创 2023-08-24 11:06:13 · 737 阅读 · 0 评论 -
java八股文面试[java基础]——如何实现不可变的类
知识来源:【23版面试突击】如何实现不可变的类?_哔哩哔哩_bilibili原创 2023-08-24 11:01:36 · 384 阅读 · 0 评论 -
java八股文面试[java基础]——反射
知识来源:【23版面试突击】讲讲JAVA的反射机制_哔哩哔哩_bilibili原创 2023-08-24 08:39:19 · 99 阅读 · 0 评论 -
java八股文面试[java基础]——浅拷贝和深拷贝
知识来源:【23版面试突击】什么是浅拷贝和深拷贝_哔哩哔哩_bilibili原创 2023-08-23 15:00:35 · 334 阅读 · 0 评论 -
java八股文面试[数据结构]——Map有哪些子类
知识来源:【23版面试突击】 用过哪些Map类,都有什么区别,HashMap是线程安全的吗?_哔哩哔哩_bilibilihttps://www.cnblogs.com/bubbleboom/p/12694013.html原创 2023-08-23 14:54:37 · 570 阅读 · 0 评论 -
java八股文面试[java基础]——Object类有哪些方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这时就需要在类中复写clone方法。该方法是非常重要的一个方法。(2)其他线程调用了该对象的notifyAll方法。(1)其他线程调用了该对象的notify方法。该方法唤醒在该对象上等待的某个线程。原创 2023-08-23 14:46:42 · 706 阅读 · 0 评论 -
java八股文面试[数据结构]——HashMap和HashTable区别
知识来源:原创 2023-08-23 11:58:36 · 656 阅读 · 0 评论 -
java八股文面试[数据结构]——ArrayList和LinkedList区别
此外,ArrayList时实现了基于动态数组的数据结构,LinkedList基于链表的数据结构,对于随机访问get和set,ArrayList觉得优于LinkedList比较占优势,因为LinledList要移动指针。: ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数。:在非首尾的增加和删除操作, LinkedList 要比 ArrayList 效率要高,因为。直接后继和直接前驱。,是链表的一种,它的每个数据结点中都有两个指针,分别指向。原创 2023-08-23 11:38:44 · 1377 阅读 · 2 评论 -
java八股文面试[数据结构]——List和Set的区别
由于set集合储存位置是由他的HashCode码决定的,所以他的存储对象必须有equals()方法,而且set遍历只能用迭代,没有下标。List和Set是用来存放集合的接口,并且二者都继承自接接口Collection。List 中的元素存放是有序的,可以存放重复的元素,检索效率较高,插入删除。Set 没有存放顺序不能存放重复元素检索效率较低,插入删除。原创 2023-08-23 11:22:27 · 850 阅读 · 0 评论 -
java八股文面试[数据结构]——集合框架
优点: 底层数据结构是数组,查询快,增删慢。缺点: 线程不安全,效率高2)Vector优点: 底层数据结构是数组,查询快,增删慢。缺点:线程安全,效率低优点: 底层数据结构是链表,查询慢,增删快。缺点: 线程不安全,效率高1)HashSet底层其实是包装了一个HashMap实现的底层数据结构是数组+链表 + 红黑树具有比较好的读取和查找性能, 可以有null 值通过equals和HashCode来判断两个元素是否相等非线程安全。原创 2023-08-23 10:54:13 · 499 阅读 · 0 评论 -
java八股文面试[java基础]——接口和抽象类的区别
知识来源:【基础】接口和抽象类_哔哩哔哩_bilibili【2023年面试】Java中抽象类和接口有什么区别_哔哩哔哩_bilibili原创 2023-08-23 09:53:30 · 507 阅读 · 0 评论 -
java八股文面试[JVM]——垃圾回收
Stop-the-world意味着 JVM由于要执行GC而停止了应用程序的执行,并且这种情形会在任何一种GC算法中发生。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态直到GC任务完成。事实上,GC优化很多时候就是指减少Stop-the-world发生的时间,从而使系统具有高吞吐 、低停顿的特点。原创 2023-08-22 18:23:28 · 524 阅读 · 0 评论 -
java八股文面试[JVM]——JVM参数
Xss 为jvm启动的每个线程分配的内存大小,默认JDK1.4中是256K,JDK1.5+中是1M。:给定-Xms Xmx -Xmn 问 最大的eden区域是多少M。怎么对jvm进行调优?原创 2023-08-22 16:22:57 · 994 阅读 · 0 评论 -
java八股文面试[java基础]——final 关键字作用
为什么局部内部类和匿名内部类只能访问final变量:知识来源。原创 2023-08-22 16:05:42 · 490 阅读 · 0 评论 -
java八股文面试[java基础]——面向对象特点
面试题:java如何实现多继承(除了使用接口之外)三大特点: 封装 继承 多态。原创 2023-08-20 11:06:20 · 173 阅读 · 0 评论 -
java八股文面试[JVM]——JVM内存结构
然后将伊甸园中的剩余对象移动到幸存 From区。首先,当Eden区满的时候会触发第一次GC,把还活着的对象拷贝到Survivor From区,当Eden区再次触发GC的时候会扫描Eden区和From区域,对这两个区域进行垃圾回收,经过这次回收后还存活的对象,则直接复制到To区域(如果有对象的年龄已经达到了老年的标准,则赋值到老年代区),同时把这些对象的年龄+1。栈中的数据都是以栈帧(Stack Frame)的格式存在,栈帧是一个内存区块,是一个数据集,是一个有关方法(Method)和运行期数据的数据集。原创 2023-08-20 10:55:16 · 930 阅读 · 0 评论 -
java八股文面试[JVM]——JDK JRE JVM三者之间的关系
JRE: Java Runtime Environment java 运行时环境。JDK: Java Development Kit java开发工具。JVM: Java Virtual Machine 虚拟机。原创 2023-08-07 11:45:23 · 66 阅读 · 0 评论 -
java八股文面试[java基础]—— hashCode 与 equals 区别 == 与 equals的区别
String类 equals方法的定义。原创 2023-08-18 18:19:44 · 171 阅读 · 0 评论 -
java八股文面试[java基础]—— 重载 和 重写
我上面的函数的方法签名就是 hand(int a,int b) 而简单来说,JVM就是通过方法签名来决定去调用哪一个方法的,而从方法签名的组成部分来说,返回类型并不在方法签名中,所以当一个类中出现方法名参数列表相同,只有返回类型不同时,JVM无法根据方法签名来确定该调用哪一个方法,所以会报错。所以即使OverWrite.class中有两个同名不同返回值的函数,JVM可以进行正常跑,只不过java编译器做了如此限定。Java中,有一个名叫方法签名的东西,它的定义是这样的。原创 2023-08-17 19:14:47 · 341 阅读 · 0 评论