首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

美团JAVA面试154道题分享

(或者 GC 对象的判定方法) 垃圾回收的优点和原理。并考虑 2 种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?...析构函数 (finalization) 的目的是什么? 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的?...串行(serial)收集器和吞吐量(throughput)收集器的区别是什么? 在Java中,对象什么时候可以被垃圾回收?...简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。 JVM 的永久代中会发生垃圾回收么? Java 中垃圾收集的方法有哪些? 什么是类加载器,类加载器有哪些?...你用 Spring Boot 实现了它吗? 什么是 Spring Profiles? 什么是 Spring Batch? 什么是 FreeMarker 模板?

1.9K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java50道基础面试题

    Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。...35.Java中垃圾回收有什么目的?什么时候进行垃圾回收? 垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。 36.System.gc()和Runtime.gc()会做什么事情?...存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。...垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。...finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可 以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

    63670

    Java中级面试题1

    a) 在 Java 语言中,每一个对象有一把锁。线程可以使用 synchronized 关键字来获取对象上的锁。...synchronized 关键字可应用在方法级别(粗粒度锁)或者是代码块级别(细粒度锁)。 10..在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?...a) 监视器和锁在 Java 虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联。线程在获取锁之前不允许 执行同步代码。...一直到垃圾收集器把这些 对象回收掉之前,他们会一直占据堆内存空间。 17.JVM 的永久代中会发生垃圾回收么?...a) 垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收 (Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。

    43820

    一线互联网大厂真实面试题集锦

    (或者 GC 对象的判定方法) 垃圾回收的优点和原理。并考虑 2 种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?...析构函数 (finalization) 的目的是什么? 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的?...简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。 JVM 的永久代中会发生垃圾回收么? Java 中垃圾收集的方法有哪些? 什么是类加载器,类加载器有哪些?...除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具? 请谈谈 ReadWriteLock 和 StampedLock。 如何让 Java 的线程彼此同步?你了解过哪些同步器?...你用 Spring Boot 实现了它吗? 什么是 Spring Profiles? 什么是 Spring Batch? 什么是 FreeMarker 模板?

    86731

    美团 Java 面试 154 道题分享!

    (或者 GC 对象的判定方法) 垃圾回收的优点和原理。并考虑 2 种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?...析构函数 (finalization) 的目的是什么? 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的?...简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。 JVM 的永久代中会发生垃圾回收么? Java 中垃圾收集的方法有哪些? 什么是类加载器,类加载器有哪些?...除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具? 请谈谈 ReadWriteLock 和 StampedLock。 如何让 Java 的线程彼此同步?你了解过哪些同步器?...你用 Spring Boot 实现了它吗? 什么是 Spring Profiles? 什么是 Spring Batch? 什么是 FreeMarker 模板?

    1.3K40

    腾讯 Java 高频面试题详解总结(转)

    而由于老年代的特点是每次回收都只回收少量对象,一般使用的是标记-整理算法(压缩法)。 三、典型的垃圾收集器 垃圾收集算法是 内存回收的理论基础,而垃圾收集器就是内存回收的具体实现。...除了偏向锁,JVM 实现锁的方式都用了循环 CAS,即当一个线程想进入同步块的时候使用循环 CAS 的方式来获取锁,当它退出同步块的时候使用循环 CAS 释放锁。...,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。...你可能出于两种理解而需要阻止改变:设计或效率。 1、final类不能被继承,没有子类,final类中的方法默认是final的。   final方法不能被子类的方法覆盖,但可以被继承。...在静态的方法中只能够引用外部类的中的静态成员方法或者成员变量。 *类级内部类相当于其外部类的成员,只有在第一次被使用的时候才会被装载。 再来看看多线程缺省同步锁的知识。

    35520

    JVM垃圾收集之——怎样判定一个对象是不是垃圾

    链接: JVM内存模型——运行时数据区的特点和作用 现在,让我们来学习一下JVM中的重头戏,垃圾收集 想要把一个对象当成垃圾回收掉,我们需要知道,不被需要和使用的对象才是垃圾,关键是怎么找到这些不被需要和使用的对象...那Java是使用的这一种垃圾回收方法吗?...JVM标准里给出了以下几种可以当作GC Root的对象: 1.在虚拟机栈(栈帧中的本地变量表)中引用的对象,譬如各个线程被调用的方法堆栈中使用到的参数、局部变量、临时变量等。...6.所有被同步锁(synchronized关键字)持有的对象。 7.反映Java虚拟机内部情况的JMXBean、JVMTI中注册的回调、本地代码缓存等。...这里所谓的“执行”是指虚拟机会触发这个方法,但并不承诺会等待它运行结束,这样做的原因是,如果一个对象在finalize()方法中执行缓慢,或者发生了死循环(更极端的情况),将很可能会导致F-Queue队列中其他对象永久处于等待

    34030

    彻底攻克ThreadLocal:搞懂原理、实战应用,深挖源码!扩展InheritableThreadLocal、FastThreadLocal!

    然而,加锁的方式可能会带来性能上的损失,因为线程之间需要竞争锁,而且在等待锁的过程中会阻塞线程的执行。 另一种解决方案是使用ThreadLocal。...需要注意的是,ThreadLocal并不适用于所有场景。它主要适用于每个线程需要独立保存自己的数据副本的情况。如果多个线程之间需要共享数据并进行协作,那么使用锁或其他同步机制可能更为合适。...面试题5:ThreadLocal为什么会导致内存泄漏? 答案: ThreadLocal导致内存泄漏的主要原因在于其内部类ThreadLocalMap中的键值对可能不会被垃圾收集器正确回收。...答案: ThreadLocal的key使用弱引用的主要目的是为了帮助避免内存泄漏。在Java中,弱引用(WeakReference)是一种引用类型,它不会阻止其引用的对象被垃圾收集器回收。...通过使用弱引用作为ThreadLocalMap中的key,当ThreadLocal实例在其他地方不再被引用时,垃圾收集器可以回收它。

    5.7K14

    115个Java面试题和答案——终极列表(上)

    Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。...15.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步? 监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。...垃圾收集器(Garbage Collectors) 35.Java中垃圾回收有什么目的?什么时候进行垃圾回收? 垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。...存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。...垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。

    48910

    115个Java面试题和答案——终极列表(上)

    Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。...15.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步? 监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。...垃圾收集器(Garbage Collectors) 35.Java中垃圾回收有什么目的?什么时候进行垃圾回收? 垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。...存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。...垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。

    35220

    Java面试宝典:42个面试题总结!

    Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。...15.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步? 监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。...垃圾收集器(Garbage Collectors) 35.Java中垃圾回收有什么目的?什么时候进行垃圾回收? 垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。...存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。...垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。

    32710

    工作两年多,XX 征信 面试,offer已到手

    线程安全问题 在多线程环境下,1.7 会产生死循环、数据丢失、数据覆盖的问题,1.8 中会有数据覆盖的问题,以 1.8 为例,当 A 线程判断 index 位置为空后正好挂起,B 线程开始往 index...位置的写入节点数据,这时 A 线程恢复现场,执行赋值操作,就把 A 线程的数据给覆盖了;还有++size 这个地方也会造成多线程同时扩容等问题。...9、说说你对并发编程中CAS的理解 千万别把并发编程中的CAS和单点登录搞混了哈 CAS叫做CompareAndSwap,比较并交换,主要是通过处理器的指令来保证操作的原子性,它包含三个操作数: 变量内存地址...GC最基础的算法有三种:标记 -清除算法、复制算法、标记-压缩算法。 我们常用的垃圾回收器一般都采用分代收集算法,然后针对不同的代进行使用不同的算法。...-XX:+PrintTLAB 查看TLAB空间的使用情况 16、熟悉分布式锁吗?有哪些实现方案? 变向的喜欢问,你们项目中有用到分布式锁吗?是怎么使用的,为什么这么使用?

    41820

    知识汇总(四)

    十五、Kafka 152.kafka 可以脱离 zookeeper 单独使用吗?为什么?...162.集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗? 可以继续使用,单数服务器只要没超过一半的服务器宕机就可以继续使用。...悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻止,直到这个锁被释放。...(它的搜索范围中没找到所需的类)时,子加载器才会尝试去加载类。...符号引用就理解为一个标示,而在直接引用直接指向内存中的地址; 初始化:对静态变量和静态代码块执行初始化工作。 200.怎么判断对象是否可以被回收?

    36730

    Java面试题库及答案解析

    TreeSet是由一个树形的结构来实现的,它里面的元素是有序的。因此,add(),remove(),contains()方法的时间复杂度是O(logn)。 37、Java中垃圾回收(GC)有什么目的?...什么时候进行垃圾回收? 垃圾回收(GC)的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。 38、System.gc()和Runtime.gc()会做什么事情?...存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。...当对象对当前使用这个对象的应用程序变得不可触及的时候,这个对象就可以被回收了。 44、JVM的永久代中会发生垃圾回收么?...垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。

    1.2K50

    阿里Java架构师面试高频300题:集合+JVM+Redis+并发+算法+框架等(含答案)

    (或者 GC 对象的判定方法) 垃圾回收的优点和原理。并考虑 2 种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?...析构函数 (finalization) 的目的是什么? 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的?...简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。 JVM 的永久代中会发生垃圾回收么? Java 中垃圾收集的方法有哪些? 什么是类加载器,类加载器有哪些?...除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具? 请谈谈 ReadWriteLock 和 StampedLock。 如何让 Java 的线程彼此同步?你了解过哪些同步器?...Reids的特点 Redis支持的数据类型 Redis是单进程单线程的 虚拟内存 Redis锁 读写分离模型 数据分片模型 Redis的回收策略 使用Redis有哪些好处?

    93500

    C#面试题

    简述一下一个引用对象的生命周期? new创建对象并分配内存 对象初始化 对象操作、使用 资源清理(非托管资源) GC垃圾回收 2. GC进行垃圾回收时的主要流程是?...① 标记:先假设所有对象都是垃圾,根据应用程序根Root遍历堆上的每一个引用对象,生成可达对象图,对于还在使用的对象(可达对象)进行标记(其实就是在对象同步索引块中开启一个标示位)。...内存不足溢出时(0代对象充满时) Windwos报告内存不足时,CLR会强制执行垃圾回收 CLR卸载AppDomian,GC回收所有 调用GC.Collect 其他情况,如主机拒绝分配内存,物理内存不足...对于lock锁,锁定的这个对象参数才是关键,这个参数的同步索引块指针会指向一个真正的锁(同步块),这个锁(同步块)会被复用。 3. 多线程和异步有什么关系和区别?...一般用哪一个作为锁使用更好? Mutex是一个基于内核模式的互斥锁,支持锁的递归调用,而Lock是一个混合锁,一般建议使用Lock更好,因为lock的性能更好。

    79820

    2019年末Java面试解析总结:Java+Redis+数据库+解决方案+分布式..

    并考虑 2 种回收机制。 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收 Java 中会存在内存泄漏吗,请简单描述。...简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。 Java 中垃圾收集的方法有哪些? ?...如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别介绍下。 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?...负载平衡的意义什么? 什么是Hystrix?它如何实现容错? 什么是Hystrix断路器?我们需要它吗? 什么是Netflix Feign?它的优点是什么?...你用Spring Boot实现了它吗?

    1.2K11

    JVM 看这一篇就够了

    ,多于一个的就算多分配,只有一个的称为单分派 垃圾回收 垃圾回收概述 什么是垃圾:简单说就是内存中已经不再被使用到的内存空间就是垃圾 垃圾回收算法: 可作为GC Roots的对象包括:虚拟机栈(栈帧局部变量...SerialOld 的收集器组合 新生代使用复制算法,老年代使用标记-整理算法 并行收集器 ParNew收集器 ParNew(并行)收集器:使用多线程进行垃圾回收,在垃圾收集时,会Stop-the-World...assign 操作)把数据从线程的工作内存同步回主内存中 一个新的变量只能从主内存中 ”诞生“,不允许在工作内存中直接使用一个未被初始化的变量,也就是对一个变量实施 use 和 store 操作之前,...如果轻量级锁失败,表示存在竞争,升级为重量级锁,导致性能下降 偏向锁 偏向锁是在无竞争情况下,直接把整个同步消除了,连乐观锁都不用,从而提高性能;所谓的偏向,就是偏心,即锁会偏向于当前已经占有锁的线程...-XX:-UseBiasedLocking 来禁用偏向锁,默认开启 JVM 中获取锁的步骤 会先尝试偏向锁;然后尝试轻量级锁 再然后尝试自旋锁 最后尝试普通锁,使用 OS 互斥量在操作系统层挂起 同步代码的基本规则

    51320

    JAVA 150道笔试题知识点整理

    是异常处理结构的一部分,表示任何情况下,都会执行(会在return前面先执行) finalize 是Object类的一个方法,在垃圾回收期执行的时候调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收...答:finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如关闭文件等。...可以在任何地方使用 本质区别 不仅会让出CPU,还会释放已经占有的同步资源锁 只会让出CPU,不会导致锁行为的改变 作用 通常被用于线程间交互 通常被用于暂停执行 线程的启动方式 答:线程的启动方式只能通过...3、尽量使用 Java.util.concurrent 并发类代替自己手写锁。 4、尽量不要几个功能用同一把锁。 5、尽量减少同步的代码块。 多线程中 synchronized 锁升级的原理是什么?...高于 HashTable 较慢 Null 键值插入 允许空的键值插入(只能允许一个,多个不行) 不允许 实现同步 被多个线程访问的时候需要自己为它的方法实现同步 多个线程访问时不需要自己为它的方法实现同步

    1.5K02
    领券