`
YuHuang.Neil
  • 浏览: 185413 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java面试问题之五十五

阅读更多
[百度面试题问题之一]:请分析一下Java的垃圾回收机制中对方法区的回收过程,在何种条件下才会触发GC对方法区进行回收工作。

答:所谓的方法区也就是HotSpot虚拟机中的永久代,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集机制,而且在方法区回收的“性价比”一般比较低;在堆中,尤其是在新生代中,常规应用进行一次垃圾收集可以回收70%~95%的空间,而永久代的垃圾收集效率远远低于此。但是现存架构中可能大量使用反射、动态代理、CGLib等bytecode框架,以及动态生成JSP和OSGi这类频繁自定义ClassLoader的场景都需要虚拟机具有方法区收集功能,以保证方法(永久代)区不会溢出。

永久代的垃圾收集主要回收两部分内容:废弃常量无用的类。回收废弃常量与回收Java堆中的对象非常类似。以常量池中的字面量的回收为例,假如一个字符串“abc”已经进入常量池中,但是当前系统没有任何一个String对象是叫做“abc”的,换句话说就是没有任何String对象引用常量池中的"abc"常量,也没有其他任何地方引用了这个字面量,如果在这个时候发生内存回收,而且必要的华,这个“abc”常量就会被垃圾回收机制回收。常量池中的其他类(接口)、方法、字段等符号引用也具有类似的过程。

要判断一个常量是否是“废弃常量”比较简单,而判断一个类是否是“无用的类”的条件则相对苛刻许多。一个类在达到以下三个条件时才有可能被垃圾回收器进行回收:

(1)该类所有的实例都已经被回收,也就是Java堆中不存在该类的任何实例。
(2)加载该类的ClassLoader已经被回收了。
(3)该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。

特别注意,虚拟机在一个方法达到上述三个条件之后才会考虑是否对该方法进行回收,并不是达到这些条件后一定对该方法进行回收。



[百度面试问题之二]:请简述在Android中Handler和Looper之间的关系。

答:Handler和Looper之间的关系主要是:
     (1)区别:Handler和Looper两者都与MessageQueue打交道,但是Handler是向消息队列发送消息SendMessage(queue.enqueMessage),而Looper则是从消息队列中取出消息(queue.next)。
     (2)联系:a、Handler依赖Looper,每个Handler必然有一个mLooper成员变量。它的MessageQueue就是获取的Looper的消息队列,在构造函数中mQueue = Looper.mQueue,即它们共享一个消息队列。b、Looper取出消息后,在执行消息时,实际上是运行Handler的函数体。因为每一个Message类都有一个Handler的参数。Looper在取出消息时,调用的就是这个Handler的HandleMessage()函数。




分享到:
评论

相关推荐

    java 面试 java 面试 java 面试

    java 面试java 面试java 面试java 面试java 面试

    日语java面试问题集

    【标题】:“日语java面试问题集”揭示了在针对日本客户的Java外包项目中,面试者可能遇到的技术和语言双重要求。这类面试通常旨在测试应聘者的Java编程基础、问题解决能力,以及与日本客户沟通的技能。 【描述】:...

    JAVA面试资料JAVA面试资料 JAVA面试资料 JAVA面试资料

    JAVA面试资料JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA...

    JAVA面试问题,自己和别人总结

    JAVA面试问题总结 JAVA是一种广泛应用的编程语言,作为一名JAVA开发者,需要具备扎实的基础知识和实践经验。本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....

    java面试题java面试题java面试题

    java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题...

    2023黑马面试宝典-Java面试宝典大全-java面试宝典黑马

    Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...

    java面试宝典2018版

    《Java面试宝典2018版》是针对Java开发者准备面试的重要参考资料,它涵盖了Java编程语言、Java虚拟机(JVM)、并发编程、框架、设计模式等多个关键领域的重要知识点。这本书旨在帮助Java程序员深入理解技术原理,...

    汇丰软件java面试题

    汇丰软件Java面试题是非常具有挑战性的,需要考生具备扎实的Java基础知识、良好的编程能力和英语口语能力,并且需要具备良好的逻辑思维能力和问题解决能力。考生需要认真准备,熟悉面试题目,提高自己的编程能力和...

    Java面试题2022

    在准备2022年的Java面试时,了解和掌握关键知识点是至关重要的。Java作为一款广泛应用的后端开发语言,其面试通常会涵盖基础语法、面向对象编程、集合框架、多线程、JVM内存管理、数据库交互以及开源框架等方面。...

    Java面试宝典和2018Bat公司面试题

    本资源包"Java面试宝典和2018Bat公司面试题"包含了针对Java程序员精心整理的面试资料,旨在帮助求职者全面了解并掌握Java技术的核心知识点,以及在BAT(百度、阿里巴巴、腾讯)等知名互联网公司面试中可能遇到的问题...

    2024 Java面试宝典合集

    9. **头条java面试题**:这个可能是特定平台或公司对Java开发者的技术要求,可能包含更具体的热点问题和技术趋势。 10. **2024 Java offer 收割指南**:这份指南可能提供求职策略、面试技巧、简历优化建议,帮助...

    Java面试题大全(整理版)1000+面试题 (面试准备+Java基础+高级特性+常见问题+答案解析)

    总的来说,准备Java面试时,你需要深入理解这些技术的原理、应用场景和最佳实践,结合实际项目经验进行回答,才能在面试中展现出专业水平。通过这份1000+面试题的资源,你可以系统地复习并测试自己的知识深度,提升...

    2023最新JAVA面试题集

    最新JAVA面试题总结之基础/框架/数据库/JavaWeb/Redis BIO,NIO,AIO,Netty面试题 35道 BTA 常问的 Java基础39道常见面试题及详细答案 Dubbo面试题 47道 ElasticSearch面试题 30道 Git常用命令面试题 60道 Java并发...

    Java技术面试常见问题

    从数据结构,到开发设计模式,再到java基础详细讲述java面试常见问题,让你面试轻松过关,并且懂得面试技巧,增加自身基础知识

    java面试宝典2017版

    Java面试宝典2017版是一份集大成的面试资源,专为准备Java相关...通过深入理解和熟练掌握上述知识点,你可以更好地应对Java面试,展现出扎实的技术功底和解决问题的能力。不断学习和实践,是成为优秀Java开发者的关键。

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...

    2017java面试题

    为了在激烈的求职竞争中脱颖而出,理解和掌握Java面试中的常见问题至关重要。"2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能...

Global site tag (gtag.js) - Google Analytics